Fórum témák

» Több friss téma
Fórum » AVR - Miértek hogyanok
 
Témaindító: pakibec, idő: Márc 11, 2006
Témakörök:
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
Lapozás: OK   53 / 840
(#) Router hozzászólása Ápr 6, 2008 /
 
Sziasztok!

Úgy döntöttem, hogy megismerkedem a mikrokontrollerekkel de közben felmerült pár kérdés...

Mivel érdemes kezdeni a témát? (nekem az avr chipek jobban tetszenek az egyszerű programozhatóság miatt)

Hogy kellene nekikezdeni a programozásnak mivel semmilyen alapismeretem nincsen?
(#) TavIR-AVR válasza Router hozzászólására (») Ápr 6, 2008 /
 
Előzetes programozási ismeret?
- asm;
- pascal;
- C;
- basic?

Elektronikai alapismeret (LED, TTLIC-k, tranzisztorok)?

Total 0-ról nehéz.... (de nem reménytelen).


Az ismert nyelvre kell fordító, ami a futtatható kódot csinálja AVRre. AVRből pedig kezdésnek a Mega8 vagy a Mega16-t javaslom, mert ezek olcsók, DIP tokosak, és minden periféria benne van, mint a nagyobbakban....

(#) Router válasza TavIR-AVR hozzászólására (») Ápr 6, 2008 /
 
Köszönöm a gyors választ!

Programozási alapismeretek mint említettem nincsenek (kivéve minimális HTML de az itt nem ér sokat), elektronikai igen, nem vágyok hatalmas dolgokra de nézegettem a neten érdekes és viszonylag ehgszerű dolgokat mint pl kivezérlésmérő alfanumerikus lcd meghajtás stb...

Az avr.tavir.hu oldal adta a kezdő löketet de sajnos nem találtam más magyar nyelvű leírást.
(#) digimann válasza Router hozzászólására (») Ápr 6, 2008 /
 
Hello!

Ha vannak a jövőre nézve tarveid, akkor érdemes asm-el kezdeni, mert úgy tudsz a legközelebb férkőzni a prockó lelki világához. Na meg az avr adatlapok is tartalmaznak asm példákat...

Sok sikert!

Üdv: Zsolt
(#) davidov válasza Router hozzászólására (») Ápr 6, 2008 /
 
Az ATmega16-ot én is ajánlom, mert van benne JTAG interface. Ez azt jelenti, hogy ezen keresztül lehet programozni, és tudod debuggolni, azaz látod, hogy az egyes regiszterekben mi van, illetve, hogy hol jár a program. A fórumban valaki küldött egy linket egy JTAG programozóról, hogy hogyan lehet megépíteni (a programozóban is van egy ATmega16-os). Igaz kell vele szívni egy kicsit, de szerintem megéri.

Persze ISP-n is lehet programozni (egy kábel egyik vége PC párhuzamos portra, a másik az AVR-re), ami lényegesen egyszerűbb, csak az a hártánya, hogy feltöltöd a ketyerére a programot, aztán vagy megy vagy nem, túl sokat nem tudsz arról, hogy mi történik.

Linkek:
AVR Beginners magáért beszél. Elsősorban asm-re van kihegyezve, de van C példa is (pl. LCD). Lentebb az oldalon van egy ATmega8as fejlesztő panel, csak ,hogy tudd, hogy kb hogy is néz ki egy ilyen panel.

Aztán AVR Freaks nekem nagyon sokat segített annak idején (pár éve már nem foglalkozok AVR-rel). Itt akkor érdemes szét nézni, ha konkrét kérdésed van, sok hasznos dolgot lehet találni a fórumban.

A programozási nyelvről megoszlanak a vélemények. A leghatékonyabb az asm, viszont szerintem lassan lehet fejleszteni vele. Elég elterjedt és egyszerű a Basic, bár én nem használtam.
A legtöbben szerintem C-ben programoznak (én is ezt használom). Valaki még régebben küldött egy pdf-et a C nyelv szintaktijáról a fórumba, keress rá vissza. Ha meg tudod szerezni a Benkőné: Programozzunk C nyelven című könyvet, azzal gyorsan meg lehet érteni.

Aztán ha valamelyik nyelvvel sikerült megbarátkozni, akkor pedig adatlap, adatlap, adatlap. Anélkül nem fog menni.

Ez lehet, hogy kicsit sok volt egyszerre...

Sok sikert!

(#) Router válasza davidov hozzászólására (») Ápr 6, 2008 /
 
Köszönöm szépen az érthető választ!

Most túrok a fórumokban a kezdéshez szükséges információkért de szerintem menni fog.
(#) mikol hozzászólása Ápr 7, 2008 /
 
Sziasztok! Nemrég irtam a bináris órával kapcsolatban, az t mondta a tanárom hopgy a programkódhoz kellene egy fordító program, ami neki nincsen! Esetleg tud valaki valamit ajánlani? Előre is köszi! Ádám
(#) mikol hozzászólása Ápr 7, 2008 /
 
Esetleg ha valaki le tudná fordítani a kódot hexába azt nagyon megköszönném! Itt az oldal a kapcsoláshoz!ű Előre is köszi! Ádám
(#) Router hozzászólása Ápr 7, 2008 /
 
Sziasztok!

Tegnap egész éjszaka túrtam a neten az AVR programozással kapcsolatban és pár dolog nem világos.

Nézegettem kész programokat és rengeteg dolgot nem értek.

Honnan tudom, hogy melyik "kifejezés" mit fog végrehajtani a programban? Van valahol erre valamiféle táblázat Bascom-ra? (csak a HTML-ből tudok kiindulni mert mást nem programoztam de ott volt egy komplett kódtábla ami szerint lehet programozni...)

Valami ilyenre lenne szükségem ha egyáltalán létezik és jobban ki tudnám bogozni, hoigy mi mit is jelent.
(#) Norberto válasza Router hozzászólására (») Ápr 7, 2008 /
 
Megnézed egy konkrét típus adatlapját, és meglesed benne az Instruction set summary részleget.
(#) TavIR-AVR válasza Router hozzászólására (») Ápr 7, 2008 /
 
A Bascom esetén, hogy melyik utasítás mit csinál:
http://avrhelp.mcselec.com/ -> Bascom Language reference
(#) Router válasza TavIR-AVR hozzászólására (») Ápr 7, 2008 /
 
Köszönöm szépen!

Pár nap múlva megérkezik a megrendelt 2db mega 16-osom és elkezdem tanulgatni a dolgokat
(#) deguss hozzászólása Ápr 7, 2008 /
 
Dolgozott-e már valaki ATMEGA16-ossal GALEP4-es párhuzamos porti programozón?
Nekem ez egy egyszer-megy, egyszer-nem játéknak tűnik, 80%-ban syncronisation error jön, 19%-ban pedig FF-et olvas, és nem is ismeri fel a típust, annak ellenére hogy beállítom (ATMEL MEGA16 ill. próbáltam ATMEL MEGA16 SPI-vel is), és 1%-ban működik is.
Valaki meg tudná mondani biztonsággal, hogy mely config bitek kellenek a belső RC oszcillátorhoz, és a normál konfigurációhoz? (SUT, EESAVE meg ezek...)

Köszönöm.
(#) IMi válasza deguss hozzászólására (») Ápr 8, 2008 / 4
 
Hello!

Itt találsz segítséget .
(#) kontroll válasza joda01 hozzászólására (») Ápr 8, 2008 /
 
sziasztok

nem lenne valakinek magyar jegyzete akár szkennelt vagy bármilyen formába az említett atmega88-ról?persze ami használható.Gondolok itt a felépítésre stb stb. alap programozási kódok.

pl:
-általános bemutatása
-Atmega88 assembly, assembler, nyelvi elemek, -utasításcsoportok
-Utasítások
-Assembly nyelvű példaprogram

zh-ra kellene SÜRGŐS!!
válaszokat előre is köszönöm!

üdv:
kontroll
(#) DonCarlos válasza kontroll hozzászólására (») Ápr 8, 2008 /
 
hello!

nemtudom hogy nézted e már, de a saját dokumentációja elég részletes... én az atmega16ét néztem az 3xx oldal és van benne minden!

Bővebben: Link
!!nagy file!!
(#) mikol hozzászólása Ápr 8, 2008 /
 
Segítsen valaki légysziii! Fordítsátok le nekem a bin órámhoz a progit hex be! már kész az áramkör és ezért nem jutok elöbbre... Ha valaki tud segítsen, vagy segítsetek hogy hogy csináljam meg... Szedtem le egy csomó progit de nem jutotam elöbbre velük... Ádám
(#) huba válasza mikol hozzászólására (») Ápr 8, 2008 /
 
Leforditottam. at90s2313-ra. Attiny2313-ra át kellene irni a programot néhány regiszter miatt. Attinyn nem esküszök hogy menni fog.

binclock.hex
    
(#) davidov válasza mikol hozzászólására (») Ápr 8, 2008 /
 
Nekem nincs fent a WinAVR, viszont egy elég jól használható program, nem árt ha tudod, hogy kell használni...
Klikk

Kicsit megkéstem, mindegy...
(#) mikol válasza huba hozzászólására (») Ápr 8, 2008 /
 
NAGYOOONNNN KÖÖÖÖSZZÖÖNÖÖMM! !!! A többiek azt mondták hogy programozásnál be kell állítani a programozót hogy állítsa be az attinyt kompatibilisre az előző típussal és ugy menni fog! Mindenesetre kipróbálom és írok hogy sikerült e vagy sem! Nagyon köszönöm! Ádám
(#) mikol válasza davidov hozzászólására (») Ápr 8, 2008 /
 
Köszönöm szépen! Igyekszem nézegetni és megtanulni használni! Kösziii! Ádám
(#) deguss válasza IMi hozzászólására (») Ápr 8, 2008 /
 
Köszönöm pont ilyenre gondoltam! Repült pár pont(y).
(#) GTI hozzászólása Ápr 11, 2008 /
 
Sziasztok

Most kezdtem el AVR-reket programozgatni WinAvr-ben, és ebben kérném a segítségeteket. Egy AT-MEGA 8 kisérletezgetek, ezzel szeretnék egy Ledet villogásra bírni.
De jó lenne ha valaki elmagyarázná ennek a működését (röviden). Plussz szeretném még a fényerőt, és a frekvenciát is változtatni. (Amenyiben ez lehetséges)




Még azzal sem vagyok tisztában, hogy pwm és a timer között mi a külömbség. Tehát ebben is jól jönne egy kis felvilágosítás. :worship:
(#) zeusz7 válasza GTI hozzászólására (») Ápr 12, 2008 /
 
Ledvillogtatáshoz az kell, hogy beköss egy led-et egy adott port lábra, azt a port lábat kimenetnek definiáld, és adott késleltetéssel egyet majd nullát adj arra a lábra. Ezt ismételgeted végtelenszer.

pl:
Led anódja PORTB,0-ra csatlakozik
DDRB 0.bitje legyen=1
VILLOGÁS CÍMKÉJE
PORTB 0.bitje legyen=1
várakozás
PORTB 0.bitje legyen=0
várakozás
ugrás VILLOGÁS CÍMKÉJÉRE

A LED villogásának frekvenciáját a várakozási idő határozza meg.

A Timer egy adott idő elteltével belép egy megszakításba, ahol végrehajtja, amit mondasz neki. Tehát ha úgy akarsz ledet villogtatni, hogy közben fut valami egészen más, akkor nem várakozást állítasz be, hanem a Timer vmennyi időközönként váltogatja a megfelelő port lábát és a főprogram működik közben.

A fényerőt PWM-mel tudod szabályozni.
A PWM-et Timer működteti, de csinál is vmit, nem vár tőled utasításra. Beállítod, hogy milyen frekvenciával és kitöltéssel menjen ki az adott PWM lábon jel és ilyen négyszögjelet produkál neked. Csak inicializálnod kell a PWM jelet, nem kell tovább foglalkozni vele, csak ha más négyszögejelet szeretnél a kimeneten. Ha 50%-os kitöltést akarsz, akkor a PWM counterbe a csúcsérték felét kell beírnod és ekkor a maximális fényerő felét kapod kb., mert a kimeneten 2.5V-ot mérsz 5V helyett.

Azt hiszem röviden ennyi.
(#) GTI válasza zeusz7 hozzászólására (») Ápr 12, 2008 /
 
Kössz a részletes leírást csak még annyi, hogy ennek a pwm-nek mik a parancsai. PL: TCCR1A gondolom az 1A PWM port, de hogy adom meg ennek a frekvenciát + a kitöltési tényezőt. Milyen parancsok kellenek ehez?
Előre is kössz a segítséget, sajna angol nyelven amit olvastam ott nem valami érthető mi-mit csinál.
(#) zeusz7 válasza GTI hozzászólására (») Ápr 13, 2008 /
 
Atmega8 adatlapjából pl.:
TCCR1-be a következő bájtot írva kapsz egy f0/256MHz-es
PWM jelet
01100110;WGM10=1,COM11=1,CS12=1,CS11=1

Adatlapban nézd meg ezeket és akkor rá fogsz jönni mi micsoda. 3 dolgot állítasz ezekkel be:
fázis korrekt PWM jel
clock/256 a frekvencia
kimenet változtatása lefele számoláskor (szerintem nincs igazán jelentősége)

Magát a kitöltést a TCNT1-be írt értékkel tudod állítani, tehát ez a lényeges.
Mivel ez 8 bites, ezért 5V/1024-es felbontásban tudsz léptetni. Ha 0-t írsz be a TCNT1-be, akkor 0V-t kapsz, ha 0xFF-t, akkor meg 5V-t. A többit ki tudod számolni és ennyi.

Ha egyenletesen erősödő fényű LED-et szeretnél, akkor elindul a TCNT1 értéke nulláról és egy másik timer-rel vmennyi idő elteltével folyamatosan növeled az értékét, majd csökkented. Így erősödik a LED fénye majd gyengül.
(#) matrix64 válasza GTI hozzászólására (») Ápr 14, 2008 /
 
A winavr feltelepítése után a példaprogramok közt találsz egy részletesen kommentezett C fájlt erről a témáról.
(#) GTI válasza matrix64 hozzászólására (») Ápr 14, 2008 /
 
Kössz a segítséget zeusz7 és matrix64, kipróbálom, mit tudok belőle összehozni :worship:
(#) mikol hozzászólása Ápr 14, 2008 /
 
Sziasztok!

Még mindig a bináris órával küszködök, sajnos még mindig nem sikerült megcsinálni... Mindenhogy próbáltam felprogramozni de nem jött össze...
Ha valaki tud segítsen rajtam! Itt a link a kapcsoláshoz mégegyszer: Bővebben: Link

Mellékletben küldök 3 képet, ezek a programozó progi beállítási lehetőségei az attiny 2313 ra, ezen hogy állítsam be a Divclock ot disable re és az xtalt:11111 re?
Mellékelem még a huba által elkészített hex fordítást,
hátha igy egyszerűbb!

Légyszi ha tudtok segítsetek!

Mindenkinek köszönöm!

Ádám
(#) zeusz7 válasza mikol hozzászólására (») Ápr 15, 2008 /
 
Szerintem ez így rendben van, hogy minden fuse bit=1.
Minden extra le van tiltva, külső kvarckristály: 8-16MHz, lassú tápfeszültség emelkedés.
Következő: »»   53 / 840
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem