Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Ha ilyen kérdéseket teszel fel akkor egyetlen LED bekapcsolásától még elég messze vagy. Olvasni, olvasni... :yes:
Köszi, már van segítségem
Üdv!
Szeretnék egy kis segítséget kérni, illetve inkább egy dologra fényt deríteni. Egy PIC16F628A PORTB kivezetéseire LED-ek vannak kötve 1-1 db 1k-s ellenálláson keresztül. Az alább lévő kódot beírva a PIC-be szépen villognak is a LED-ek, egyetlen egyet kivéve: a 10. (RB4) lábra kötött LED sötét marad mindvégig. Máshová kapcsolva világít az is. Tehát a kód:
Mit rontottam el? (A PIC vadi új, még ki sem volt fordítva )
Most csak emlekeimbol, de az ORG az tutti, hogy a 0000-n kezdodik? Nem 0008? vagy 0004?
Mert akkor nem jo helyrol indul a progi es a TRISB mas lehet. Adatlapban nezz utana vagy mas peldaprogiban. Vegso esetben lehet rossz az a kimenet is. Ha korabban valamivel leegetted (nekem is sikerult kezdo koromban, bemenetkent jo volt, de kimenetkent tobbet nem. Masik pic-el jo lett...)
A kezdést megnézem, lehet, hogy igazad van, viszont két tök egyforma, egy időben vásárolt vadiúj PIC nem hinném hogy rossz
Köszi!
Biztos, hogy 1000-et be lehet rakni az akkumulátorba ? A CBLOCK 0x10 szándékos volt, vagy itt sem tudod mit teszel ? És a konfigurációs bitekkel vajon mi van?
Olvass egy kicsit és szimuláld a működést is, mielőtt programozol ! Steve
Az a gyanum, hogy esetleg az LVP be van kapcsolva a configban. Probaldd meg kikapcsolni.
Az ORG az csak egy direktiva, amelyik megmondja melyik kod teruletre (cimre) akarod helyezni a kodot. A reset vector a 0-s cimen talalhato, igy az ORG 0-val helyesen allitotta be a program kezdo cimet...
Szia!
A 6. sorban van egy hiba, az általános célú RAM a 16F628A-n a 0x20 címtől kezdődik... Furcsa dolgokat csinálhat a delay rutinod, ha a két ciklusváltozó a T1CON és a TMR2... Kapcsold ki az alacsony feszültségű programozási funkciót - ekkor szabadul fel az RB4 láb... Szia
@sucuka:
Ez meg mi?:
Viszont nekem is lenne egy kérdésem: Miért nem tölti fel értékkel a Delay1,Delay2 változókat? Lefordítom és müxik így is. Tud erre vki magyarázatot adni?
A digitális technikában nincs olyan, hogy "nem tölti fel", ne felejtsd el, hogy mindig van benne valami, legfeljebb nem az, amit te szeretnél , így is működhet csak nem annyi ideig, vagy nem annyiszor, stb. --> vagyis a működés véletlenszerű (induláskor, később meg amennyi marad benne, pl. 0!) !
Steve Idézet: „Miért nem tölti fel értékkel a Delay1,Delay2 változókat? Lefordítom és mü*ik így is. Tud erre vki magyarázatot adni?” Azert, mert ugyis tul fog csordulni 0-ra, igy felesleges megint 0-t bele pakolni... [OFF]Hmm, nekem nem kuldte el a valaszt, mert a csillag helyen egy X volt es emiatt a szo blokkolva volt -- Te hogyan kuldted el megis a kerdest? Idézet: „ @sucuka: Ez meg mi?:
” Valósznűleg egy lelkes kezdő hülyesége... bocsi
A konfigurációs bitekkel mi a gond? Így nem definiálhatóak:
Én is az LVP-re akartam felhívni a figyelmedet, de lehet, hogy nagyon "virágnyelven" volt...
Steve
Okés, már megvan, köszi.
De jobban szeretem, ha "nevén van nevezve a ...".
Az a poén, hogy ezt PICkit2 tréning anyagaiból ollóztam ki. (kb 6 év után most kezdek újra neki a PIC-ezésnek, mondjuk annak idején is csak alapokat ismertem meg, de sokat felejtettem a kevésből is )
Akkor azt mondod ha túlcsordul akkor '11111111' lesz bent? Még egy kérdés, MPLAB-ban be lehet állítani valahogy, hogy az editor mutassa a sorok számozását? @trundai - nem tudom, hogyan sikerült Idézet: „De jobban szeretem, ha "nevén van nevezve a ...".” En neven neveztem... Amugy akkor attol megjavult?
Most próbálom, de előbb a szimulátor...
Nagyon jó lett, működik, bár lehetne lassabb is. Most ez következik.... @AM2k: Jobbklikk az editor ablakban, Properties, majd 'ASM File types' és ott az első checkbox kapcsolja a sorszámozást. Idézet: „Akkor azt mondod ha túlcsordul akkor '11111111' lesz bent?” Olvasd el az adatlapban a DECFSZ utasitast. Mikor 1-rol lecsokken 0-ra, akkor ugye mar nem fogja a mogotte levo utasitast vegrehajtani. Emiatt a valtozoban 0 lesz... Legkozelebb meg azzal kezdi ugye, hogy 0-t csokkenti, es akkor fog tulcsordulni B'11111111' -re, magyaran 256-ot szamol igy a ciklus minden esetben... Ill. nem minden esetben, mert nincs az elejen inicializalva, akkor meg nem garantalt, hogy 0 lesz ott -- igy az elejen lehet kevesebbet szamlal, es lesz egy kis hiba, de az meg kit erdekel, nem igaz?
OK, de szerettem volna, ha elgondolkozol rajta ( akkor legközelebb újra eszedbe jut biztosan ) !
Steve
Ismét egy kérdés kedves urak!
Szintén LED-villogtatás, csak most másképp:
Ez a kód a szimulátorban működik, élesben pedig minden LED világít folyamatosan, tán túl gyors lenne, és azért nem látom?
Igen túl kevés időt vársz a TIME rutinban. Ha 4mhz-en járatod a pic et, akkor ez mindössze ~750uS.
A 17. és a 18. sor cseréljen helyet. 11. sor felesleges.
Hát ez az... akkor már értem.
8Mhz-es quartz van ráakasztva, tehát ennek az időnek a fele. Akkor megnyújtom az időzítést egy kicsit.
Köszi, de messzebb lakok egy csöppet
Ez mindenkinek szól: Watt kapcsolásán ez az egyszerű LPT-s égetővel akarom felprogramozni a 18F2550-et. A WinPIC800 progi támogatja is, a kérdésem: ez az egyszerű áramkör is fel tudja programozni?
Szia!
Igen, fel tudja, én pl. egy 18F4550-et programoztam vele.
Itt is van egy kis logikai hiba.
A 17. sorban először törlöd a PORTB-t, holott még másik bankban vagy, és ezután váltasz bankot.
Igen, már észrevettem, meg más is említette.
Ez így szokott lenni, ha az ember lusta írogatni, és kimásol-beilleszt módon ügyködik Főleg éjfél körül... |
Bejelentkezés
Hirdetés |