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
Sziasztok!
Tudtok mondani valami fejlesztőkörnyezetet amiben atmega168P-t tudok programozni C nyelven? az avr studio csak assemblyben támogatja ezt a kontrollert, a gcc nem.
Szervusztok!
A kérdésem a következő lenne: Miként tudom kiküszöbölni a következőt: a mikrokontrolleremre rá van kötve egy LCD modul, és sajnos azt a két lábat is fel kellet használnom ennek a vezérlésére, amelyik a TTL kommunikációért szolgál a gép és a uC között. Ha a másik kábelt is rávezetem a lábakra, akkor az LCD-n nem a kívánt karakterek jelennek meg ugye, mert a másik kábel bezavar. Van erre valami megoldás, vagy be kell szereznem egy több kimenettel rendelkező AVR chipet, ahol külön tudom választani ezeket? Köszönöm előre is a választ. Üdv: André
Egy kicsit reszletezhetned, hogy milyen uC, milyen interfesszen komunikalt az LCD-vel, milyen interfeszen keresztul kommunikal a PC-vel, stb.
Üdv!
Az LCD-vel(vezérlő IC-vel ellátva) 8 bites kommunikációval, a számítógéppel pedig egy FTDI USB-TTL átalakítón keresztül kommunikál, mindkettő működik külön-külön jól, de mivel kénytelen vagyok uazt a lábat használni mindkét célra, ezért akadtak a gondok. Üdv: André
Esetleg 4 bit-es kommunikáció az LCD és az AVR között , rögtön felszabadul 4 port
Az alabbi modszerrel eleg csak 2 lab:
LCD 2 labon
Az atmega168-at támogatja, de a P-t nem. Legalábbis nekem nem, milyen verziód van?
2007-10-17 -en fogadtak el a patchet, ami alapjan tamogatja. Tovabbi info itt.
Mondjuk en linuxos avr-gcc-t hasznalok es nem winavr-t, de 2007esnel biztos ujabb a winavr is... De izgulni nem kell, ugyan az a mag van mind a ket uC-ben, ezert a 168p-re nyugodtan fordithatsz --mmcu=avr5 kapcsoloval. Az avr-libc szinten tamogatja a 168p-t. Az AVRStudio nem tudom mennyire tamogatja, mivel azt nem hasznalok, ezert arrol nem is nyilatkoztam.
Végül megoldódott a gondom. Építettem egy hihetetlen drága és bonyolult (120.-/2óra) "si-prog" soros programozót, ami az avrdude segítségével hajlandó volt beleírni egy led villogtató programot, és most már az avr-doper is kezeli. A belső rc oszcillátort választottam programozásnál. Ettől függetlenül a következő kütyü egy órajel generátor lesz.
Köszönöm, én is erre jutottam és már miden rendben.Viszont ha az avr st4-ben először vissza állítom belső órajelre akkor semmi gond.Remélem nem mondtam butaságot.Nekem így volt.Az eOscop is jól működik ha a használat során is megfelelőnek találom megoldom a bemeneti osztó és az 1 megohm bemenetet.Ja és egy fázisfordítás is kell, ugyanis a + jel le és a - felfelé tér ki.Külömben nem rossz.Zoli ha érdekel, adok neked egy ilyen kijelzőt.Valamire jó lessz.Külömben már tegnap este 22-óra körül lett tiszta a kép a program feltöltést illetően és azóta csiholgatom az eOscopot.Lehet hogy nem nagy szám de tovább fejleszthető mert miden fent van a neten.
Üdv:Árpád
Igazad volt, a 2010-esben már bennevan, ezekszerint az enyim régi verzió volt. Köszi.
Sziasztok!
Azt szeretném kérdezni, hogy ha az AVR egyik ADC portjára kötöm egy ellenállás középső lábát feszültség mérés céljából míg a többi két lába Vcc-re és GND-re van húzva (tehát fesz.osztóként) akkor szükséges-e ezt még kiegészíteni egy plusz felhúzó ellenállással a Vcc-re csatlakozó láb felől arra az esetre ha potméter végállásban van? Vagy ilyenkor is van neki még annyi ellenállása ami elegendő, hogy ne alakuljon ki rövidzár? A neten nézegettem de "ellentmondásos" információkra/kapcsolásokra leltem. Köszönöm!
Ha a labra kerulo feszultseg nem haladja meg az uC tapfeszultseget, akkor nem lesz gond.
Kiegszítés: az adatlapban alacsony impedanciás források csatlakoztatását írják (tehát elvben nem kell további ellenállás) de nem tudom 100% biztosan, hogy jól értelmeztem-e.
Az ellenállás középső lábánál gondolom potméterre gondoltál. Legegyszerűbb, ha multiméterrel megméred a végállásban apotmétert, és szépen a feszültség osztás, és ohm törvény segítségével kiszámolod. De nem szokás semmi ilyesmit tenni, csak megfelelően nagy potmétert kell választani (kb. 50K ohm), hogy a mikrokontroller lábára megfelelően kis áram jusson. Jobb ötletem nincs sajnos.
Hali!
Köszönöm! Egyébként ha mondjuk 12V-ra kötném akkor kellene elé egy sima fesz.osztó és az osztásviszonnyal korrigálva számolhatnám is a mért értéket? 100nF-os szűrőkondi elegendő az Avcc és AGnd közé?
Én 10 kohm-ost tudok rákötni csak (az van itthon), remélem elég lesz...
Az AVR ADC bemenete természetesen nagy impedanciás, tehát a befolyó áram nagyon kicsi. Ennek ellenére a rá kötött feszültség nem haladhatja meg a mindenkori táp feszültségét az AVR-nek (ez ökölszabály), pontos toleranciákért lásd az adatlapot.
A potméteren keresztül nem folyhat nagy áram, mivel a két "szélső" lába között állandó az ellenállás, míg a "középső" leosztó lába felé változik. A félelmed nem volt alaptalan, mert ha szélső helyzetbe tekered a potmétert, akkor megeshet az, hogy a tápfesz és az ADC bemenet között 0 Ohm lesz az ellenállás. Mivel az ADC bemenete nagy impedanciás, így a 0 Ohm igazából nem 0 Ohm lesz, hanem valahány nagyságrendes kOhm, részletek adatlapban. Egy dologra kell ám ügyelni, mégpedig, hogyha az adott láb kimenetnek van konfigolva, méghozzá alacsony állapotba, tehát DDRx.y = 1 és PORTx.y = 0 (x jelöli a portot, míg y a lábszámot), és a poti pont úgy van tekerve, hogy 0 Ohm legyen a tápfesz és a középső láb között, akkor sok amper fog folyni, ami nem jó. Természetesen ez nem fordulhat elő, mivel alapesetben a portok bemenetek, amikoris nagy az impedenciájuk. Tehát, akkor vagy bajban, hogyha az ADC initnél valamilyen okból egy ideig kimenetnek konfigolod, ahogy említettem, más esetben nem. De azt a 10kOhmos ellenállásod nyugodtan kössed az ADC láb és a potméter középső ága közé, így biztos nem folyik nagy áramod majd sosem, míg a mérést nem befolyásolja(pont azért mert az ADC-be nem folyik áram). A 100nF megteszi, persze attól függ, hogy hogyan konfigolod az ADC-det. Nézd meg a Reference Selectiont az adatlapban(nem mindegy milyen konfignál melyik lábhoz teszed).
A helyes kialakitashoz olvasd el az AVR040 es AVR042 appnote.-kat. Itt kiternek az analog tap szuresere is.
Ha elofordulhat, hogy nagyobb feszultseg juthat a megengedettnel, akkor en biztos ami biztos zeneres (vagy inkabb tanziens szupresszoros) vedelmet szoktam alkalmazni. De alapvetoen megteszi a feszultsegoszto is.
Hello! Próbálok feléleszteni egy LCD-t amelyik t6963-as vezérlővel rendelkezik. Atmega32-vel, kevés sikerrel. A program elvileg okés, de a kijelzőn csak a csatolt képeknek megfelelő ábra jelenik meg (mindig). Hibás lenne a kijelző (úgy kaptam újonnan kipróbálva nem volt) vagy más a probléma?
Sziasztok!
Avr-hez illeszthető keypad-ot (tasztatúrát) szeretnék készíteni, találtam egy megfelelő-t http://www.mikerj.clara.net/keypad.html de sajnos nem értem a működési elvét, esetleg valaki, aki használta már ezt a fajta elrendezést, eltudná mondani nekem ennek a működését, és hogy mennyire és hogy bővíthető?
Nézd meg ezt. Elég részletes leírás is van hozzá.
AT90USB1287-hez valahonnan le lehet szedni USB példa progit, illetve PC-re dll-eket? Keresgéltem de nem nagyon találtam.
Hali!
Van egy LCD-m, aminek Sclk és Sdata lába van. TWI-n keresztül lehet ezt vezérelni? Mert az nekem nem akart működni, hogy csak adatot küldök ki és nem várok választ semmit.Assemblyben.
Ezt a kódot használom, TWI regiszterei engedélyezve vannak, de nem akarja az igazságot. Üdv Kiborg
Sziasztok
Bascomban szoktam programot irni,de most egy c forrást kellene modositani csak ahoz nem értek. Kérem segitsetek. Hogyan kell c-ben helyesen leirni if pinb.5=0 then
else
end if
A valtozot az if elott kell deklaralnod, mert az if belsejebol kilepve megsemmisul, az erteket viszont az if-en belul kell adnod. PROGMEM-be ezt nem tudod megtenni, mivel a flash nem irthato terulet, illetve ha az ic kepes onprogramozasra, akkor egyebb fugyvenyek segitsegevel lehet irni(az eepromhoz hasonloan).
az ifet pedig igy kell irni:
a then es endif nem kell, viszont ha tobb utasitasbol all amit beleirsz, akkor {-vel kell kezdeni es }-vel kell lezarni.
Köszönöm szépen!
Sziasztok!
Ezt a PROGMEM direktívát mikor célszerű és mikor kötelező használni? Köszönöm előre is! KJ |
Bejelentkezés
Hirdetés |