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   206 / 841
(#) Axel válasza (Felhasználó 4577) hozzászólására (») Ápr 6, 2010 /
 
Nem tudom mely #-ekre gondolsz, nekem csak az include-olásnál van ilyen de oda meg tudtommal kell is.
(#) Axel válasza Axel hozzászólására (») Ápr 6, 2010 /
 
Jaaa vágom már, a sorszámra gondoltál!
Bocsesz Így már jó egyébként, köszi szépen.
(#) gabi20 hozzászólása Ápr 7, 2010 /
 
Üdv a szakértőknek!
Most kezdek programozni először ATmega8 mikrovezérlőt.
A programot bascomAVR-ben írtam, STK200 programozót használok ami az LPT porton keresztül működik. A programozásnál 5 vezetéket használok: GND, Reset, SCK, MOSI ,MISO

Az ATmega8-at egy LC mérőből bányásztam ki. A programot ki tudtam belőle olvasni, viszont írni nem tudok bele. Van vkinek ötlete, hogy mi lehet a gond?
Előre is kösz gabi20
(#) (Felhasználó 4577) válasza gabi20 hozzászólására (») Ápr 7, 2010 /
 
Kódvédelem.
A Fuse biteket tudod módosítani?
(Lehetőleg ne külső oszcillátorra...)
(#) gabi20 válasza (Felhasználó 4577) hozzászólására (») Ápr 7, 2010 /
 
Sajnos nem mert valamiért a program a mega8 - at nem tudja beazonosítani (kép) . De még az jutott eszambe, hogy van egy kivezetése az AVR nek olyan hogy SS. Ezt nem szükséges programozáskor használni?

kep.JPG
    
(#) NagyKrisz hozzászólása Ápr 7, 2010 /
 
RC Servo példát akarom ATmega8-ba beletölteni, csináltam pár módosítást a programban, de az ADC konverter picit állít az időzítésen, mi a gond?
C forrás kódot melléklem.
Köszönöm a segítséget.

rctest.c
    
(#) (Felhasználó 4577) válasza gabi20 hozzászólására (») Ápr 7, 2010 /
 
A SlaveSelect-et nem kell használni. Nézd át a vezetékelésket, ha nem lesz jó továbbra se, akkor javaslom másik AVR beszerzését, annyira nem nagy összeg.
(#) (Felhasználó 4577) válasza NagyKrisz hozzászólására (») Ápr 7, 2010 /
 
Ez teljesen normális, hiszen az ADC konverzióhoz idő kell. Állítsd be a belső 8MHz-es RC-t és fordítsd le hozzá.
Illetve nem tudom, hogy beállítottad-e, ha nem tedd meg, állítsd be a fordítóban, hogy mekkora frekvencián ketyeg az AVR.
(#) NagyKrisz válasza (Felhasználó 4577) hozzászólására (») Ápr 7, 2010 /
 
8MHz belső oszcillátor, és nagyon kicsit állít rajta amúgy
(#) (Felhasználó 4577) válasza NagyKrisz hozzászólására (») Ápr 7, 2010 /
 
Használj Timer-t.
(#) gabi20 válasza (Felhasználó 4577) hozzászólására (») Ápr 7, 2010 /
 
Köszönöm a választ holnap veszek új AVRt...
(#) puli122 válasza gabi20 hozzászólására (») Ápr 7, 2010 /
 
Addig is ellenőrizd le a tápfeszt a avr-en meg a bekötéseket. Nem hiszem hogy rossz lenne. Amiből kibányásztad ott volt mellette kristály ?
Amúgy hogy elfogult is legyek: ha kezdő vagy hasznos lehet
(#) (Felhasználó 4577) válasza puli122 hozzászólására (») Ápr 7, 2010 /
 
A cikkedben a kapcsolókhoz miért használsz felhúzó ellenállást? Az AVR-ben is van, ami ugyan olyan jó, mint a külső.
(#) puli122 válasza (Felhasználó 4577) hozzászólására (») Ápr 7, 2010 /
 
Igazad van de, úgy tudom hogy nem minden 28 lábú avr-ben van, és nekem egyszerűbb volt a külső. Amúgy meg csak lehetőség, nem feltétlenül kell beültetni. Ja igen, és már a tervezés után derült ki számomra hogy a Mega8-ban van belső.
(#) gabi20 válasza puli122 hozzászólására (») Ápr 7, 2010 /
 
Üdv!
Szerintem sem az AVR a hibás. Amiből kibányásztam egy 4 MHz kristály volt.
Úgy tudom hogy programozás közben szükség van az oszcillátorra, viszont a fuse biteket nem tudom beállítani szerintem itt lesz a gond...a program kiolvasása viszont működött.
(#) puli122 válasza gabi20 hozzászólására (») Ápr 7, 2010 /
 
Na akkor itt a bibi.
A programozáshoz kell az órajel. Ha egyszer külsőre állítod, akkor vissza sem tudod állítani külső kristály nélkül. Szóval csapj hozz valamit, nem lényeges hogy milyen kristály... ( meg 2 kondi )

ÍGY
(#) gabi20 válasza puli122 hozzászólására (») Ápr 7, 2010 /
 
Rá van kötve 4MHz kristály, így sem akar bele égetni
Ami a fuse biteket illeti vmi ilyet ír nekem ki (kép)

avr.JPG
    
(#) puli122 válasza gabi20 hozzászólására (») Ápr 7, 2010 /
 
Ez is csak arra utal hogy nem éred el a csipet.
Akkor előröl: táp rendben ? (7,8,22 láb)
Kristály + 2 kondi rendben (9,10-es láb)
1 es reset láb 4K körüli elenállással a pluszra húzva ?
Égető bekötve rendsen ? (1, 17, 18 , 19es láb)
(#) gabi20 válasza puli122 hozzászólására (») Ápr 7, 2010 /
 
A 22. lábet le kell földelni? mert csak a 8. földeltem le
A reset lábon 5k6 felhúzóellenállás.
égető jól van bekötve,másképp nem tudtam volna kiolvasni az eredeti proramot ami az AVR ben volt.
Az lehet gond hogy kristály helyett kerámiarezonátort használok? kösz
(#) puli122 válasza gabi20 hozzászólására (») Ápr 7, 2010 /
 
Nemtudom hogy megy-e a 22 láb nélkül, azért földeld le.
5k6 jó. félreolvastam nem kerámiakondi nemtudom hogy az jó-e, szerintem az a 4 megásat ha tudod szedd ki az eredeti kapcsolásból

De most hogy gondolkozom, mintha úgy emlékeznék hogy nemjó, de ez nem 100%
(#) (Felhasználó 4577) válasza puli122 hozzászólására (») Ápr 7, 2010 /
 
Ne haragudj, de kiegészítenélek.
Az AD-nek felesleges adni tápot programozáskor és felhúzóellenállás is teljesen felesleges, mert van beépített.
Ha jól tudom, a kiolvasáshoz is kell órajel.
(#) puli122 válasza (Felhasználó 4577) hozzászólására (») Ápr 7, 2010 /
 
Csak nyugodtan, hátha többen öszehozunk valami értelmeset
Én úgy tudom hogy ott a belső felhúzót be kell kapcsolni külön programból. Az ad-s gnd-ről meg valószinü igazad van, csak bennem az maradt meg még régebbről hogy illik bekötni, nem is gondoltam utána
(#) gabi20 válasza puli122 hozzászólására (») Ápr 7, 2010 /
 
Közben kimértem a 8. és 22. lábat, azok belülről össze vannak kötve. Azért mindjárt kerítek vmi rendes kristályt
(#) (Felhasználó 4577) válasza puli122 hozzászólására (») Ápr 7, 2010 /
 
Igen, a GND-t illik bekötni, de a VCC-t felesleges, főleg kisfogyasztású/energiatakarákos/elemes eszközöknél, ahol sokat számít a kis fogyasztás/elemes üzemmód.
Pontosan, szoftverből bekapcsolható. Az összes port alapból bemenetnek van beállítva, minden bit 0, tehát csak annyit kell csinálni neki, hogy PORTX | = (1<>
(#) puli122 válasza (Felhasználó 4577) hozzászólására (») Ápr 7, 2010 /
 
de ha még nem tudod programozni hogy kapcsolod be ? amúgy meg a reset láb nem mindig port (mega16). akkor ott mivan ? kell a resethez a táp felé külső felhúzó ?
(#) (Felhasználó 4577) válasza puli122 hozzászólására (») Ápr 7, 2010 /
 
Akkor sehogy, de ha nincs benne program, akkor minek bekapcsolni?
Én úgy tudom, hogy minden AVR-ben van belső felhúzóellenállás a Reset-nél, az adatlap biztos kitér erre is.
(#) gabi20 válasza gabi20 hozzászólására (») Ápr 7, 2010 /
 
Hálásan kösz a hozzászólásokat mára már feladom, majd holnap fojtatom üdv gabi20
(#) boomerang hozzászólása Ápr 7, 2010 /
 
Sziasztok !

Egyszerű ADC-ket szeretnék végezni egy ATmega 8-as procival. Az tiszta, hogy ha a belső ref. ki van kapcsolva akkor az AREF lábra megy a ref.feszültség. De mit kezdjek az AVCC-vel ? Az egyáltalán mire jó ?
KÖszi.
(#) puli122 válasza boomerang hozzászólására (») Ápr 7, 2010 /
 
AVCC= analóg terület tápfeszültsége
(#) (Felhasználó 4577) válasza boomerang hozzászólására (») Ápr 7, 2010 /
 
Ahogy puli122 mondja, az AVR tápjára kell kötni. Nem lehet nagy feszültségkülönbség az AVR tápja és az A/D konverter tápja közt. Ha nagyon fontos a pontos mérés, akkor érdemes egy 10Ohm-os ellenálláson keresztül bekötni.
Következő: »»   206 / 841
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