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
A szimulátorra nem lehet építeni semmit, főleg időzítők esetén nem működik!
Ha jól emlékszem a korábbi hozzászólókra: a szimulátorban a TCNT nem indul el, innentől kakukk.
A hozzászólás módosítva: Márc 11, 2016
Elindul, viszont a mega162 szimulációja a studio4 óta nem támogatott.
@p5efv Idézet: „ha akkor jön egy megszakítás, aminek a jelzőbitje ugyanabban a regiszterben van, amelyikben éppen törlök egy másik jelzőbitet, akkor nem hajtódik végre a megszakítás.” Végrehajtódik.A megszakítás kezelést nem ajánlott kód közepébe tenni. A hozzászólás módosítva: Márc 11, 2016
Az utolsó mondat csak egy megjegyzés,nem a hiba oka.Ha az eredeti kóddal nem lép be, az szimulátor hiba.
Sziasztok! SPI-n kellene vezérelnem 5v-os kontrollerrel 3v-os eszközt, lényegeben egy irányban. Használjak sima feszültségosztót vagy van valami más megoldás?
Szia! Ha az eszköz (a leírását meg kellene nézni) 5V toleráns, akkor nincs gond. De működik az ellenállásosztó is. Például így.. De használhatsz level translator chipet is, vagy optót, izolátort, pénztárcától és feladattól függően. De akár egy sima soros ledet is. Akkor visszajelzésed is lesz a kommunikációról. A leden ugyanis közel 2V esik.
Szia! Egy kijelzőt kellene vezérelni az 5v-ot nem tolerálja.
Az égvilágon semmit nem állítottam. De ha jól tudom, eleve a külső kristályt használja, ha nem írok át semmit. Bootloader nincs benne. Az usbasp egy isp programozó nem?
Gondolom 16MHz vagy hasonló órajel mellett 8MHz-es SPI-t használnál. Ilyen sebességnél már IC-t kell használni, egy olcsó 74HC4050 még elég jó lehet. A CD4050 már nem elég gyors. Jó választás lehet még pl. az LVC család (74LVC541, vagy hasonló, ez a család kifejezetten alkalmas 5V és 3V3 illesztésére az 5V toleráns bemenetek miatt, sok ide tartozó IC open-drain kimenetekkel rendelkezik így Vcc feletti feszt is kiadhatunk felhúzó ellenállással, persze ez neked most épp nem kell ).
A belső RC oszcillátort használják 8-as osztóval alapértelmezetten. Azaz 1MHz-en működik. Ha a külső kristályt akarná alapból használni, akkor nem lehetne visszakonfigurálni az IC-t olyankor, amikor nincs külső kristály.
Elnézést a C kérdésért, miért kapok syntax error-t,ha értékeket adok a tömbnek? Egyenlőre csak itt próbáltam.
A hozzászólás módosítva: Márc 13, 2016
12.000 van a programozó kristályára írva. Egyébként igen, a 328-as egy 16 megás kristályt kapott, de még nem tudtam beállítani. Szóval, most mit csináljak? csak smd kialakítású hex buffert tudok használni? Mert azzal elèg sokat szórakoznék mire ráforrasztanám a lapra... Raspberry Pi-vel sem tudnám programozni a 328-at? Csak mert ott elvileg megvan a magas órajel (850MHz nálam) és ott az avrdude + a gpio tűk. Vagy ez nem számít? Mert inkább veszek pár jumpert és programozok shellen keresztül, mint bénázok smd forrasztással
Kell a végére ;-jel!
Köszi, véletlen maradt le. A linkelt értelmezőn így is error-t kapok, de lehet hogy megvezet.
Pointerrel lesz gondod. Miért kell a const elé a csillag? Értékadásnál nem a foo()=(1,2,3,4); kellene? Telefonról nincs semmi rendes zárójel.
Ez egy fuggvenypointer tomb. Ennek hogyan akarsz 1,2,3,4 ertekeket adni?
A buffer IC-t nem neked írtam, hanem zsozsoX-nak.
Én egy Atmel-ICE-al (eredeti) programozom és debugolok. Korábban egy MkII-est (szintén eredeti) használtam de az ICE sokkal megbízhatóbb (az MkII gyakran kavart debugWire és ISP kapcsolgatáskor, illetve a PDI használatakor is voltak gondok), de egy 3-4 dolláros arduino UNO-t is fel lehet programozni programozónak. Annak a hogyanjait viszont inkább az Arduino fórumon kérdezd.
Az értékeket nem én írtam...nem ezeket akarom,csak bedobtam a linkre próbára.
Üdv!
Ha külső kristályt szeretnél használni, akkor előtte át kell állítani a fuse biteket. Első lépés kapcsolat tesztelése. Ehhez kösd össze az usbasp-t és a 328ast ISP-n keresztül, majd parancssorban futtasd a következő parancsot: L:\avrdude -c usbasp -p m328p Nekem az avrdude.exe az L: meghajtóban található. Ha minden ok, akkor kiírja az IC típus azonosítóját és a fuse bit beállításait. Ha itt hibázott, nem sikerült, akkor a kapcsolást újra kell ellenőrizni. A következő paranccsal átállítjuk a fuse biteket: L:\avrdude -c usbasp -p m328p -U lfuse:w:0xff:m -U hfuse:w:0xd0:m -U efuse:w:0xff:m Én itt még egyszer le szoktam futtatni az első parancsot, hogy lássam a fuse biteket, jól állította e be. Aztán következhet a hex égetése: L:\avrdude -c usbasp -p m328p -U flash:w:file_nev.hex Itt kérnék egy kis felvilágosítást, ha rosszul tudnám: A bootloader tartalmú hex fileokban, az address byte kezdete nem 0x0000, hanem (esetünkben) 0x3800-el kell kezdődnie, stimmel?
Bocs,benéztem, eddig még nem használtam a linket. A kifejezéseket már nem tudja értelmezni.
Idézet: „Az értékeket nem én írtam...nem ezeket akarom,csak bedobtam a linkre próbára.” Ok, igazad van. Viszont ez:
Minden gond nelkul lefordul. Inicializalja a const tombot. Hogy erre miert kapsz syntax error-t, azt el nem tudom kepzelni. Igazad van! Nem gondoltam egészen át a problémát! De a rossz beszolásom következménye, hogy végül meg találtad a helyes választ a kérdésre!
Még nem fordítottam, mert kuszaság van.Csak próbára beírtam ide, aztán rájöttem,hogy csak a deklarációkkal birkózik meg
Bővebben: Link
Én már teszteltem, az éppen gépen levő deszkán (Due).
tökéletesen müködik!
A beépített három LED villogtatása A hozzászólás módosítva: Márc 13, 2016
ezt kapom vissza... szakadásjelzővel pedig az összes forrasztás jó. Szóval nem értem...
Üdv!
Milyen USBasp-t használsz? Én ezt építettem meg.
Ezt akkor írja ki, ha régebbi a benne lévő firmware, ami még nem kezeli az órajel sebességet software-esen. (Google keresgélésből ezt szűrtem le.) Ettől még működhet.
Ezt akkor kapom ha, nincs meg egy vagy több kapcsolat az USBasp és a cél AVR között. Vagy ha: (remélem ez lesz a megoldás) Alacsony órajelű AVR-t szeretnél programozni. Alacsony órajel, mint esetedben is a "szűz" AVR gyári fuse bitekkel, ahol a valós órajele csupán 1Mhz. Megoldás: Az USBasp-n kell lennie egy jumpernek, amit össze kell kötni. Az én esetemben ez a JP3 (jumper 3) Slow SCK.
Nekem is van JP3 rajta (ebayről rendeltem), összekötöttem egy jumperrel. Ugyanazt kapom vissza sajnos.
Sajnos tanácstalan vagyok.
Kipróbáltam mindent a tesztpanelemen, ami eszembe jutott. A hibát csak rossz bekötéssel, alacsony órajellel vagy annak hiányával tudtam reprodukálni. Tudnál képeket küldeni a panelekről ill. kapcsolási rajzokat?
Köszi a válaszokat. Közben sikerült kipróbálnom a valóságban is és valóban a szimulátor hibája.
|
Bejelentkezés
Hirdetés |