Fórum témák
» Több friss téma |
Igen az 0-ra ugrik csak az úgy maradt mert előtte a btfss volt ott.
Kod gombot hasznaldd mar legyszi (elold ki legkozelebb a kodot amit beirsz, majd kattints a Kod gombra, es az '=c' -t javitsd ki '=asm' -re mikor assembly kodot teszel be)
A PCL-es kerdesre reagalva: Gondolom ez egy 18F, es igy az ADDWF PCL,f utan neked mar eleve 2-vel novekedik a PC, magyaran a PCL-ben ekkor 64 lesz mar, es ehhez adodik hozza a WREG-et ADDWF PCL,f -el. Tehat az eredmeny 66 lesz... Teljesen jol mukodik... A tabla 0. (elso) eleme az ADDWF PCL,f utani elso utasitas... Magyaran ez igy mukodik jol... UI: Osszehasonlitashoz kivonassal jobban jarsz, mert az raadasul a C-t is allitja, igy azt is meg tudod nezni kisebb-e az eredmeny... UI2: Nem jol irtam az elobb a PCL magyarazatot, javitottam...
Ok, kösz.Na ez lenne az a prg amivel nem boldogulok.
Az a baja hogy csak 2 szer számol el 0-tól 9-ig. Utánna beáll a nulla a kijelzőre és villog. Valamikor 3-szór is elszámol és utána áll be a nulla. Próbálta már XOR,AND és SUB paranccsal is, de egyik sem volt jobb . Ha valakinek van kedve végignézni és elmondaná hogy mi a gond annak nagyon örülnék.
A 18-as sorozatnál a memória címek páros címeken vannak, szerintem ez lehet a gond ( nem próbáltam ki! ). Az ADDWF PCL,F viszont csak egyesével növeli a PCL tartalmát !
A táblázathívás előtt meg kell kétszerezni a W tartalmát! Steve
Elso hiba, hogy RCALL-al cikluban hivogatod sajat magad -- betelik a stack es csinal egy resetet, vagy csak rosszul fog mukodni...
Masik, hogy egyszer elered a LATB-n azt az allapotot es akkor vegtelen ciklusban fogsz visszafele ugralgatni... A harmadik, hogy mivel ez egy 18F, ezert a TEMP-et elobb 2-vel meg kellene szorozni mielott a W-be toltod es azt a PCL-hez adod... Errol mar beszeltunk itt... Legegyszerubben ezt ugy tudod megcsinani, hogy RLNCF TEMP,W-vel olvasod ki es nem MOVF -el... Utana a ciklus vegen szinten RCALL-ozol BRA helyett, igy megintcsak a stack-et telited be hibas mukodest eredmenyezve... Hirtelenjeben ennyit, majd ha ezek kijavultak tovabb nezzuk
Javaslom nézd meg a 18F-ek táblázatkezelési módszerét(adatlap), ezt meg hagyd meg a 16F-ek kínlódásai között...
Hi
Mit értettek 18f programozásán, annyira másabb mint a 16f-é?
Igen, elegge mas... Nyilvan az alapok hasonloak, nem kell legelolrol kezdeni, de hat nagyon sokminden mas -- ezt a byte-os kontra szavas cimzesbol adod kulonbsegeket mar meg is tapasztaltad! De nem is kellene szenvedned a PCL-lel ha normalis tablazat cimzo regiszterekkel olvasnad ki az adatokat, es akkor raadasul 1 byte-nyi informaciohoz nem kellene 2 byte-ot (1 szot) felhasznalnod...
Nézz fel az oldalamra, van egy egyszerű táblázatos ASM példa is.
Idézet: „Mit értettek 18f programozásán?” - A bővebb utasításkészlet kihasználása - Access Bank használata (nem kell banksel TRISC és tsai) - Mutatók használata - Linker és szekciók használata - Adatverem használata - S nem utolsó sorban azt sem kellene elfelejteni, hogy a MASM makroassemblert jelent. Ezek közül egyik-másik pont PIC16 esetén is megszívlelendő, de PIC18 esetén meg pláne... Mindenre nekem sincs időm meg energiám, de a fentiekből igyekeztem néhány hasznos fogást bemutatni a PICCOLO projektben. A makrók használata pl. az Assembly programozás haladóknak c. fejezet végén került bemutatásra. Nem mintha különösebben értenék hozzá, mert nem szoktam assembly-ben programozni. De ha programoznék, biztosan úgy csinálnám, hogy tömörebb és áttekinthetőbb legyen a forrás.
Igazandibol a 16F-ben is van makro es linkser script (sot, 10F-ben is), es termeszetesen van mutato is. Ezekbol le lehet emulalni az adat vermet is -- csak ez is mint mas dolgok is kicsit korulmenyesebbek.
En az alabbi fo kulonbseget latom 16F (midrange) es 18F (enhanced) kozott: 1. Bovebb utasitas keszlet (amit emlitettel volt, segitesegevel kevesebb program memoria es futasi ido felhasznalasaval lehet ugyanazt az algoritmust leirni) 2. Kenyelmesebb memoria eleresben (access RAM hasznalata FSR-ekre, amit szinten emlitettel) 3. 2 szintu megszakitas (prioritasos megszakitas) 4. Fast-call (automatikus STATUS es WREG mentes / vissza allitas) 5. 2 kulon indirekt memoria cimzo (C es mas nyelvekhez nagy segitseg a stack-frame-ek letrehozasaban, amivel igazi auto tarolasi osztaly valosithato meg, tehat reentrans fuggvenyek, pl rekurziv algoritmusok valnak lehetove) 6. Auto-incrementalo/decrementalo indirekt cimzes (konnyebbe teszi a szoftveres adat verem letrehozasat) 7. Hozzaferes a call-stack-hez (lehetove teszi tobbszalu utemezok fejleszteset -- igazi pre-emptiv RTOS valik lehetove ezaltal) 8. PLL (belso vagy kulso oszcillatorbol magas orajel eloallitasa)
Sziasztok!
Egy olyan kérdésem lenne, hogy egy kis kommunikációs programot próbálgatok egy 16f628a-val. 19200-as bps-ig minden jó(oda-vissza küldözgetek), de 38400-nál már sem adni, sem venni nem tudok. 4Mhz-s rezonátort használok. BRGH értéke=1 (high speed) Az adatlap szerint SPBRG értékének 6-nak kell lenni. Van valakinek tippje, miért nem tudok nagyobb sebességet beállítani? Esetleg kevés a 4Mhz?
Az a 7% hiba a valós és a névleges bitsebesség között már elég sok. A 10 bites átvitelnél (start+8+stop) az utolsó bit már több mint kétharmad bitidővel lesz elcsúszva, vagyis a stop bitet már eléggé lehetetlen időben venni, de már az előző 2-3 bitben sem lennék biztos. Vagy használj nagyobb sebességű kvarcot (pl. 8MHz-es kvarccal és 12-es SPBRG-vel 0,16%-os pontosságú lesz a bitsebesség), vagy elégedj meg a 19200-as sebességgel. 3%-tól nagyobb eltérésre nem alapoznék, hogy megbízhatóan fog üzemelni.
Köszi a választ. Valami ilyesmire számítottam A neten is csak 20Mhz-s kvartzokkal találtam példákat.
Cserélhetem ki az oscit. De ez van. Köszi a gyors segítséget.
Hi
Megnéztem és tényleg semmi köze a 16-é hoz. De viszont az se nagyon megy na de ez Nincs valakinek valamilyen példa programja a táblázat kezeléshez hogy a gyenge elmémbe beletudjam verni a működését? Mert az adatlapból nem bírtam kihámozni. Előre is köszönöm.
Szia!
Mit is szerettél volna ezzel a programmal, hogyan kellene működnie? Valamilyen sorrendben megjeleníti a számjegyeket egy hétszegmenses kijelzőn... De milyen sorrendet szeretnél?
Szia!
Az oszcillátor típusát állítsd át HS-re, ha még nem az lenne...
Hi
Semmi különöst csak tanulgatni a pic-ezést, úgymond. Egyébként 0 -9 számoljon fel utána kezdje elölről amihez táblázatból szedi ki a a kiírandó számjegyeket.
Az sem segített , viszont a 20Mhz igen. Most működik hibátlanul.
Sziasztok!
A tapasztaltabb uraktól szeretném megtudni, hogy ha egy PIC (nevezetesen a 18F4620) adatlapjában az áll hogy Idézet: azt mennyire kell/lehet komolyan venni?„Wide operating voltage range: 2.0V to 5.5V” A helyzet az, hogy 3,3V-ról akarom járatni az eddigi 5V helyett, de a különböző fórumokon lehet olvasni hogy nem minden esetben szeretik ha nem 5V-ról hajtják. Van valakinek ezügyben némi tapasztalata? ENC28J60-at és SD kártyát szeretnék használni vele. Van egy DEMO board ami nagyvonalakban ugyan ezt a készletet használja, de az 5V-ról megy, és 74HC125-el intézi a szintillesztést. A miértjét sehol nem taglalták, ezért megvan bennem a félsz hogy ha működik is nem lesz stabil.
Nagy tapasztalatom nincs, de mérget mernék venni rá, hogy nem túl magas frekin, stabilan menni fog. Talán az adatlap tárgyalja, hogy 3,3V-nál mi a felső határfreki.
Az adatlap tartalmaz erről információt. 18F4620-ra minimum 4,2V-ot adnak meg frekvenciától függetlenül. 18LF4620-ra 3,3V-ról 25MHz-et ír maximumként. Persze ment már nekem 16F876 1,6V-ról is, szóval nem kizárt, hogy a 16F4620 is elmegy stabilan 3,3V-ról, de azért benne van a lehetőség, hogy nem fog menni.
Nem volna bölcsebb egy 3,3 V-os típust választani helyette? Pl. PIC18F46K20, vagy valamelyik J-s típus.
Gondosan össze kell hasonlítani az adatlapokat (az Errata-kat is!), hogy kiderüljön, mennyire fájdalmas a váltás.
Még jó, hogy kérve lett a görgetős megjelenítés a fájl csatolás helyett a hosszú kódok miatt... Aki kérte, majd jelentkezik, ha szeretne, én nem nevezem meg, nem akarok ezzel semmi rosszat elindítani. Pusztán felvetettem.
Szia!
4 MHz -cel megy XT és HS módben is, 20MHz -cel már csak HS módban. Erre szerettem volna felhívni a figyelmedet.
Mea culpa! Újabb látványos bizonyítéka hogy az adatlapot VÉGIG kell olvasni..... Ezer bocsánat az ostoba kérdésért!
Való igaz hogy bölcsebb volan másikat választani, de pillanatnyilag nem engedhetem meg magamnak a bölcselkedést. (de akkor mire vonatkozik az a 2.0-5.5V )
Ha jól rémlik említettem, hogy az oldalamon az egyik példa egy egyszerű táblázatkezelő.
Várj belikelem: Bővebben: Link
A 3. konfigurációs példában van. |
Bejelentkezés
Hirdetés |