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
Nem tudom mely #-ekre gondolsz, nekem csak az include-olásnál van ilyen de oda meg tudtommal kell is.
Jaaa vágom már, a sorszámra gondoltál!
Bocsesz ![]()
Ü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 ![]()
Kódvédelem.
A Fuse biteket tudod módosítani? (Lehetőleg ne külső oszcillátorra...)
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?
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.
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.
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.
8MHz belső oszcillátor, és nagyon kicsit állít rajta amúgy
![]()
Köszönöm a választ
![]()
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 ![]()
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ő.
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ő.
![]()
Ü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.
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
Rá van kötve 4MHz kristály, így sem akar bele égetni
Ami a fuse biteket illeti vmi ilyet ír nekem ki (kép) ![]()
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)
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
Nemtudom hogy megy-e a 22 láb nélkül, azért földeld le.
5k6 jó. félreolvastam ![]() ![]() De most hogy gondolkozom, mintha úgy emlékeznék hogy nemjó, de ez nem 100%
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.
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 ![]()
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
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<
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ó ?
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.
Hálásan kösz a hozzászólásokat
![]()
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.
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.
|
Bejelentkezés
Hirdetés |