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
Hogy keress ra? CTRL + F writefuse.
Alapbol benne van, de nem foltetlenul. Lehet hogy mas programmal volt programozva az eszkoz es onnan allitotta be a fuse biteket.
Nekem ez a Tools menü (kép) és ha rákattintok hogy programozza, nem jön semmilyen ablak, hanem rögtön elkezdi a programozást. A beállításokat is néztem, de ott se találtam.
Én úgy kerestem, hogy kimásoltam az egész szöveget, majd jegyzettömbben beillesztettem, és ott lehet keresni, de egy helyen van olyan szó, hogy fuse, de az sem az lehet, mert nem úgy néz ki, mintha az lenne.
Akkor nem tudom mi ez a windows trutyimutyi. (Bocsanat hogy beleszoltam. Nekem Linux alatt ugyanazokkal a programokkal mint amiket a WinAVR keretrendszer hasznal igy van ahogy leirtam. ) Nezd meg a help-jeben, vagy neten, hogy hogyan kezeli a fuse-okat.
Mivel programozod a chipedet? En a WinAVR menujere gondoltam, de ha nem azzal akkor lehet jobb ha koveted azt a Makefile-os modositasi javaslatot (meg lehet egyekent is azt kellene tenned)
Nekem nem így néz ki a WinAVR, de már mindegy is, mert letöltöttem a ponyprog-ot, és azzal be tudtam állítani a fuse biteket. Most már nem osztja 8-cal a frekvenciát.
Nincsen véletlenül valakinek egy olyan C program, ami csak annyit csinál, hogy az egyik kimenetre kötött hangszórót egy bizonyos hangon szólaltatja meg? Konkrétan az kéne, hogy "A" hangot (tehát 440Hz) szólaltasson meg, de ne hagyja abba, hanem amíg kap tápfeszt, szóljon. Ha netán tud valaki ilyet, az legyen szíves, írja le! Köszönöm.
555-el is meg lehet oldani. Amugy kell egy vegfok a hangszoro ele.
Tudom, hogy meg lehetne oldani 555-tel, de én abban nem bízom és direkt avr-rel szeretném. Minek kell végfok a hangszóró elé?
Dehogy nincs.
Pont itt van az oldalon az egyik cikkben. Bővebben: Link A generate_tone() függvényt keresd.
Azért, mert az AVR Output portja nem bír el akkora áramot.
Egy egyszerű FET-el tudsz csinálni végfokot.
Köszönöm a segítséget!
Sikerült átírni a programot, működik is. Végfok nem kellett, mert egy fejhallgatóból kitermelt kis hangszórót elbír önmagában is, sőt, még hangos is volt, és kellett tennem elé egy ellenállást, hogy halkabb legyen!
Sziasztok!
Az alább leírtakhoz kérném a segítségeteket, mivel nem vagyok még járatos sem a soros kommunikációban, sem az interruptok használatában. Tehát a szitu: adott egy atmega164p mikrovezérlő, amivel egy rs422 szabvány szerint kommunikáló abszolút szöghelyzet érzékelő jelét kell feldolgoznom, és a példaprogramban a szöghelyzetet 8 leden megjeleníteni. (Egy része itt van már a témámnak: Szöghelyzet jeladó ) Az illesztés max485 chipekkel történik. A szöghelyzet dekódernek szüksége van differenciál órajelre, erre kell az egyik chip. Cserébe a másik illesztő chipen visszajön a szöghelyzet értéke. A kommunikációhoz az usart1-et használom, mert a nulláson már van egy max232. Azt szeretném, ha folyamatosan frissülne az érték, azaz ahogy tekerem az érzékelőt, a ledek is fussanak. Jelen állapotában csak resetelésre ugrálnak a ledek, de sajnos nem úgy tűnik, hogy sorban, hanem rendszertelenül. Kérdés, hogy a folyamatos használathoz elkerülhetetlen az interrupt használata? Mi lehet a gond?
5V igencsak sok neki, mert egy fejhallgatónak 775mV az optimális, ezt nem túl jó ötlet túllépni.
Azt hittük, hogy piezo-t használsz, ilyen helyre azt szokás.
Akkor jó is, hogy tettem elé ellenállást (lehet hogy nagyobbat fogok elétenni). Először piezo-t használtam, de nem tetszett a hangja, ezért cseréltem ki.
Idézet: „Végfok nem kellett, mert egy fejhallgatóból kitermelt kis hangszórót elbír önmagában is” Azok tipikusan 32 ohmosak, igy nyilvan 5V-os tapot feltetelezve 156mA kornyeken kell lennie az aramnak, tehat valoban el kell birnia. De ha ugyanezt 8 vagy 4 ohmos hangszoroval probalnad meg, akkor mar nem biztos sikerulne a produkcio.
Kipróbáltam egy kb. 7Ω-ossal is, és az is ment simán, és a várt hangerőhöz képest egészen hangos volt.
Persze, hogy megy (egy drabig), csak minel jobban terheled a kimenetet annal jobban esik a kimeno fesz (magyaran gyanitom nem 5V lesz ott neked, hanem joval kevesebb). De ettol fuggetlenul ez nem a helyes ut, ilyenkor mar meghajto fokozatot kell epiteni (akar egy BC182 es egy bazis ellenallas is megteszi egy kisebb hangszoro eseten).
Sziasztok, had osszak meg egy tapasztalatot.
Vásároltam egy AVRISP mk2-t, mindent terv szerint csináltam, telepítettem (Avr Studio+WinAvr) stb. Eljött a nagy pillanat, hogy csatlakozom a készülékhez és a következő hibaüzenetet kaptam: "No target was detected. Ensure that target has power." A készüléken pedig a piros led világított. Végeredmény: az AVRISP mk2 nem szolgálja ki az áramkört táppal tehát külső táp kell neki. Sőt, hogy a piros led is elaludjon és működjön a programozó a céláramkör tápfeszültségét össze kell kötni a programozo Vcc (pin2) lábával. Ugyanis ez itt bemenetként szolgál amit az Avr Studio-val mérhetünk is.
Sziasztok!
Vettem egy eposz-os AVR JTAG ICE USB 2-t az MSC-nél. Az AVR studio nem is meri fel (no target device detected). Mit lehet csinálni? Feltelepítettem a gépre az FT232 chip driverét, de semmi. 5let?
A nem felismerés és a "no target device detected" közt azért van egy kis különbség.
Az AVR programozáshoz Angol tudás mindenképpen kell, anélkül nem is érdemes elkezdeni, mert minden angol nyelvű hozzá. Azt jelenti, hogy nem kötöttél rá AVR-t.
Igen, ez természetesen így van.
Kellemetlen ha van egy 3.3V-os áramköröd, rádugot a programozót és elszáll pár dolog az 5V miatt. Az ISP nem fogja tudni, hogy Te most hány V-os áramkörrel dolgozol, egy gyári programozó se ad tápot a céláramkörre.
Sziasztok! Full nem értek az avr programozáshoz és nem szeretnék nagyon belemélyedni, mert nincs időm! Ezt építem éppen és már csak az Attiny13 avr programozása van hátra! Elvileg egy hex fájlt kéne beletenni (IR_ATX_power4.hex)! Van egy STK200 programozóm amit összekötötem az Attiny13-mal! Aztán itt elakadtam nem tudom hogyan tovább sosem csináltam még ilyet! Ha valaki segíten nekem (esetleg távoli asztal segitségével) azt megköszönném!
Még valami ilyen infrát vettem hozzá! Ezzel is működhet mert a kapcsolási rajzon más volt csak olyat nem találtam!
A fuse biteket is be kell állítanod: Int. RC Osc. 4.8MHz startup time: 14 CK + 64ms
A hardver résznél csak annyi a dolgot, hogy összekötöd a megfelelő lábakat és adsz 5V tápfeszültséget a mikrokontrollerre. Fel kell telepítened a Bascom-ot, mert az AVR Studio nem kezeli az STK200-at: http://avr.tavir.hu/modules.php?name=Content&pa=showpage&pid=6
Sziasztok!
Próbálom megépíteni a NIXIR csöves órámat ezt cBővebben: Link a megoldást akarom átalakítani úgy, hogy nekem már a négy cső és a négy driver IC rá van építve egy panelra. Tehát nem multiplex kijelzésre gondoltam, hanem külön külön portokkal. A kódrészletem a következő lenne:
Az a gondom, hogy amikor tovább lép a kijelzo_TP[6]-on a PORTB-t PB0-tól PB3-ig átállítja egyre és így a kijelzés nem jól működik. Nem tudom mennyire voltam érthető, az lenne a cél, hogy a NIXIE driver IC-ket külön portokról akarom meghajtani.
Inkább csatold a kódot, mert így lemaradt a fele...
Még csak itt tartok, a gombkezelésekkel még nem foglalkoztam, a 88.-tól a 91-ig vizsgálom a debugot és próbaként a B0-3-ig portra egy-egy LED-et tettem és próbaként a másodpercet próbálom kijeleztetni, csak azt tapasztalom, hogy amikor beszúrom a 91. sort , akkor mind a négy led el kezd világítani egy bizonyos fénnyel és a mellékletben is látszik, hogy a négy kimenet egybe megy át.
Több problémát is látok a kódodban. Először is nem jól törlöd egy port megfelelő bitjeit
Ezeket:
Át kéne írni erre:
Nyilván a biteket állítsd be ahogy neked kell.
Köszönöm szépen, valóban ez egy hiba volt, hiába a gyakorlat teszi a mestert. Mégegyszer köszönöm, lehet, hogy még jövök egy pár kérdéssel.
|
Bejelentkezés
Hirdetés |