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
Elég sok szó esett a PIC-ekről, de véleményem szerint kevés az avr-ekről. Gondolom ennek több oka is van, nyilván a többség jobban ismeri a PIC-eket. Ezt a topicot azért nyitom, hogy osszuk meg a tapasztalatokat az Atmel-ek programozásával kapcsolatban is.
Bővebben: Link jó kiindulási alap, ezt nagyjából átolvasgattam és vettem néhány Atmelt: AT90S1200 és ATmega8-at.
Tapasztalataim:
A leírás szerint a 2. ic nagyon okos kis darab, így inkább ezzel foglalkoztam. STK200/300-as programozó hamar megépíthető és tökéletesen müxik, sosem ront, nem kell 14V...stb. Ami még nagyon tetszik, hogy megépítettem az első kapcsolást (led villogó) és le sem húzom a progikábelt, csak átküldöm a PC-ről a módosított programot és már látom is az eredményt.
A bascom-mal basic-ből lehet programozni, én már a C64 óta nem használtam basic-et, de meglepően hamar visszajött. Sokminden van alapból benne, pl. teljes LCD vezérlés, de akár néhány távirányító (pl. Sony) parancskódjai is.
Szóval nekem eddig nagyon tetszik.
Ennyit bevezetésnek, akkor néhány kérdés:
-Hogyan tudom beolvasni egy port állapotát? (nem bitenként, hanem egyben, hogy egy dec. számot kapjak? A valtozo=portX valahogy nem megy.)
-Az S1200-assal nem sokra jutottam, nem sikerült változokat deklarálni, gondolom, mert a "dim" az SRAM-ba akarta tenni, ami nincs. Hogy lehetséges ezt megkerülni?
A porton lévő érték a PINx regiszterból olvasható ki, ez a regiszter azt hiszem csak olvasható.
A helpben a config direktívát kell kikeresni és ott a config port, ott van példa is, tehát "változó = PINB" például. A 90S1200 al még nem volt dolgom.
Igen, ezt ismerem, de gondoltam, talán létezik egyszerübb módja is. (Csak mert a 8 bitet kellene beolvasni, és a végén egy dec számot kapni, persze a PINx.bit-tel is megoldható, csak több lépésben).
Egyébként tesztelgetem az analog digitális konverziót, nagyon látványos. Az egyik csatornát potival állítva, és 7segmens kijelzőn leolvasva az eredményt.
Ez az első "komolyabb" progi, amit teljesen önállóan írtam. A kijelző vezérlésével küzdeni kellett, hogy szép legyen (4 digit). Érdekes azt is figyelni, hogy változik a potenciál egy lebegve hagyott lábon...
A következő project, hogy ezt tovább építem egy hőmérővé és akkor már beleírom a forrasztópáka szabályozást is, és végre lesz digitális pákám
Lenne egy kérdésem: Linux alatt szeretném programozni az AVR mikromat, de valahogy nem igazán sikerül!! Pontosabban a avr - re nem tudom rátölteni a progit!!! Mikor áttöltés után visszaolvasom a progit, akkor valami eszméletlen hülyeség az egész!!!!! pedig a kioplvasás jól működik, mert win alatt felprogiztam , utána linux alatt kiolvastamn akkor jól olvasta vissza, tehát biztos hogy az írás nem műxik valamiért, már több progit is kipróbáltam, és mindegyikkel ugyan az az eredmény!!!! Valaki tudna nekem ebben segíteni!!! A válaszokat előre is köszönöm!
Én is most kezdem az AVR - s pályafutásom( aPIc nem jött be )!! Én az ATMEL oldalárol letöltöttem egy doksit (kinéztem magamnak egy avr típust (atmega8535 és ennek letöltöttem az adatlapját)), szerintem elég jó segfítség, mert vannak benne mintaprogramok is (bár nem túl sok)!! A programozás legegyszerűbben BASIC - ben töténik!! Netről letölthető a BASCOMAVR ebben is van eg ycsomó mintaprogi! Az AVR - hez nem kell égető, csak egy letöltőkábel szükséges, a neten vagy mint KANDA programozó vagy mint STK200 találod meg a rajzot (1 db DB25 csatlakozó, meg 5 szál vezeték ez nekem nagyon szimpi az ávr -ben). Ha ppedig valahol megakadsz akkor.........fórum (ezért van ) Sok sikert
Én egy éve nyomulok AVR-ekkel. Atmega128, Atmega16 és attiny2313 amiket eddig programoztam. Assemblyben meg C-ben írok mindent, mikor melyik kell. C-hez a WinAVR nevű ingyenes cucc kell, meg az AVRStúdió. Egy makefile-t kell beállítani a proci tipusával meg a forrásfájlokkal. Assemblyhez elég az AVR stúdió.
Ajánlom figyelmetekbe az ICD2-höz hasonló AVR ICE DEBUGGER-t. A gyári is csak 8 ezer (szemben a pic-ek debuggerével), de othon 2-3 ezerből is összebarkácsolható. Nagyon hasznos eszköz.
A másik tapasztalatom az ATMEl kontrollerekkel hogy az adatlapjuk alapján mindent meg lehet csinálni akár nulla előzetes ismerettel is, pl egy soros port vezérlés vagy AD átalakítás. Én egyébként SPI-on programozom a dolgokat, de a debuggerrel JTAG-en is lehet, sőt fejlesztés alatt nem is kell beégetni csak a debugger emulálja a működést.
MaSTeRFoXX, Gory koszi!
Bar en teljesen kezdo vagyok ebben a temaban,de minel elobb szeretnek foglalkozni ARV-el.
Ami nekem elso latasra megtetszett az az AVR/AD .
Sziasztok! (Lehet hogy nem igazán ide illik, de nem akarok új topikot nyitni.) Kaptam két darab AT89C2051 mikrokontrollert és ezeket szeretném programozni. Szeretnék építeni egy (egyszerű)programozót, + szoftvert letölteni hozzá. Körülnéztem már az interneten (googli a barátom ). Amiket láttam, azokhoz egy másik, már programozott AT89C2051 kellett. Találtam egy igen egyszerű programozót is ("BlowIt" névvel), azzal viszont nem lehet visszaolvasni a programot. Ha valaki készített már programozót AT89C2051-hez, kérem ossza meg velem a tapasztalatait!
Szerintem ez nem lesz jó neki, ugyanis ez SPI buszos letöltő, azon a kontrolleren meg nincs SPI. Sőt gyakorlatilag semmi sincs rajta. Én nem használnék olyan tipust semmi pénzért.
EsetlegEZ?
Ezt a programozót én is láttam már, de kicsit bonyolultnak tűnik. Nem csináltam még két oldalas NYÁK-ot ezért nem szeretnék addig belevágni, amíg nem biztosít valaki arról, hogy biztosan működik. Vagy nem használ(t) senki AT89C2051-et?
Szerintem itt mindenki PIC-ezik néhányunkon kívül. Ha AVR-t akarsz használni és valami ilyen kis lábszámút, akkor vegyél attiny2313-at(kb 400Ft), és építsd meg azt az égetőt amit gtk linkelt be, azok közül is az alsót. Ezt a fajtát ember nem használja.
Hat ha mar megvannak az IC-k es van idod, meg turelmed, akkor epitsd meg a Gory altal belinkelt egetot.ugy,hogy attervezed szimpla nyakra.(De a Tiny pl. tenyleg jobb valasztas lenne...)
Nem akarok új témát nyitni, ezért itt kérdezem meg. Egy mega8-as avr tápellátását a lehető legegyszerübb módon szeretném biztosítani 220 V-ról. Természetesen a biztonság fontos szempont, nem lenne jó ha tűzveszélyt jelentene.
Trafó túl nagy, kapcsoló üzemű táp szintén nagy lenne. Így arra gondoltam, hogy egy diódával egyenirányítom, ellenállással és Zener diódával 5 V-ot csinálok belőle, majd egy kondival kisimítom.
(Rajz mellékelve) A teljesítményeket még nem számoltam ki, de az AVR-es kapcsolás 100mA alatt fogyasztana.
Megfelelő teljesítményú alkatrészekkel lehetséges lenne így az avr tápját megoldani?