Fórum témák
» Több friss téma |
Idézet: Szerintem meg az igenis javascript, mert az i es str valtozokat is deklaralja, szepen megy benne a ciklus es rakja ossze az str-be a HTML szoveget. Az mas kerdes, hogy a PORTB nevu valtozo erteket hogyan lehet lekerdezni, nem tudom. En biztosan logikai and muvelettel csinalnam, de en 'C'-bol is igy csinalnam, nem pedig ezzel a bitfield-es megoldassal. „A "PORTB.F0" az nem javascript, hanem a főprogram része.” A hozzászólás módosítva: Márc 29, 2015
Szerintem az 59. sorban a javasript csak a komplett PORTB-t kapja meg és valahogy így kellene vizsgálni: if (PORTB & 1 == 0) a 143. sorban pedig karaktert hasonlítasz össze bittel!
Idézet: int-et hasonlit ossze int-tel, de lenyegeben ugy van, ahogy mondod. A 'C' ben nincs bit, es minden char automatikusan int-re konvertalodik minden muvelet elott. „karaktert hasonlítasz össze bittel!”
A javascript nem képes más nyelvből integrálás nélkül változót bevinni. Az a kódrész biztos, hogy nem jó. Az i és str a javascript velős része, abban is van deklarálva.
A hozzászólás módosítva: Márc 29, 2015
En is azt mondom, hogy az i es az str a javascript resze. Es van ott egy ciklus, ami egy PORTB.F0-t vizsgal, ami nyilvan hibas, de a tobbi nem. Amit Taki33 is mondott, es en is mondtam, hogy esetleg logikai and muvelettel lehetne vizsgalni a PORTB javascript valtozo erteket a javascriptben. A PORTB valtozo erteket pedig a 167. soraban allitja be a C kod, ha minden igaz.
Így van, a 167. 168. 169. sorban kap értéket a javascript PORTB változó.
Idézet: A port-tol teljesen fuggetlenul: a 'C' ben a kovetkezo teljesen pont total ugyanazt jelenti:„(decimális, bináris vagy hexa) Az biztos jó lehet, hogy ASCII ellenőrzi port tartamát?” 0x30 == 48 == '0' Es egyes kibovitett 'C' implementaciok eseten == 0b00110000. Az aposztrofok koze irt karater egy int konstans, aminek erteke az adott karakter kodja az adott szamitogepen. Ez ma gyakorlatilag minden esetben az ASCII kod.
Az addig oké, de itt az "if(PORTB.F0 == '0')" azaz a B port 0. bitjét vizsgálja.
Abba nem lehet ASCII kód, abban csak 1 vagy 0 lehet mert 1 bitről van szó. Vagy ez esetben a C ahogyan te is írtad bináris megfelelője a 0b00110000 és azt vizsgálja, hogy a 0. biten 0 avagy 1-van? Érdekes megközelítés.... Idézet: „A PORTB valtozo erteket pedig a 167. soraban allitja be a C kod, ha minden igaz.” Nem teljesen a "len" (hossz) nevű változóba betölti a feltételeknek megfelelő összes stringet majd a végén vissza is tér a függvény ezzel a hosszú összerakott string sorral. A 168.-as sorba tölti fel dyna változot a PORTB regiszter értékével, majd azt tölti bele immáron stringre konvertáltan a PORTB javascript változóba. Illetve a pontosság kedvérét a következő képen néz ki a dolog:
Az eredménye pedig ez lesz: PORTB értéke legyen most 48
Tehát a javascript a len tartamát kapja meg vagy is így fog kinézni a html kódban:
A hozzászólás módosítva: Márc 29, 2015
Persze, hogy nem lehet egy egybites valtozo erteke 48. Nem is ezert mondtam, hanem azert, mert sokan nincsenek tisztaban a 'C' nyelvben a konstansokkal, valtozokkal es altalaban sokmindennel. Mivel te is kulonvalasztottad a dec, hex, binarist az ASCII-tol, ebbol gontoltam, hogy te sem erted, hogy mirol van itt szo. Sokan nem tudjak, hogy a '0' pont ugyanaz, mint a 48. (Lattam sok kodot itt a HE-n, ahol ilyesmik voltak: tomb[i] = a + 48; // 48 a 0 ASCII kodja)
Mert sok mas nyelvben a szoveg, (legyen az egyetlen karakter), az nem szam. Meg a Pascal-ban is kulon fuggveny van a karakter kod szamma alakitasara es vissza, mig a 'C'-ben ez nincs igy elkomplikalva. A 167. sor vs 168. sor dologra inkabb nem reagalok, mert mar igy is forr a verem. Szerk: ha utolag 80%-ban megvaltoztatod a HSZ-edet, akkor az en valaszom nem lesz vilagos senkinek... En vagyok a hlye, hogy nem ideztelek. Idézet: „a "len" (hossz) nevű változóba betölti a feltételeknek megfelelő összes stringet majd a végén vissza is tér a függvény ezzel a hosszú összerakott string sorral.” A len valtozonak csupan az erteket noveli meg annyival, amilyen hosszu szoveget visz ki a putConstString fuggveny. A len (int) valtozoban a vegen csak az lesz, hogy hany karakter az egesz szoveg, amit osszerakott. A hozzászólás módosítva: Márc 29, 2015
Jaja közben vissza kellett lapoznom is, hogy mit írtál és azokat elolvasva módosítottam a bejegyzést.
Idézet: Igen, igazad van, most megnéztem hogy deklarálta a len változót. „A len valtozonak csupan az erteket noveli meg annyival, amilyen hosszu szoveget visz ki a putConstString fuggveny.” A hozzászólás módosítva: Márc 29, 2015
Idézet: Ezt nem a deklaraciobol kell latni, hanem a += operatorbol, amivel string-eket nem lehet osszeadni. Egy mutatot vagy egy int-et novelhetsz vele, de egy stringhez nem tudsz hozzaadni tovabbi stringeket igy. Meg ahogy te is nagyon helyesen megjegyezted, a len angolul hosszt jelent. Ebbol is lehet sejteni, hogy nem a string lesz benne, hanem annak hossza. „Igen, igazad van, most megnéztem hogy deklarálta a len változót.”
Igen C-ben nem lehet, de javascript-ben simán lehet, így string-eket összeadni ez is kevert kicsit meg.
Lásd, egy sor egy javascript kódomból:
A len változó a stringek számát kapja meg és az összes sztring számával tér vissza a függvény. Gondolom a tömb ciklussal való kilistázása miatt kell a sztringek száma.. Érdekes ez a webszerveres téma, én is akarok majd egyszer egy ilyen szervert készíteni.. Jó kis mókázás lenne. A hozzászólás módosítva: Márc 29, 2015
Idézet: Hat igen, ez elofordul. „Igen C-ben nem lehet, de javascript-ben simán lehet, így string-eket összeadni ez is kevert kicsit meg.” Idézet: Miert nem hiszed el, hogy a sztring hossza van benne?„A len változó a stringek számát kapja meg és az összes sztring számával tér vissza a függvény.” Idézet: Azert mielott nekiallsz egy webszervert megirni, kicsit bele kellene huzni a C tanulasba, es kicsit jobban elfogadni azok szavat, akik mar irtak webszervert vagy hasonlo dolgot... „Érdekes ez a webszerveres téma, én is akarok majd egyszer egy ilyen szervert készíteni.. Jó kis mókázás lenne.” A hozzászólás módosítva: Márc 29, 2015
Idézet: Ugyan azt mondjuk csak másként fogalmazunk..„Miert nem hiszed el, hogy a sztring hossza van benne?” Idézet: Nagyából utána néztem már, nem lesz egyszerű, de idővel mint meg lehet írni.„Azert mielott nekiallsz egy webszervert megirni, kicsit bele kellene huzni a C tanulasba, es kicsit jobban elfogadni azok szavat, akik mar irtak webszervert vagy hasonlo dolgot...” 1éve tanulom autodidakta módon a C nyelvet, ahhoz képest talán nem vagyok annyira béna.. Tudom, mihez vagy kihez képest A hozzászólás módosítva: Márc 29, 2015
Sziasztok!
Egy apró kérdésem lenne a kvarckristályok szűrőkondijaival kapcsolatban. Adott egy 32MHz es CL= 20pF kristály mekkora legyen C1 és C2 a Microchipnél a CL = C1xC2 összefüggés alapján 47p? Vagy lehetséges-e az is, hogy C1 C2 eltérő értékűek, sajnos nem tudom eldönteni, hogy mi lenne a legideálisabb mert általában belső oszcillátort használok. A hozzászólás módosítva: Márc 29, 2015
Idézet: „if (PORTB & 1 == 0)” Így sem jó. Viszont amit észrevettem , hogy a PORTB értéke bizonyos időközönként változik. Van hogy az értéke 3 van hogy 25.
Mihez szeretnél 32 MHz-es kristály használni? Az adatlap megenged ilyen magas frekvenciájú kvarcot?
Egy soros LCD vezérlőt csinálok és az adott soros perifériáknak a lehető legnagyobb órajellel kell működniük. És nem akarom PLL-el hajtani mert az 2ms amíg elindul törekednék a lehető legkisebb inicializálási időre. Ja és a PIC16-os használok és 32MHz a maximum frekvencia.
A hozzászólás módosítva: Márc 29, 2015
'C'-ben az '==' magasabbrendu muvelet, mint az '&', ezert a helyes megoldas:
javascript-ben nem biztos, hogy igy van a precedencia. Szerk: megneztem, es javascript-ben is igy van a precedencia, szoval kell a zarojelezes. A hozzászólás módosítva: Márc 29, 2015
Idézet: egy LCD vezerloben, amit az ember szemmel nez, hol van jelentosege 2ms bekapcsolasi kessesnek?„Egy soros LCD vezérlőt csinálok és az adott soros perifériáknak a lehető legnagyobb órajellel kell működniük. És nem akarom PLL-el hajtani mert az 2ms amíg elindul törekednék a lehető legkisebb inicializálási időre.” Gyakorlati oldalrol nezve a kerdesedet, szerintem 2db 22pF..27pF, es menni fog, felteve, hogy egyaltalan lehet ekkora frekvenciaju kvarcot tenni a mikrokontrollerre. Most vegigneztem egy 16F874 adatlapot, de nem talaltam benne a max. kvarc frekvenciat. A hozzászólás módosítva: Márc 29, 2015
Idézet: „Az eredménye pedig ez lesz: PORTB értéke legyen most 48 len = "var PORTB = 48;" Tehát a javascript a len tartamát kapja meg vagy is így fog kinézni a html kódban: <script> var PORTB = 48; </script>” Ez nem így van , nem 48 lesz a kimenet. A kimenet folyamatosan változik , egyszer 0 , 126,60 mikor kiadom a PORTB.F0 = 1; parancsot. Mikor a PORTB.F0 = 0; parancsot adom ki , akkor is folyamatosan változik a kimenet , mégpedig : 195,255,185,129,191 Nem tudom ez mi szerint változik.Ezeket a kimeneteket a PORTB -t lekérdezve kapom.Ahányszor kiadom a led felkapcsolására vagy lekapcsolására a parancsot , annyiszor más és más a kimenetem. Gondoljátok kilövöm netre és megosztom az IP címet amin fut. A hozzászólás módosítva: Márc 29, 2015
Az a soros port inicializálási idejére és a fogadás idejének csökkentése a lényeg mert adat jön be megszakítás adat -> RAM(indirekt) úgymond így senkit nem érdekel mit csinál közben az LCD ha a RAM mérete bírja akkor hiába kell legalább 20ms az LCD-nek addig megy oda az adat aztán kerül ki az LCD, de ez nem is annyira fontos.
Igazság szerint arra törekednék, hogy a legjobban tartson a kvarc frekvenciája a ráírtéhoz és mint említettem nem nagyon szoktam külső kvarcot használni így nem annyira tudom, hogy most akkor mekkora kondi is kell oda.
Adok egy jó tanácsot, először kezd a programozást az alapoktól (LED villogtatás, gombok kezelése a bináris, decimális hexadecimális számrendszerekkel, a PIC regisztereinek megismerésével) hogy legalább az alapokkal tisztába legyél! Ne akarj egyből űrhajót építeni!
Sziasztok!!
Majdnem 3 évet tanultam C++ nyelven programozni és szeretném megtanulni a PIC programozást, csak nem tudom, hogy, hogy fogjak neki, honnan tudnék tanulni és végképp nem tudom hogy a C++ nyelvhez melyik PIC programozó program áll legközelebb. Segítségeteket előre is köszönöm
Teljesen jogos a tanácsod egyébként , csak ezzel az a baj ,hogy ha elkezdem magolni , azzal semmire sem megyek , de ha így lépésenként egyre többet és többet tudok meg , ráadásul azzal a dologgal kapcsolatban ami jelenleg aktuális és érdekel is , akkor jobban megmarad.
(A led villogtatás megy , gombokat egyenlőre nem akarok kezelni , így az felesleges lenne egyenlőre) A hozzászólás módosítva: Márc 29, 2015
Így sem jó , nem lép bele az else ágba.
Az
A hozzászólás módosítva: Márc 29, 2015
A PICCOLO projektből sokat megtanulhatsz az C re épül de a C++ és a C ha jól tudom hasonlóak. Az XC8 al lehetséges, hogy lehet C++ ban programozni de még sose próbáltam.
Idézet: Mert meg mindig nem azt irod oda, amit montdunk. Nem PORTB.F0, hanem PORTB. Az a baj, hogy csak azt akarod, hogy mukodjon, de nem erted, mi micsoda. Igy soha nem fogod megtanulni. Tudod, hogy a 'C'-ben mit jelent a PORTB.F0? Hogy mi az a .F0 a PORTB utan? Es miert lehetne a PORTB.F0-t helyettesiteni azzal, hogy (PORTB & 1)? Ha ezt megerted, akkor mar valoban az alapokkal foglalkozol. De ennek meg mindig semmi koze ahhoz, hogy a javascriptben mi a PORTB. A 'C' programozas alapja nem a LED villogtatasban rejlik, hanem a nyelv adottsagaiban, abban, hogy mi az, hogy kifejezes, utasitas, balertek, valtozo, konstans, memoria, stb.. Ezt LED villogatato programokbol nem lehet megtanulni. Meg webszerverbol sem, ha nem te irod. Raadasul szivatod magad egy olyan feladattal, ami egy kinszenvedes, mert keves az eroforras, masreszt ket program egyszerre (a C meg a javascript), es ket gepen is fut egyszerre (a PIC-en es a bongeszos gepen). Ez nem eppen rutinfeladat kezdoknek.„if((PORTB.F0 & 1) == 0)\” Idézet: „Az
működik lentebb, a javascriptben nem megy már csak” Nehezen hiszem, hogy az '0'-val mukodik, de gondolom, hogy a mukodo kodban nem is az van. A hozzászólás módosítva: Márc 29, 2015
Ha PORTB.F0-t használsz, akkor && a logikai és.
Idézet: Konkrétan melyik típust? Mert pl. a PIC16F1825 adatlapja azt írja, hogy "HS – High Gain Crystal or Ceramic Resonator mode (4 MHz to 20 MHz)". Tehát max. 20 MHz lehet a kristály... „Ja és a PIC16-os használok és 32MHz a maximum frekvencia.” Idézet: És az LCD mennyi idő alatt "indul el"? Vagy miért kell ez a nagy sietség?„És nem akarom PLL-el hajtani mert az 2ms amíg elindul” A külső oszcillátor (ECH mód) lehet 32 MHz, de attól félek, hogy ezzel csak átülteted a problémát egy másik eszközbe... A hozzászólás módosítva: Márc 30, 2015
|
Bejelentkezés
Hirdetés |