Fórum témák
» Több friss téma |
WinAVR / GCC alapszabályok: 1. Ha ISR-ben használsz globális változót, az legyen "volatile" 2. Soha ne érjen véget a main() függvény 3. UART/USART hibák 99,9% a rossz órajel miatt van 4. Kerüld el a -O0 optimalizációs beállítást minden áron 5. Ha nem jó a _delay időzítése, akkor túllépted a 65ms-et, vagy rossz az optimalizációs beállítás 6. Ha a PORTC-n nem működik valami, kapcsold ki a JTAG-et Bővebben: AVR-libc FAQ
Az XTAL1 bemenetre külső órajelet tessék adni, akkor újraéled....
xtal1 és gnd közé raktam a topi féle cuccot, de meg sem nyikkan igaz 4MHz-s Qvarcot raktam bele, de most próbáltam 12essel sem megy.
Valami műszer, szkóp, frekimérő, log. analizátor, multiméter? Jó lenne tudni, hogy egyáltalán az oszcillátor megy-e. Ha igen, akkor az STK200 programozó egyáltalán küld-e ki adatot.
Műszer nélkül csak találgatunk. Ha nincs műszered, akkor készíts 4069-ből egy fokozatot LED-hez, hogy megnézd van-e rajta feszültség. Közvetlen ne kösd az oszcillátorra a LED-et, mert megáll. Kell egy köztes fokozat. Vagy egy soros R, párhuzamos C tagot (LED helyére) amire multimétert kötsz. És nem szabad 0 vagy 5V-ot kapnod... Ha azt kapsz, nem fut az oszc. Ha így sem oké, akkor nem az órajelet állítottad félre, hanem letiltottad az ISP-t, vagy letiltottad a Reset lábat. Ekkor csak HVSP vagy HVPP-vel lehet programozni.
Látom pár emberkének (köztük nekem is) jó lenne egy Rotary Encoder kezelő program. Csináltam egyet és egész jónak bizonyul, (persze lehet hogy nem tökéletes) de ez kinek szája íze szerint. Igyekeztem átláthatón és legrövidebb kóddal megoldani, kommentáltam egyes sorokat és csupán a bemeneti portot kell megadni.
Jó szórakozást hozzá!
Szerintem elegendo, ha csak az A csatornat teszed az interruptra, es igy csak annak felfuto ele okoz megszakitast, utana pedig elegendo a masodik csatorna allapotat figyelni (H szint balra tekered, L szint jobbra...).
Az egesz bonyolultsagat amugy epp az okozza, hogy ne legyen kenyszer varakozas az interrupton belul debouncing gyanant. A masik amit szerettunk volna elkerulni, hogy mikor a luzer tekergeti az encodert a keletkezo prellezes miatt ne keletkezzen olyan sok megszakitas.
Itt egy pingelős változat 2db enkóderre.
Ez csak kimásolás egy nagyobb progiból. Remélem mindent ide tettem ami kell. ATMEGA8 belső RC osc 8MHz Gombos (2láb) 16-os felbontású enkóder (3láb) Idézet: „ss”
Valaki tudja, hogy ha kód ként illesztem be, akkkor miért nem kódként jelenik meg?
A tömbös dologra a forgásirány megállapítása miatt van szükség. Ez tárolja az előző állapotot.
[OFF]
Idézet: „Valaki tudja, hogy ha kód ként illesztem be, akkkor miért nem kódként jelenik meg?” Mert a [code=c] mezot meg kell editalni, hogy pl [code=C] legyen ill assembly eseteben [code=asm] De amugy ha ilyen hosszu a kod akkor erdemesebb szerintem csatolni.
Órát szeretnék készíteni.
Vettem egy 32.768Khz-s kristályt, de úgy akarom megcsinálni, hogy ne ez adja a proci órajelét, hanem a belső órajelet használnám. A kristállyal előállított jelet egy megszakítás (mondjuk az int0) kezelné. A program nem probléma, de nem tudom hogyan kéne bekötni a kristályt. Kerestem itt is meg a google-t is, de csak az XTAL1-2-re való bekötést találtam meg sajnos.
Az INT0 nem arra való. Órakvarcról leginkább timert lehet hajtani (procifüggő). Pld az ATMEGA8 esetén a TOSC1 és TOSC2 lábakra lehet órakvarcot tenni. Ez a 8 bites Timer2-t fogja neked hajtani, ha az ASSR regiszter AS2 bitjét 1-re állítod.
Köszönöm akkor utána nézek ennek a két lábnak.
A bekötést ugyanúgy kell, mint a sima kvarcnál? Vagyis két kondival? (Amúgy milyen kondi kell a 32.768khz-s kristálynak? 22pF jó hozzá? egy másik rajzon 10pF-est láttam csak az most nincs raktáron)
Most nézem, hogy a ATMEGA88-20PU procinál ugyanaz a láb hivatott a külső kristályra, mint az órajelre?
Vagyis vagy rakok oda egy 20Mhz-s kristályt vagy egy 32Khz-st a kettő együtt nem megy? A mostani cuccomhoz mondjuk nem fontos mivel csak hőmérsékletet mérek és azt akarom elraktározni, hogy tudjam hány órakkor mennyi volt a kollektor hőmérséklete, így elég a belső órajel+külső kristály a pontos időhöz. Idézet: „The device can operate its Timer/Counter2 from an external 32.768 kHz watch crystal or a exter- nal clock source. The Timer/Counter Oscillator Pins (TOSC1 and TOSC2) are shared with XTAL1 and XTAL2. This means that the Timer/Counter Oscillator can only be used when an internal RC Oscillator is selected as system clock source ” Ergo a kettő együtt nem megy. A kondi a 10-25pF között mindegy csak egyforma legyen. Nekem anno 15 pF-el ment ilyen kapcsolás.
Értem és köszönöm.
Akkor, ha mégis együtt akarnék ilyesmit kell egy külső órajel generátort kapcsolni valamelyik lábra.
Szia!
Köszi szépen, nekem szerintem amúgy nem a kódolással volt gondom hanem egyszerűen nem sikerült rendesen pergésmentesíteni hogy az megfeleljen a kódomnak... najó akkor mondhatjuk hogy a kódolással volt gond janyjozsef: köszi neked is, ki fogom próbálni amit sikerül életre keltenem az ISP-met.
Sziasztok! Mindjárt megüt a guta ezért inkább kérdeznék! Megépítettem a doplert de az AVR-t fel kéne programoznom de nem tudom milyen progival csináljam Van egy LPT külsó tápos 8MHz es külső rezonátoros égetőm ezt szeretném hozzá használni! Milyen progival megy ez? Avr studio 4 vagy mi van a gépemen de azon csak com portokat lát a beállításban Amúgy ha így simán bedugom az usb csatiba azt írja ki nem lehet felismerni az usb eszközt!
Viszont ez minden második jelre reagál, és még nincs megoldva a prell mentesítés, és pl. ha épp úgy áll hogy egyet tekersz balra, egyet jobbra, az mindíg csak egy irányba fogja vinni.
A megoldás, hogy a 32768Hz-es kristályt TOSC1 és TOSC2-re teszed, és a mikrovezérlő belső órajelről fut. Vagy ha 2 kristályt szeretnél használni, akkor megfelelő típust kell választani, amin mindkettőt lehet egymástól függetlenül használni (pl.: Atmega16).
Amúgy ez a diódás megoldás miért jó?
Eddig úgy csináltam mitha sima nyomógomb lenne: int láb felhúzva ellenállásal és az adott láb és aföld közé kötve az enkóder, párhuzamosan vele meg egy kondi. előnyök, hátrányok? hogy csinálnám ha profi lennék?
Ez a diódás megoldás arra jó, hogy mindkét oldal ('A' és 'B') lefutó élére reagál és csak egy Interruptot használ, valamint egymástól függetlenül működnek.
Idézet: „előnyök, hátrányok?” Hátránya: -Kondenzátorosnak ha nem megfeleő értéket választasz az vagy nem tölt fel időben (lassan reagál a tekerésre), vagy nem végzi el a megfelelő prellmentesítést. -Az én szoftveres verziómnak is van hátránya, mégpedig az, hogy kényszer várakozást hajt végre (magyarul megvárja míg átfordul a holtponton), ha ezt kivesszük akkor több impulzust ad le.Én arra törekedtem, hogy egy "billenésre" 1-et léptessen. Idézet: „hogy csinálnám ha profi lennék?” Úgy mint a nagyok Még énsem tudom, mivel nem vagyok profi, csak elszánt kísérletező.
Létezik,hogy a dopler azért nem megy mert nekem ATMEGA8-16PU AVR van bent? Írásnál nem ezt írja ki a hexre hanem AT90S8515 az nem ugyan az! Vagy láma vagyok? Most akarok avr dolgokkal foglalkozni de kell egy jó dopler és utána nem lenne gondom vele menne laptopról is a műhelyben ezért erőlködök vele! A Poniprog-al úgy néz ki sikerült beírnom a hexet de nem ismeri fel most sem
Atmega8-at szeretnék felprogizni AVR-Doper, USB-s ISP programozó-val. AVRSTUDIO4 van fent.
Ezt írja ki: Erasing device.. OK! Programming FLASH .. OK! Reading FLASH .. OK! WARNING: FLASH byte address 0x0A00 is 0xDF (should be 0xC8).. FAILED! Leaving programming mode.. OK! Mit ronthattam el? Minden fül OK-t jelez.
PonyProg-ot nem ismerem, de Neked kell beállítani szerintem a processzor típust. Ha más processzorként programozod be, akkor lehet, hogy még a Fuses-okat is kinyírod -> örök hallgatásba merül a proci.
1. Hosszú vezeték
2. Túl magas órajel 3. Instabil táp (zajos, nem pufferelt, stb) 4. Valami van a programozó lábakon.. Külső HW-re gondolok.
Az összekötő vezeték Kb15cm.
A tápot a progrmozórol kapja. A magas órajelet hogy érted?
Csak atmega 8 meg atmega 16 van bent olyan mi 8-16 nincs melyik a jó? Sajna az AVR-ben láma vagyok! Az usb akkor is ugyanazt írja ki ha bent vannak a procik mint mikor nincsenek " A számítógéphez csatlakoztatott usb eszköznél hiba lépett fel nem lehet felismerni" Zárlat az nincs mert rámértem megkapja az 5V-ot de mégis kuka! Szerintem a program az oka! Megírja az avrt meg ki is olvasom belőle de nem annak látja minek kéne lenni a programozó! Te melyik progit ajánlanád az alábbi programozóhoz?Bővebben: Link
Sikerült!
Nem kell kondi egyszerűen csak az TOSC1 és TOSC2 láb közé kell tenni a kristályt. Bascomban pedig ennyi:
Megoldódott, a cél áramkör nem kapot rendesen tápot.
Most már jó.
X1,2 -re mehet orakvarc, ez hajtja valamelyik timert, es a proci mehet belso oszcilatorrol. Nixi oraban ugyanezt a megoldast hasznaltam. Kulso kondi nem kell orakvarchoz, van belso.
|
Bejelentkezés
Hirdetés |