Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Idézet: „Hogy tudtál ilyen keretet készíteni a hozzászóláson bellül?” Raboksz a "Kod" gombra, megjelenik a [code=c] szocska. Ezt kicsit ki kell javitani [code=asm] -re (vagy [code=C] -re ha C programot szursz be), es beilleszted a programot majd megint raboksz a "Kod" gombra. Termeszetesen kezzel is bepotyogheted a kulcsszavakat...
Igen, pottyosvesszo a komment kezdete a sor vegeig. Azonban ha a tablabol kiveszel (vagy hozza teszel) elemet, akkor a tabla meretet is modositanod kell (jelen esetben az a d'14' az, mert abban a programban a tabla merete nincs automatan kiszamolva.
Köszönöm a tanári gondoskodást. Megfontolom amit írtál. A STATUS-os témát én sem így szoktam kezelni. Véletlenül hagytam úgy, mert egy másik PIC szériából vettem át a progrmrészletet és nem akart lefordulni. Ekkor elkezdtem adatlap alapján kibogarászni és akkor valóban lecseréltem, hogy jobban lássam mi történik. Lehet ezt nem is érted miért mondom, de nekem így működik az agyam.
A többi tanulságot nagyon köszönöm, kielemzem és megfontolom. Így mulat egy magyar úr
Sziasztok!
Szeretném a következő problémámmal kapcsolatban a segítségeteket kérni! A következő linken megtalálható termosztátot megépítettem: http://mikroklub.hu/htm/matyas.htm Viszont a meglévő hex tartalmat sehogy se tudom beégetni a 16F84A -ba(icprog-ot használok), a következő hibaüzenetet dobja: "Verify failed at address 0000h"! A kapcsolás szerepelt egy régebbi hobbielektronikában is, így nem hiszem hogy a programmal lenne a probléma(lehet hogy vmi beállítási gond?!?!?!?)! Van ötletetek?
Talán nem üres a PIC-ed, vagy sérült. Esetleg az égetőd beteg, vagy ha soros-USB átalakítót használsz azzal is lehet gond. Nekem is ilyesmi volt. Sorban mind Akkor vettem egy PICkit 2-őt. Van még egy ötletem, esetleg úgy programozd a PIC-et, hogy kiveszed az áramkörből, ha eddig nem úgy tetted.
Nincs elég infó, ennyiből nem lehet segíteni. Azt minimum leírhatnád, hogy milyen égetőáramkört használsz.
Sziasztok!
PWM jelet a PICnek a CCP1-es lábáról tudom levenni? Vagy még melyikek kellenek? Köszönöm
Bevallom nem néztem meg ilyen mélységben, ezért minden megjegyzéseddel egyetértek. Táblázatot mindig rögzíteni kell.
Azt is írtam, hogy ez az egész táblázatos módszer felesleges, a léptető utasítások pár sorban kiváltanák. Erről mi a véleményed?
Igen. De vannak olyan PIC-ek, amelyikeknél, lehet választani, hogy melyik lábra kerüljön a CCP kimenet. Az adatapban le van írva, hogy melyik az a láb és hogy lehet e válogatni, vagy sem.
Köszi!
És mondjuk infra adót és infra vevőt bármélyik portra tehetek? Egy kis panelt csinálok a 18F4550-hez, amin lesz pár dolog. Ezért érdeklődök.
Írás előtt töröltem, LPT portra csatlakozik az égetőm és természetesen kiveszem az áramkörből úgy programozom!
Az égető Baji elektronika üzletből származik, pro pic2, lpt portra csatlakozik!
Egyszer régebben már felmerült ez a téma, talán pont ebben a topicban. Eléggé elítélhető módon én is használtam már az FRC-t 4 és 8MHz CPU clock mellett, mert lusta voltam utánaszámolni, hogy melyik osztó lenne az igazán jó Ennek ellenére a konverzió működik (működnie is kell), tehát ha a dolog tök halott, akkor nem ezzel lesz gond, hanem pl. valami más perifériának az adott lábon való megjelenésével, amit ki kellene kapcsolni.
Az adatlap Frc-vel kapcsolatos megjegyzéseivel kapcsolatban én arra tudok csak gondolni, hogy a mérésbe belezavaró digitális zaj kiküszöbölése végett nem ajánlott aszinkron (azaz nem a CPU clock-kal szinkronban járó ütemjellel) végezni a konverziót magasabb órajeleknél.
A configban az INTRCIO az jó, adatlap szerint az OSCCON reset utáni default értéke a 4MHz. Persze, "jobb a békesség" alapon inkább be szoktuk állítani egy általunk kívánt értékre.
Üdv!
Meg tudná nekem valaki mondani hogy ez mit jelent? d1 equ 0x20 d2 equ 0x21 mármint az érdekelne hogy az euq mit jelent, nem találom sehol Köszi!
Megjegyzést, észrevételt és kiigazítást kérek ehhez a progimhoz
lehet rájöttem!
Nem azt jelenit hogy a d1-et egyenylővé teszi 0x20-al? Az equ nem az equal szóból ered???
Szóval ekkor ezt már talán értem.
viszont ezt már nem: d1 equ 0x20 d2 equ 0x21
ez állitolag egy 250ms-es késleltetés. De nem értem. Elmagyarázná nekem valaki? Idézet: „Azt is írtam, hogy ez az egész táblázatos módszer felesleges, a léptető utasítások pár sorban kiváltanák. Erről mi a véleményed?” Igen, teljesen felesleges oda. Egyetlen elonye lehet ennek a tablazatosdinak, hogy ha kesobbiek folyaman meg akarja valtoztatni a szekvenciat akkor igy eleg a tablat atirni - ill ha lenne tobb tabla kulonbozo szekvenciakkal akkor akar valtogatni is lehetne azok kozott - pl egy karacsonyfa futofenyre ha gondolunk, most ugyis aktualis lenne ilyeneket epitgetni
d1 egy konstans a fordito szamara, erteke 0x20 lesz. Mikor erre hivatkozol a programodban akkor ezt a szamot helyettesited be, tehat MOVWF 0x20 lesz, ahol ugye a 0x20 egy memoria cim, erre a cimu memoria rekeszbe tarolod le a W-t...
Tahat delay-nel 0xFF -ekkel felinicializalod a d1 es d2 memoria cimeken levo teruletet - tovabbiakban d1 es d2 valtozodat. utana ciklusban csokkentgeted elobb a d1 erteket a descfsz utasitas segitsegevel, es mikor az eleri a 0-t akkor atugorja a mogotte levo utasitast... magyaran a ciklusbol kilep. Ugye DECrement File Skip if Zero -> DECFSZ.... d2-vel ugyanez tortenik, magyaran igy 256*255-1 ciklusnyit ugral "egyhelyben". 256*256 lenne ha nullazva lenne a d1 es d2 a delay resznel... Namost a varakozas kiszamitasa picit osszetettebb: Eloszor is van egy belso ciklus, a d1 valtozoval. DECFSZ 1 ciklusido ha nem zerus az eredmeny, 2 ha igen. GOTO mindenkepp 2 ciklus. Ez azt jelenti, hogy a belso ciklus 3 ciklusidonyi. Ha 4MHz-es az orajel, akkor ugye a 4-es osztasbol adodoan 1 utasitas pontosan 1us (1/(4MHz/4) --> 4/4MHz). Magyaran a belso ciklus 256*3us --> 768us. Most jon a monyolitas: A kulso ciklus ugye a sikertelen DECFSZ miatt +2us-al hosszabb, tehat az 256*5us --> 1280us + ugye a belso ciklus 256* fog lefutni, azaz: 256*3*256 + 256*5 --> 197888us ~ 198ms. Ha egeszen pontosak akarunk lenni, akkor ugye a d2 FF inicializalasa miatt csak 255* hajtodik vegre a belso ciklus + a belsonel az elso az is 255-tel indul, + van 4 utasitas ami ezt az egeszet inicializalja + a call + return --> egeszen pontosan ennyi ido telik el mire a hivo vissza kapja a vezerlest. 255*3 + 254*256*3 + 255*5 + 4 + 2 + 2 --> 197120us ~197ms De ez csak es kizarolag 4MHz-re igaz!
Ohp! Értelek! Nagyon szépen köszönöm a választ!
Ha mindent jól értettem akkor átirtam ogy a progimat hogy 1s-ként villantson fel egy LED-et, viszont nem történik semmi! Megnéznétek nekem ezt a rövidke progit hogy hol hibás a gondolatmenetem?
Idézet: „most ugyis aktualis lenne ilyeneket epitgetni” Bizony, már neki lehetne állni ilyeneknek: - Fényfüggöny - És tavaj karácsonyra építettem egy karácsonyfa izzósort, amiből lehet, hogy írok egy cikket, csak most nagyon benne vagyok egy induktivitás mérőben...
Így ebben a formában, hogy bármelyikre, nem értelmezhető. Attól függ milyen jeleket akarsz feldolgozni és azt milyen módon akarod programba önteni. Ha szoftveresen akarod feldolgozni, megszakítás és belső hardver segítsége nélkül, akkor igen bármelyik I/O lábra tehetsz bármilyen szabványos feszültségű jelet.
Eloszor is teljesseggel hianyzik a port inicializalas, igy a PORTB inputra lesz kapcsolva + ha vannak mas periferiak is multiplexalva akkor azokkal akadhat. Adatlapban meg kell nezni hogyan kell a PORTB-t inicializalni, altalaban van is pelda.
Masodszor nem tudsz 0x4FB betolteni egy 8 bites valtozoba! En azt csinalnam, hogy csinalnek egy 100ms idozitot amit "delay100ms" -nek hivnek, es csinalnek egy 1s idozitot is amit meg "delay1s"-nek neveznek el. Ez utobbi 10x hivogatna ciklusbol a "delay100ms" rutint... Harmadszor az utasitasoknak nem szabad a sor legelejen kezdodniuk! Ott a cimkek vannak - azoknak meg nem szabad beljebb kezdodniuk... Tehat az #include es #define-on kivul minden ami nem cimke indentald beljebb. Forditaskor nezd at mikra panaszkodik, biztosan mondja, hogy hey, baj van...
Ez jol nez ki! Tenyleg jo lenne egy cikkecske rola!
Üdv mindenkinek!
Lenne pár apró kérdésem. 1. Szeretnék építeni egy kis távirányítós autót és a vezérlő jel átvitelét RF modulokkal szeretném megoldani (HE store ban kaphatókra gondolok). A távirányítóban lévő PIC egy számot küldene uarton és a kocsi vevője ezt fogadná. Kérdésem, hogy ha a picre ráakasztom az adó és a vevő modul in és out vezetékét közvetlenül, akkor megy e így az uart? 2. Tegnap megnéztem frecsko kapcsolását és felmerült bennem egy kérdés, az MCLR lábre miért van ráakasztva ennyi cucc? Miért nem elég oda egy ellenállás? 3. Ha picet szeretnék pc hez illeszteni uarton, akkor a pc felőli progi hogy is működik? Van esetleg valakinek egy mintaprogija pascal vagy delphi nyelven? A hardver szerintem egy csatlakozókábel, MAX232 ic és a pic uart lábai lennének. Ez így helyes vagy kell még oda valami, esetleg a MAX 232 sem kell? A válaszokat előre is köszönöm.
A cikk a fenyőfára valóról lenne, amin csak 80 izzó van.
A fényfüggönyről a fene tudja, lehet, hogy egyszer rászánom magam, de szerintem abból is megépíthető, ami most fenn van az oldalamon. Meglátom...
Sziasztok!
Csináltam egy kis próbapanelt! Elég sokminden van rajta. Ha valakit érdekel akkor irjon.Bővebben: Link |
Bejelentkezés
Hirdetés |