Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
A kvarcok pontossága százalékban van megadva, nem abszolút értékben. Ebből kifolyólag pedig mindegy milyen órajelből indulsz ki, az osztás után is ugyanaz a százalékos eltérés marad. Pl. 20MHz-es kvarc ha 1% pontosságú, akkor az 200kHz maximális eltérést jelent. Ha ezt osztod 20000000-val, akkor másodpercenként egy századmásodperccel tér el. Ha van egy 32768Hz-es kvarcod, ami 1% pontosságú, akkor az 327,68Hz maximális eltérést jelent. Ha ezt osztod 32768-al, akkor is egy század másodperces az eltérésed. Természetesen a kvarcok százezredrész pontosságúak, csak a példa miatt írtam az 1%-ot.
Annyival jobb az órakvarc, hogy az pontosabb szokott lenni, mint a MHz-es kvarcok, illetve a CMOS áramkör fogyasztása a frekvenciával egyenesen arányos, tehát a 32768Hz-es kvarccal épített oszcillátor fogyasztása kb. százada a 3MHz-es kvarccal épített oszcillátorénak. Akkus vagy elemes üzemnél ez nem kis előny.
Most így megnézve a kódot, nem értem, mit akarsz csinálni. Ha kiegészíted a sorommal, akkor ha lenyomod világít, egyébként nem. Már ha mindkét helyen átírod.
Te nem olyan progit szeretnél, ami egy-egy nyomásra az ellenkezőjére állítja a ledek állapotát? Ki-be kapcsoló gomb.
Hát érdekes, közben találtam egy leirást, mert nem igazán értettem hogy mi ez a ppm: Bővebben: Link
Árlistában böngészve a 32.768 -as "óra" quartz az 20ppm, míg egy MHz -es meg 30. Szóval szerintem ez nem olyan számottevő különbség. Bár ha úgy vesszük akkor 1.5x az egyik a másikénak. De gondolom ezek az értékek a megengedett maximális eltérések, ettől átlagban azért pontosabbak. Adatlapot böngészve feltűnik hogy nem megfelelő hőmérsékletre legalább ennyit el is mászhat a frekvenciájuk. Szóval nehéz eset otthon atomórát építeni.
Chipcadnél kapsz 10ppm-es órakvarcot is.
Idézet: „A kód gombbal lehet úgy betenni a kódot?” Igen. Használd a kiegészítéseket is: code=c, code=asm.
Ehhez még annyit, hogy az ilyen benntragadós dolgokhoz érdemes egy Flag-et használni. Azaz a gomb csak egy jelzőbitet állít be és ezt figyeled a további elágazásban és gyújtod ki a LED csoportokat, vagy nem. Ez az ellenőrzés bennt lehet a fő ciklusban is, ahol a ciklustól függően sokszor lekezelődik a Flag vizsgálata, vagy a gomb kezelés utáni folyamatban, ahol csak akkor fut le az ellenőrzés, ha valamelyik gombon esemény volt.
Ez attól is függhet, hogy hány helyről állítod a jelzőbitet. Ha csak a gombok állítják, akkor elég a gombok után, ha máshol a programban is, vagy megszakításban is(majd ha bővíted a feladatot) módosulhat a LED-ek állapota, akkor jobb a fő ciklusba tenni.
[OFF]És megvan az OFF gomb is...
Lassan csak megtanulom használni a fórumot
Idézet: „CALL DELAY BTFSS PORTA,0 MOVLW B'00000000' ;ha 1-es akkor kikapcsolom a LED-eket MOVLW B'00011111' ;egyébként be MOVWF PORTD” Ebben nem jó az utasítások sorrendje, mert a MOVLW B'00001111' mindig felülírja W tartalmát! Inkább így kellene:
Igen, amennyiben ez lenne a feladat, de az eredeti elgondolás az, hogy az egyik gombbal be, a másikkal ki. Ettől még a meglátásod hibátlan!
Amiket írtam, az tapasztalat. Adatlapokat nézegetve nekem sem volt igazán világos, hogy mi okozza a különbséget, de tény, hogy a 11MHz-es kvarcaimról járatott órák pár nap alatt már perc körüli eltérést mutattak, a 12.000000MHz-esről járatottaknak már kb. 2 hét kellett ehhez, míg a 32768Hz-es órakvarcokkal működők évente hoznak össze maximum 5 percet (van, amelyik másfél év után tart 2 perc körül).
Egyébként az is feltűnő, hogy az adatlapokat megnézegetve a MHz-es tartományú kvarcoknál kétféle "ppm" értéket definiálnak, egy toleranciát, és egy hőmérséklettartományon belüli "mozgás"-t. Sajnos az alkatrészboltok kínálatából az esetek legalább 90%-ában nem derül ki sem a kvarc gyártója, sem pedig az, hogy pontosan milyen paraméterű az adott kristály. Nem mindegy, hogy a tolerancia, vagy a hőmérsékletre adott frekvenciaváltozás az a "ppm érték", amit jó esetben a termék mellé írnak. És még ha tudjuk is a pontos típust, akkor sem lehetünk teljesen biztosak a dolgunkban, hacsak a kvarcon nem találjuk meg a gyártás idejét, ugyanis van még egy érték, az "aging", azaz az öregedés. Ahogy látom, ezeknél a kvarcoknál ez tipikusan +/-3, de maximum +/-5ppm évente, azaz lehet, hogy egy eredetileg 30ppm-es toleranciájú, de 6 éve elfekvő készleten lévő kristály a valóságban 60ppm eltérést fog mutatni szobahőmérsékleten, nyári napra kivíve a készüléket meg esetleg 90ppm-et. Megnézve az órakvarcokról is egy adatlapot azt látom, hogy a paraméterek nagyon hasonlóak a MHz-esekhez. Lehet, hogy az eltérés a gyártásból adódik, és a kisebb frekvenciájúakat pontosabban tudják gyártani. Ehhez nem értek, lehet, hogy valaki majd felvilágosít. De még az is elképzelhető, hogy azért foglalkoznak a gyártás precizitásával jobban az órakvarcok esetében, mert azokat tényleg szinte kizárólag időalaphoz használják fel, ott pedig fontos a pontosság. http://pdf1.alldatasheet.com/datasheet-pdf/view/143650/AURIS/TC38.html http://www.microcomdevices.com/specs/HC49U-HC49G.pdf http://www.vanlong.com/download/HC49U.pdf
Sziasztok!
Még csak most ismerkedem a PICekkel. És rögtön volna is egy kérdésem. A szitu explorer 16 board hozzá pic24F de akármit is töltök rá nem látok semmit. Próbáltam mindenféle példa programokat, de semmi.Volna valakinek valami ötlete? Vagy esetleg egy példa programja, ami kiírja, hogy "helló világ" bár ilyenem elvileg van! Előre is köszi! Idézet: „explorer 16 board hozzá pic24F de akármit is töltök rá nem látok semmit” A gyári demóprogrammal egyébként működik?
És tényleg régen volt már.
Basicben vagy ez megy le, vagy az(ifthenelse)... Akkor következő feltételezés ez ki-be kapcsolgatná nyomogatásra
Persze kérdés, hogy alapállapotban felhúzott gombról van-e szó.
Ha 20-25 fok van folyamatosan, akkor elég pontos lesz.
Van hőkompenzált kvarc is. A hangkártyámon pl egy rakon aej-5e-s van.
De ilyet.
Ennek az elkapkodott megoldásnak az a hátulütője, hogy amíg le van nyomva a gomb, addig vég nélkül váltogatja az állapotot, s az elengedés pillanatától függ, hogy melyik állapotban rögzül.
A tisztességes megoldáshoz egy teljes lenyomás/felengedés ciklust kell detektálni (lenyomáskor és felengedéskor is kell pergésmentesítő késleltetés), és ciklusonként csak egy állapotváltást szabad beiktatni.
Ez így van. Watt is ezt írta(állapotfigyelés). A meglévő kódhoz így nemsokat kellett hozzáírni, és látja, mi történik. Utána jöhet a még nyomom a gombot? rész. Lépésenként sztem könnyebb megérteni.
És azt a Flag bitet hogyan tudom figyelni és a változást lekezelni?
Egy gombbal akarom a ki és bekapcsolást megoldani.
A gyári demója nincs meg, a MICOCHIPről töltöttem le demót ehhez. De az nem megy! így állok jelenleg! várom az ötleteket!
Először is: mivel programozod? Ha PICkit2-vel, akkor ügyelni kell rá, hogy a PICkit2 ICSP csatlakozó a kapcsolási rajzon és a kártyán fordítva van feliratozva (az 1-es láb a 6-os, és így tovább).
Másodszor: mellékelek egy demó .hex állományt (a forráskódja itt található), ami egy LED-et villogtat és az LCD kijelzőn egy feliratot scrolloz. Ha ez nem működik, akkor gáz van. A program a PIC24F128GA010 mikrovezérlőhöz való. szerk: továbbá "y Azevedo" , azaz PIC24FJ...
Megnéztem a HE-s pic-es cikket, és ott sincs lekezelve a lenyomvatartás.
Tehát: lenyomod a gombot és eltárolod egy változóban, hogy lenyomott státuszban van. És ha felengeded, akkor átállítod a státuszt. Persze delayekkel variálva, stb... Pl: gombstátusz=0 az elején. Lenyomod, akkor gomb1státusz=1, majd elindul egy delay(ez mondjuk a prellezést küszöböli ki), és ha a delay végén még mindig le van nyomva, akkor gomb1státusz=2, tehát tényleg le van nyomva, egyébként gomb1státusz=0. Minden ciklusban figyeled, hogy ha 2-es a gomb1státusz, és a gomb fel van engedve, akkor fut csak le a felengedés függvény, aminek az elején átállítod a gomb1státuszt 0-ra, és minden kezdődik elölről. Kb.
Ez 1 ledre van. De a gomb vizsgálatát meg lehet érteni belőle. Itt nem tárol státuszt. SWPORT mondjuk PORTA, SW1 meg 0 LEDPORT mondjuk PORTD, LED1 meg 0
Ebben van egy gombfigyelés még, igaz ez C, de nekem nagyon tetszik ahogy megoldja a pergésmentesítést, nem konkrét delay függvényt használ, hanem egy változót növelget.
Nekem is van mikrobasices, ott 4-5 státusz van, és 3mp-ig kell nyomni a gombot, csak akkor megy.
Ott volt fontosabb dolgom is, mint a gomb delay ciklusában szaladgálni. De azt assemlyben be nem írom.
Amúgy a kristály oszcillátor áramkör is lehet ludas, mivel a Timer1-re kötött LP oszcillátor kifejezetten 32768Hz-re lett tervezve, azonban az FOSC egy intervallumon belül kell kielégítő pontossággal dolgozzon. Nyilván kis mértékben lehet segíteni hangoló kondenzátorokkal.
Köszönöm szépen!
Igen azzal programozom, de írni olvasni tudom, csak éppen nem látom, hogy bármi is történne. Kössz mégegyszer!
Az Eplorer16 külső tápfeszültséget igényel, a PICkit2 átalakítás nélkül nem tudja meghajtani. Egy 9 V-os dugasztáp rá van kötve a kártyára?
Programozás után a PIC24 mikrovezérlő reset lábát el kell engedni (MPLAB-ban: Programmer/Release from Reset, PICkit2.exe esetén is van valami hasonló), vagy egyszerűen le kell választani a PICkit2 programozót a kártyáról. A PIC-PIM kapcsoló PIM állásban legyen, ha külön rádugott modulon van a PIC. PIC állásban akkor legyen, ha a kártyára beforrasztott mikrovezérlőt akarod futtatni! (nálam csak PIM modulok vannak...) A kapcsoló alatti jumper PIC24 állásban legyen (a másik állás a PIC18LF4550 programozásához és reseteléséhez való). Nos, a tegnap küldött programmal mit csinál a kártya?
Nekem is ilyenem van, már bekapcsoláskor az lcd-n mennie kell a demónak, persze csak akkor ha adsz neki egy tápot is mert a pickit 2 nem tud neki annyit adni ami a rendes működéshez kell.
Erről jutott eszembe, hogy anno én megoldottam a Low Pin Count Demo Board reprodukálhatóságát, legalábbis otthoni körülmények között. Bővebben: Link
Majd rittyenteni kell még hozzá beültetési instrukciókat is, mert van rajta pár átkötés, de tulajdonképpen az LPC board doksijából lett kiollózva és megszerkesztve a kép. Korábban írtad, hogy egy kis kreativitással ebbe a kártyába betehető a 18F14K50, így aki tanulni akar, annak hasznos lehet az LPC board utánépítése.
Köszi a segítséget! A külső táp az megvan, és pickit2 is le van húzva, a jumper pic24ben. A d10 felíratú le az villod, de semmi egyéb, mintha az lcdnek baja lenne
Áramot kap, de semilyen felirat nem jelenik meg rajta. Még próbálokzom! Köszi mégegyszer! |
Bejelentkezés
Hirdetés |