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
Milyen repoból van az avrgcc?
A hivatalos repo-ból:
http://hu.archive.ubuntu.com/ubuntu/pool/universe/g/gcc-avr/
Valaki nem látott esetleg egy olyan rajzot hogy a kamera képét megjelenítik egy kijelzőn? Mert nem találtam és szeretnék egyet csinálni.
Hogy mi a WinAVR, azt rád és a google -ra bízom.
A parancsot így add ki: avr-objdump.exe -j .sec1 -d -m avr5 foo.hex
Most, ha troll lennék, akkor rajzolnék paintben egy rajzot, ahol van egy kamera és egy kijelző és csatolnám.
Kérlek áruld el nekünk, hogy miért nem mész csak úgy be a boltba és veszel egy ilyen eszközt? Ha az a válasz, hogy tanulni akarsz, akkor javaslom, hogy rakd lejjebb azt a lécet egyelőre.
Most nekem nincsen sajna időm alaposabban foglalkozni ezzel, de szerintem a srácokat az avrfreaks fórumon az avr-gcc topikban rettentően érdekelné a dolog.
Ha a hiba tényleg jól lokalizálható és igaznak bizonyul, akkor onnan jó eséllyel tovább is kerül az avr-gcc fejlesztőkhöz is.
Boltban eléggé drága, ennél most nem az lenne a lényeg hogy tanuljak, hanem egy endoszkóp szerű dolgot akarok építeni hogy feltérképezzünk néhány járatot egy barlangban ahova nem férünk be.
Fejemet rá, hogy olcsóbban megkapod boltból, mint ahogyan össze tudod építeni. Nézz körül ebayen, meg az aliexpress.com oldalon.
A hobbista eszközök rendszerint drágábbra sikerülnek, mint a boltban kapható dolgok, kivéve, hogyha valami nagyon ritkát csinálsz. Ez nem hangzik úgy, mintha ne lehetne tele vele az eBay.
Elvileg minden, még a legocskább telefon is tudja - (melyikban van kamera ).
Ilyen használt telefonnal meg Dunát lehet rekeszteni....
Viszont a telefon kamerája általában elmegy készenléti üzemmódba ha nem használod, és feleslegesen eszi az akkumulátort mondjuk a billentyűzet világítása, a térerő keresése.
Ezt a komoly problémát szerintem játék megoldani ahhoz képest, amit te akarsz megcsinálni.
Amugy nem sok pénzért kapni endoskopot is, meg tolato kamerát autokba - csak egy kicsit szét kell nézni a kisvilágban.
Sziasztok!
Ismét sikerült rosszul beállítani az órajelet külső kvarcra.. ezek a "szemtelen" magas kvarcok nem akarnak együtt működni... Az avr-t lehet valahogyan reset-elni? Vagyis a programot törölni belőle úgy, hogy az égető(avr-ips-mkII) nem ismeri fel?(mivel jelenleg nincs órajel...) Valaki tudna segíteni? Életet mentene! Zoltán
Kénytelen leszel egy órajelet csiholni neki. Ha kvarcra állítottad, akkor kvarc vagy rezonátor kell neki, nincsen mese. De ha külső órajelre állítottad, akkor ha jól rémlik a XTAL1 lábra kell egy négyszögjelet tenned.
Bár nem említed, hogy milyen AVR, de bizton nem Xmegáról van szó. Xmegánál hál isten bevezették a PDI protokolt, ami ad külső órajelet, így az ember nem zárhatja ki magát véletlen. Amúgy neked nem program reset kell, hanem a fuse biteket kell visszaállítanod olyanra, hogy belső órajelről fusson.
Huh, sikerült megcsinálni, kár hogy ezekben még nincs ez az "önkizárás védelem" funkció... Köszönöm a segítséget!
Egyébként több avr, nek lehet 1 közös kristálya? MErt most egy 6avr es panelt tervezek(atmega48), és ha hiba nélkül többre rá lehetne kötni 1 kvarcot az jó lenne, de hanem, akkor kicsit drágább lesz a projekt.
Nos, tehát t az avr-ek nél szabad közös kvarcot használni? Üdv.: Z
Üdv mindenkinek.
Segítséget kérnék... mily fura... Adott egy AtMega8, 3 gomb és 3 LED. 2-es gomb megnyomására egy "sc" nevezetű változó értéke 1-re változik ("sc"=gombindex-1) és villog a 2-es LED. Nos, ez lenne az alap történet, de sehogy sem jön össze úgy ahogy én szeretném. Sőt. Próbáltam Timer-el, de elakadt az egész program és változókat sem tudtam állítani. Most INT0 interruptal próbálkozok, amivel már tovább jutottam, de mégsem jó.
A gond az evvel, hogy úgy viselkedik mintha az sc 0 maradna, de mégsem. A villogás elindul, de akármelyik gombot nyomom meg mindig az 1. villog. Úgy tűnik mintha az interrupt nem állítaná be az "sc" változót, ami alapesetben 0, de csak akkor villog ha az "sc" nem 0. Van egy kis ellentmondás a dologban, de tényleg így működik. Amint gombot nyomok - függetlenül attól melyiket - vagy az INT0 lábat talajra érintem, a villogás elindul. Az INT0 láb egyébként 10K-val táp felé van húzva, a kapcsolók talajt kapcsolnak, és egy-egy 1n4148-al az INT0 láb felé vannak kötve (5V - 10K - 4148 - KAPCS. - GND). Lehet itt van a baj, de nem akarok játszani vele, nem akarom tönkre tenni az AVR-t... Valaki esetleg látja-e a hiba okát? Javaslatok? Előre is nagyon köszönöm a segítséget
Lehet! Kell egy AVR, ő lesz a master, annak bekötöd úgy ahogy szokás(kvarc+kondik), és beállítod kristályra.
A trükk ezután jön: a CKOPT nevű fuse bitet be kell billenteni. Ezzel erősíted fel a kvarcoszcillátor jelét. Az órajelet a master XTAL2 lábáról veheted le, míg a többi, slave IC-nél az XTAL1-re vezeted. A többinél csak simán külső órajelre kell állítani. A slave eszközök száma viszont korlátozott(3-4db.).
A master AVR fusebitjén a CKOUT-ot bekapcsolod. Így a órajel erősítve, bufferelve a CKOUT lábon megjeenik és oda fellógathatod az összes slave-t. A Slave-k meg XTAL1 lábukra kapják a jelet és external clock-ról járnak....
Hehe, na vajon kinek lesz igaza?
Szerintem legjobb, ha megnézed az adatlapot, hogy az általad választott avr képes-e az órajel kiadására, és ha igen ,akkor melyik lábon. Feltételezem, hogy nem mindegyikben van ilyen periféria.
A bemeneteket lebegni hagyod, vagy fix potenciálhoz vannak kötve?
Egy kapcs rajz esetleg?
Ha nincs gomb nyomva, akkor lebegnek.
Arra gondolsz húzzam táp vagy talaj felé őket? Kapcsrajzom nincs, mivel még próbapanelen van összerakva, nem utánépítek.
Hát nem mindegyiken van "CLKO" láb, ha van, akkor ez portláb is, amit a júzer talán használni is szeretne...
Pl. ATMega8/16/32-n nincs is ilyen, m48/88/168 vonalon ez a PB0/ICP1 láb ami azért másra is kellhet... Hogy tiszta legyen, beemelek egy képet egy működő Atmel alkalmazásról: a gyári STK500 kapcsolási rajzából.
Közben én is kérdezek. Ismeri/megépítette már valaki az SmaTrig 2.1 nevű eszközt?
Ezzel villámokat is lehet fotózni, pontosabban a fényképezőgépet utasítja exponálásra ha villámlik. Ebben egy ATMega88V-10AU ketyeg. A cucc egy alacsonyfrekis, 32.768kHz-es kristályt használ, nem is ez a meglepő, hanem az hogy a FUSE biteknél a CKDIV8 be van pipálva, ergo az AVR 8.192kHz-en jár. Programozás szempontjából ez max. 2kHz-es ISP frekit jelent amit a programozók nem nagyon szeretnek. Az AVR Studio már akkor is szól ha 128kHz-es belső RC órajelre állítom: a CKDIV8 legyen kikapcsolva! Korábban már én is kísérletezgettem, a CKDIV8 nem csak akkor érvényes amikor belső 8MHz-ről megy, hanem külső kristályos használat mellett is, ezért is érthetetlen számomra hogy miért kéri a CKDIV8-at...
Most az a kérdés, hogy miként tudnád 2kHz-re állítani az ISP sebességét, vagy az, hogy valaki építette-e már meg Smatrig eszközt?
Két kérdés: Biztos vagy benne hogy a 32k- kristály nem csupán RTC szerepet tölt be, közben a processzor a valóságban belső oszcillátororról jár?.
Figyelm a ponyprog nagyon trükkös ám, mintha forditott logikával kell pipálni vagy hasonló rémlik.
Köszönöm szépen, most jöttem rá!
Nem a PonyProg a trükkös hanem az Atmel logikája, azaz egy "bejelölt" funkció nulla, a "kihagyott" pedig 1. A PonyProg-os képen a legalsó sor "0x52", AVR Studio-ban megnéztem, ez 8MHz-es belső oszcillátort jelent.
Sziasztok!
Egy atmega8-al szeretnék időt mérni (32768Hz-es kristállyal). Hogy oldjam meg azt, hogy amikor túlcsordul a timer, akkor pl egy változó értékét megnövelje eggyel?
Szia!
Timer overflow megszakítás, abban pedig kezeled a változódat.
Valami ilyesmi kell neked :
A teljes minta kódot megtalálod itt:Bővebben: Link
Helló...
Továbbjutottam a dologban - köszönet érte "sikolymester"-nek, rávezetett a megoldásra - a gombbal bekapcsolt LED villogtatással, mindennel együtt megvan... Mivel minden LED egy-egy lábon volt, így egy portot elfoglalt. AtMega8-on nem maradt szabad port, mert egy láb kapcsol egy relét egy másik pedig villogtat egy LED-et. Namost. Ennek kiküszöbölésére SPI-vel vezérelve egy HC595-össel hajtom meg a LED-eket. (A LED-ekkel beüzemelem és továbbmegyek... lehet még az Mega8-as is sok lesz a végére ) A gondom az, hogy nem tudom, hogy lehet az 595-ös lábait úgy vezérelni mint a proci portjait, lábait. Azaz, portoknál kiadok egy parancsot, hogy kapcsolja be a PB2-t, akkor a PB2-es porton levő LED világít, a többihez nem nyúl és ugyan így a kikapcsolás. Mivel SPI-vel vezérlem az 595-öst nem tudom, hogy kell ugyanezt megvalósítani. Amit nem tudok, hogy tudok egy bitet állítani ha így állítom be a lábakat: send = 0b00011010; A legjobb lenne valami ilyesmi: (csak összeírom, a lényeg másképpen)
Nem igazán tudom elmagyarázni, előre is elnézést érte... ha tényleg nem, szóljatok Előre is köszönöm... |
Bejelentkezés
Hirdetés |