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
Tuti hogy jó COM port van beállítva? Nem "com86" nak, és a com 2-n keresei?
Én jártam már úgy is hogy com 6-7-8 felett nem működött avr studio.
A port 2-n van. Közben az AVR studio csak a STK500 ajanlja - es az is csak a com 1-en.Amugy hol tudom a studion belul hozza adni es configuralni az eszkozt?
A kiten a zold(kek) led jelzi, hogy megtortent a kapcsolat?Ugyan ez kell hogy jelezzen amikor racsatlakoztatom a gepre?
Sziasztok egy ilyen lcd-m van és nemtudok rá kiírni, szereztem rajzot meg hex-et hogy attiny2313-al meglehessen hajtani de nem szeret engem. Azt néztem hogy negatív blue lcd az azt takarja hogy negatívba kénee vezérelni? ás ha igen hogyan tudom megoldani avr-el?
A negative blue csak azt jelenti hogy kék kijelződ van kék háttér és ha a pixel kap vezérlés akkor átengedi a fényt.
Hogy kötötted be? mi van a hexben?
PB0=DB7; PB1=DB6; PB2=DB5; PB3=DB4; PD0=R/S; PD2=E; R/W=GND
Utoljára itt a hobbielektronikán találtam "Inkrementális szögadó illesztése mikrokontrollerhez" letöltöttem a komplett avr studio4 projektet mert át kellett írnom az R/S és az E lábat mert neki máshova volt kötve. Gondoltam szögjeladó nélkül is ki fog írni de nem elötte meg neten találtam valakinek a projekt-jét ahol annyit írt vólna ki hogy hello word. De neten találtam egy html-es szimulátort ahol egérrel lehet kattintgatni a lábakra és úgy ír ki, ugyanezt megpróbáltam hogy I/O lábakat kapcsolgattam de semmi nem történ.
Ennél a kapcsolásnál volt kijelzés. A 10K SIP-t nem raktam bele
Ezt töltsd fel az mcu-ra. És állítsd be a fuse biteket.
Int. RC Osc. 8mhz; Start-up time:14CK+65ms. 0x00 0xDF 0xE4 Eredmény? 5V-al táplálod az egészet, 100nf az mcu tápon közel hozzá, reset 10k felhúzva, és direktbe mennek a lábak az lcdre, más nincs rajta.
Köszi a segítséget, mára rejtélyes módon zokszó nélkül lefordult nekem is, lehet csak egy újraindítás hiányzott neki.
Axel, C-t tanultunk egy bizonyos alap szinten, könyvet beszereztem, köszi a tippet! Üdv: dinnyextra
Avr studio-val programozod? Tuti felírja a flash-t? Tegyél már egy screen shot-ot a fusebit és a flash programozás végéről is. Lcd kontraszt (10k-s poti) ?
Igen azon állítottam, mármint a 10K-s potin is de úgysem semmi.
Fuse biteknél: clock div 8 vedd ki az x et.
Ha kiveszem akkor is ugyan ez, itt azért van bepipálva mert ha be van pipálva akkor ckvid8=0 ha bepipálom akkor ckvid8=1. A chip Blaster Fuse bit olvasáskor azt írja hogy ckvid8=0.
De nálad 0x64 ed ír LOW-ra, 0xE4 helyett. Nekem gy működik. Össze dugdostam ahogy írtad, amit átküldtem hex van rajta. LCD nem halt meg? Egyik végállásában a potinak "világít" az egyik sor ha tápot adsz neki?
Sziasztok!
Nagyon kezdő vagyok, lenne egy alap kérdésem Attiny 2313 AVR -nél hogyan lehet úgy beállítani a hardweres pwm-et, hogy nem kitöltési százalékot adok meg, hanem azt hogy 2000us-ig legyen logikai 1 állapot, és 20000us-ig legyen logikai 0? (az 1es állapotot később változtatni szeretném futás közben), C nyelven? Azt meg lehet valahogy valósítani, hogy 3 hardveres pwm csatorna legyen? a 20000us azaz 50Hz lenne a frissítési idő, és a kitöltés 1000us és 2000us között változhatna, egymástól függetlenül. Előre is köszönöm! Zoltán
Üdv!
Lehet, hogy buta kérdés, de felteszem. Egy AVR bemeneten van egy nyomógomb, párhuzamos 100nF kondival. Bekapcsoláskor felfölti pull-upon keresztül, utána pullup kikapcs, majd a mainloopban ellenőrzi a kondi töltöttségét és "frissíti" újra a kondit pu-n. Ka a gomb akár egy pillanatra is meg volt nyomva és kisütötte a kondit akkor ezt észre kell vennie a proccnak? Pl ha túl rövid ideig volt nyomva a gomb és épp egy megszakítást kezelt, vagy elfogytak a külső megszakítás bemenetek és nem jutott a gomboknak. Így nem marad le az ilyen eseményekről és nem gáz ha prellezik a kapcsoló. Vagyez nem jó így?
Pulllup KEVÉS.
Ki/be nem kapcsolgatjuk, mert minek.... Tessék INT-re kötni ha kell (prellet kivédeni). Nem illik egy kérdést 4 fórumba is feltenni
Ha átrakom 0xE4 re akkor külső 8Mhz-es kristyájra állítja magát ha eltekerem az egyik irányba a potit akkor világít az egyik sor!
Ha világít egy sor, akkor a LöCöDöd működik, csak nem jól inicializálod. A hiba az önkészülékében van .
Egy forráskódot kérnénk. Jó tanács: te határozd meg delay függvényekkel, hogy mikor jöhet a következő parancs, mert ha Busy Flag-t használod az érdekes módon nem mindig működik ahogy azt az ember elgondolta.
szerintem próbáld meg valahogy így, ebben van leírás hogy működik a pwm.
Az ATTiny2313-ban csak 2 időzítő van, mindkettőnek 2 kimenete, saját komparátor-regiszterrel(OCR).
Három, teljesen független PWM csatornát nem tudsz kezelni, de ha ebből kettőnél a PWM-frekvencia lehet azonos akkor nincs akadálya. Esetleg ATMega48-at ajánlom amibe 3 timer van 2+2+2 OCR regiszterrel. Kitöltési százalékot sehol nem lehet megadni, maximum azt hogy a számláló milyen állásainál(értékeinél) történjen valami. Először a frekvenciát kell beállítani: 2000+20000us=22ms ~45.4545Hz. Ebből, és az AVR órajeléből kell kisakkozni a számláló maximális értékét. Én 8MHz-vel számolok ha nem gond, azt beépítve tudja az ATTiny2313 és az ATMega48 is(CKDIV8 FUSE bit kikapcsolásával). És a Timer1-el számolok, ott pontosabb értékeket meg lehet adni. Az előosztónak 64-et választom mivel 8MHz/64=125kHz, azaz a számláló pontosan 125-öt számol minden ezredmásodpercben. Ugye 22*125=2750, ebből 1-et ki kell vonni és azt kell megadni, mint a számláló TOP értéke. Az 1-es időzítőnél az ICR1-et állítsd be 2749-re! Most jön a PWM. Az OCR1A-t állítsd be (125*2)-1=149-re! Ezután a kimenetet kell beállítanod a TCCR1A-n a COM1A1:0 biteken hogy az OCR1A eléréséig logikai 1, utána a számláló újraindításáig logikai 0 legyen. A timert a megfelelő módba kell kapcsolni olyan PWM módba, hogy a TOP az ICR1 legyen! A számlálót a TCCRB-ben az előosztó beállításával indítod el.
Lcd akkor tán nem halott... de nem értem E4 elviler a belső saját oszci.
Neked van most rajta valami órajel forrás? Belső 8mhz vel próbáld. Robi ?
Tessék (hátha Te többre mész):
odaadom a komplettet, netről szedtem le én, az avr studio szerint jó.
Hogy ne legyen kínai, leírom a beállításokat ATTiny2313-ra és ATMega48-ra ugyanúgy jó a kód:
A logikai 1 és 0 értékeket felcserélheted, 2-féleképpen is, én a legegyszerűbbet írom le:
Megjegyzés: PWM módoknál az értékek a timer újraindulásakor(TOP elérésekor) érvényesülnek. Másik megoldás a kimenet polaritásváltása(COM1A1:0 átállíátsa), de a változtatás azonnal életbe lép!
Működik!! Találtam itthon egy másik 2313-mat mert gondoltam hátha jó lesz. A régi chip-nek is kiolvassa rendesen a signatúráját, de azzal nem jó. Köszönöm szépen mindenki segítségét
De igen azt írtam bele utoljára most ki is írja hogy Hello Sz. Dani. csak gondtam elküldöm neki azt a projektet amit direkt 2313hoz írt valaki és én azzal is próbáltam.
Szia!
valami nem akar működni... Szoftveresen tökéletesen működik a pwm, de sajnos ezzel sem(próbáltam pár netes jódot is...), ezt a kódot égettem be:
A jel egy RC szervóhoz és egy ledhez megy, a led nem is világít, így valami gond van, a kimenet az OC1A, azaz a PB3 ha jól gondolom... Végignéztem a többi kimenetet is, de sehol semmi... Egész délután ezzel az egyszerű dologgal küszködök, sajnos elég hiányos az elérhető dokumentáció is a neten... Mi lehet a hiba? Zoltán
Pontosan mit szeretnél csinálni a szevóval? Mert én régebben töltöttem le egy rajzot, attini2313-ra van kötve egy szervó, 4 nyomógomb amivel vezérled, meg van egy lcd-je ami kiírja mi történik de az nem lényeg rá. Ha valami ilyet szeretnél eltudom küldeni
|
Bejelentkezés
Hirdetés |