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
Amit leírtál (bepakolod a source file-okhoz a c-t és h-t, ill. includolod a h-t) szerintem elég.
Az LCD-t az lcd_init-tel indítod, de akkor még semmit nem fog kiírni.
Ezzel már kiír az LCD-re, de a gtk eredetije nem jó a te konfigodnak, mert a portlábakat megváltoztattad. Viszont a jelzett hozzászólásomban kicsit módosítottal mennie kell. Ránéztem a variszabi által ajánlott forrásra: előnye, hogy össze-vissza pakolhatod a portlábakat, hátránya, hogy saját karaktereket nem tud.
Ezzel hibásan megy.(villog)
Ezzel jól:
Üdv!
SPI-vel próbálok kommunikálni két ATmega8 közt. Egyenlőre ott tartok, hogy van egy Master-em, a következő képpen inicializálva:
A MOSI bemenetként, MISO és az SCK kimenetként konfigurálva. 4MHz-es kvarcről megy az AVR, 4-es osztó van beállítva, tehát az SCK 2MHz, ezt nem tudtam pontosan lemérni, mert 1MHz-es szkópom van, de biztosan megvan, mert ekkora frekvenciát már nem tudott mérni. Van egy adatküldő függvény:
Végtelenciklusban meghívom a függvényt:
Se a MOSI lábon se a MISO lábon nem küldi ki az adatot. A Send függvényhez azt a példáz használtam fel, amit az ATmega8 adatlapjában találtam. Mit rontottam el?
Üdv!
Megoldódott a problémám. 4 napom ráment de sikerült. Az volt a gondom ugye,h nem ment a kijelző sehogy. Na addig szenvedtem míg egy atmega8-al elindult az innen szerzett kódokkal. De hiába szenvedtem a 128-al nem ment. Most addig próbálkoztam, míg kikapcsoltam a M103C fuse-t meg a jtagen-t és 1 mhz-en elindult a kijelző. Végre. 4 napig ezzel szoptam. A jtagen-t visszakapcsoltam és akkor is megy.
Ránéztem a leírásban erre az M103C fuse-ra, és azt találtam, hogy az Atmega103-mal való kompatibilitás miatt van benne a 128-asban (én még nem is hallottam erről a 103-ról). Befolyásolja a RAMot, IO portokat és az Interrupt vektorokat is, szóval rendesen megvariálja a belső működést. Nem csoda, hogy nem működött rendesen, mikor be volt kapcsolva.
Már sokszor, többen írták itt a fórumon, hogy az adatlapokban minden benne van, csak el kell olvasni. És tényleg. (persze én is inkább úgy vagyok vele, hogy gyorsabban számítok eredményre a fórumból, mnt a 386 oldalas doksit bogarászva)
Szerintetek miért lehet az, hogy watchdog reset után nem indul újra a proci? Atmega328, bascom-al próbálkozok vele.
Ha interruptokat nem használok akkor se, próbáltam különböző órajel, BOD, boot reset állásokat, sehogy se jó. :/
Szerintem SPI, én arra kötném rá, ha engem kérdezel.
Üdv.!
Csináltam ATtiny45-tel egy virágszárazság-ellenőrzőt, ami (ha kiszárad a virág) csipog és villog. Viszont azt még meg kéne oldani, hogy éjszaka ne keltsen föl. Gondoltam a fényellenállásra, de az a baj, hogy olyan nagy az ellenállása fényben is (6k), hogy fényben sem csipog. A PINB0-n van a LED, a PINB1-en a piezo, a PINB4-en a drót a földben és a PINB3-on a fényellenállás. Az érzékelő és a fényellenállás másik fele a GND-re van kötve. A kód:
Tud valaki segíteni, hogyan csináljam meg, hogy jó legyen? Előre is köszönöm.
Szia!
Csak kíváncsiságból, a nedvesség mérését hogyan oldottad meg?
Nagyon egyszerű, primitív módon. A virágföldbe megy két vezeték, az egyik a GND-re van kötve, a másik meg a PINB4-re. Ezt a két vezetéket néhány cm-re kell szúrni egymástól, és amikor meg van öntözve a virág, akkor a föld vezet, ha meg nincs, akkor nem vezet, és az AVR csak azt nézi, hogy rá van-e kötve a GND-re a PINB4. Azt, hogy milyen érzékeny, az határozza meg, hogy milyen messze van egymástól a két drót a földben. Fő az egyszerűség!
Tedd be egy fesz osztóba a fotoellenállást. Ellenállás helyett potmétert is beiktathatsz, így állítható lesz. Az A/D-vel meg méred a fesz osztó feszültségét.
Köszönöm a választ, csak az a gond, hogy nem tudom, mi az az A/D. :no: Erről hol találok bővebb leírást?
A "Nyolc lábbal AVR" cikksorozatban.
Megtaláltam a szervó vezérlőnél, csak az a gond, hogy nem tudom, melyik kódrészletet kell belőle használni. Aki már csinált hasonlót, megtenné, hogy fölteszi ide?
Hali mindenkinek csinltam ATmega32vel egy kisáramkört amin mindent szinte ki lehet probálni na de most jönne a programozó AVR-Doper szeretném megcsinálni miinden megvan hozzá már csak maratni kel de az lenne a problémám hogy ami az usb bemenetnél van 2 zenner dioda véletlenül nem 3.6v osat vetem namost kihagyhatom belöle vagy egyátalán mért kel az oda és hogy van ithon 4V3 as zennerem azt betehetem helyete nem nyirja ki az usbt?
A két diódát kihagyhatod, nem fog tönkre menni.
Sőt, jó eséllyel menni is fog nélkülük. Az USB annak ellenére 3,3V-os működésű, hogy a tápon 5 V-ot ad. Szóval a szabványos jelszint 3,3V viszont a PC-kben lévő USB vezérlők megértik az 5V-os jelszintet, csak kisebb hányaduk értetlen. Ezek leginkább a laptopokra jellemző, ezért rakják bele a korlátozó zénereket a D+ és D- ágakra, így lesz teljesen kompatibilis. A 4,3 V-os zénerek nem jók, majd ha lesz 3,6-os, azokat rakd bele. Addig nyugodtan próbáld ki nélkülük.
Köszi szépen xD pont laptopom van bizom benne igy is müködni fog
Nekem egy IBM-Lenovo régi laptopom van Intel 82801-es USB vezérlővel, azon szépen működik zénerek nélkül.
Sziasztok, az történt hogy valószínűleg kizártam magam a Mega 8-as avr-emből.
Bascomban a fuse biteknél ahol az órajelet lehet állítani, külső oszcillátorra akartam áttenni, de ehelyett az external clock-ot választottam ki. Ez nem is tudom hogy mi, de miután beégettem, már nem érem el a mikrovezérlőt. Meg lehet ezt oldani ? Köszi
Megépítettem EZT a programozót. Minden megy, fölettem a drivert is, csak azt nem tudom hogy a bascomban melyik programozó típust válasszam.
Tudtok ebben segíteni ? Köszi
Az is egy megoldás lehet...
Raksz rá rgy külső kvarcot. Írsz a programba egy valamennyi másdoperces megszakítást és ezzel működtetsz egy belső órát. Ha úgy írod a programot pl.: hogy indulásnál (táp ráad) 12:00-ra állítsa az időt, akkor semmi gomb se kell rá. Délben beteszed az elemet és onnantól tudja mennyi az idő. Így már este nem csipog, ha úgy írod meg a programot. És még azért is jobb, mert energiatakarékosabb lehet... -jön a megszakítás, felébreszti a procit -növeled az időt -ha nappal van ellenörzöd milyen a föld -elküldöd aludni a procit Javarész aludni fog az mcu, és ha PowerDown-ba küldöd olyankor alig fogyaszt áramot. Itt van egy ilyen cikk, de itt már a timer foglalt: AVR 3.rész
Sziasztok!
Nagyon nagy gondom lenne! Miközben az USB Explorert építettem eljutottam addig, hogy fel kéne programozni az ATTiny2313-at, de mikor a Fuse biteknél be akartam állítani, hogy külső oszcillátorról menjen csupa 1est írt ki és ezzel letiltotta a RESET lábat. Ráadaásul nekem csak ez az ISP van itthon ami ha jól tudom nem tud HVP-t, de ha tud akkor sem tudom hogyan. Van most kéznél egy ATMega88, ha össze lehet így ütni akkor összeütnék egy HVP Resetelőt, csak nem tudom, hogy hogyan. Vagy ha van bármilyen más ötlet akkor szívesen veszem, de ebből a Tiny2313 kontrollerből csak ez az egy volt itthon és nem is igen tudnám kiforrasztani már. Előre is köszönöm, Attila
Azaz, hogy elírtam, mert csupa 0át írt bele így lett a RSTDISBL kipipálva.
Elnézést a hibáért!
Hello!
Bocs, hogy itt is megkérdezem, de talán joggal feltételezem, hogy sok AVR-es ért az Atmel 8051 családhoz, pláne olyan szinten amire az alábbi linken olvasható kérdésem irányul. Kérdés Téma: interrupt és idle mode kezelés. Előre is köszönöm mindenkinek!
Sziasztok!
Teljesen kezdő vagyok az AVR témában , de elhatároztam , hogy megismerkedek vele.Egész jól elképzeltem mindent , hogy kedden beszerezhessem az első AVR-emet és nekiálljak a kitervelt feladatnak.Egy kis dologgal nem tudok egyelőre megbékélni , és már lehet sokan kérdezték , de az egész fórumot nem akartam végigolvasni szóval megkérdezném , hogy ha én egy ATmega8 - al szeretném kezdeni és erre programot szeretnék feltölteni , akkor ahhoz elegendő egy stk200-as "kábel" amit 1000-forint körüli áron beszerezhetek , vagy akár meg is építhetem?Utána AVR az stk200-ashoz stk200-as a géphez és már tölthetem is rá a programot amit mondjuk C-nyelven WinAVR-ben megírhatok?Vagy van valami egyéb fortéja ami fölött elsiklottam?Ezt azért kérdeztem meg mert félek ,hogy valamit kihagyok , mert ez így elég egyszerűnek/olcsónak tűnik. Üdv!
Gyakorlatilag igen, egy 25 pólusú LPT-portra épített stk200/300-as programozóval könnyedén megoldható maga az "égetés". A Mega8-as szerintem a legjobb választás a kezdéshez, viszonylag olcsó és viszonylag sokat is tud. Nem árt még egy 4 vagy 8 megás kristály oszcillátort beszerezned, mert ha a biztosíték biteknél átállítod a mikróvezérlőt külső oszcillátorra akkor az "megáll" és nem fogod tudni programozni többet. A programozó ilyen módom nem tud tápot biztosítani a csipnek, így stab. 5V is kelleni fog. ( Érdemes egy 100n-os kondit közel tenni a vezérlőhöz, a táp és föld közé. )
Ha nem járatos a programozásban akkor szerintem ne C-vel kezd, hanem s ismerkedj meg a bascommal, nekem az a tapasztalatom hogy elég könyen elsajátítható, és jól használható. Könnyű vele sikereket elérni. Remélem tudtam segíteni A programozóról pedig kapcsrajz: Bővebben: Link
Igen , segítettél , köszönöm a válaszod.
Én még tegnap az alábbi kapcsolást találtam stk200-asra: Link. Feltételezem bármelyik jó akkor.Ezekben már benne van a stabil 5V ha jól gondolom.De ha nincs kedvem megépíteni az égetőt akkor ha jól látom vehetek is:Link4.A kedvemet egyébként az alábbi cikk hozta meg a dologhoz , és gondoltam akkor már kezdésnek ezt meg is építeném:Link2 Ehhez C-ben mellékelve is van a program , és azt jobban is szeretem , volt belőle egy fél év a főiskolán. Az oszcillátor probléma , ehhez ugye a belső órajelet használjuk , de a programozás idejéig jó lenne használnom egy 8Mhz-es oszcillátort bekötve az osc1-es lábra? ( Egyébként pont a hétre kell megtervezni a 8Mhz-es oszcillátort a z80-ashoz a suliba szóval kapóra jön ) Ebből elvileg megis tudnám csinálni: Link3 |
Bejelentkezés
Hirdetés |