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
Hát, nem kockáztatnék. Az esetek 99%-ában nem okoz gondot (99 +/- 3% - mérnöki becslés
![]() Lélegeztetőgépet, kritikus eszközt nem bíznék rá... Ált. először a perifériák hibáznak, legvégül a processzormag...
Még a témához annyi, hogy korábbi munkahelyemen direkt nem járatták a mikrokontrollert még max sebesség közelében sem. A cég gépjármű elektronikában utazik.
Hali! Nincs valakinek ötlete hogy hogyna kellene hozzákezdeni egy ammega 128-as mikrovezérlővel megtervezni egy mozgásérzékelős alkonykapcsolót ?
előre is köszi
Talán azzal, hogy keresel egy mozgásérzékelő szenzort, illetve egy fényérzékelőt. Utána kitalálod, hogy miként illeszted a mikrokontrollerre. Az illesztés módja általában megtalálható a szenzorok adatlapjaiban.
Milyen plusz szolgáltatások kellenének még, amihez mikrovezérlő kell az ilyenekhez képest? Vagy csak a kihívás miatt csinálnád?
ATinny2313 fast pwm üzemmódban szeretnék ledet meghajtani de nem megy!
Idézet: „DDRB |= (1 << PB4); uint8_t pwm; TCCR1B = (1< TCNT0 = 0; OCR1B = 0; pwm=1; while(1) { if(pwm) { if(OCR1B<255) OCR1B++; else pwm = !pwm; } if(!pwm) { if(OCR1B) OCR1B--; else pwm = !pwm;} } _delay_ms(1);” Valaki tudja mi nem jó benne?>>
TCCR1B = (1 WGM13) (1 WGM12) a nyilakat az 1 és a wgm között valaminnt a függőleges elválasztót kitöröltem mert nem akarja megjeleníteni, az előző hozzászólás meg nemtudom módosítani.
Használd a KÓD funkciót, vagy oszd meg az egész fájlt!
Ha nem állítod be az órajel osztást (minden clock select bit 0) akkor a TIMER alapbeállításként nem indul el. Másrészt a TimerCounter1-es az 16 bites. Vagyis a 8 bites AVR 2 utasításból tudja beállítani az értékét és nem csak 0 és 255 érték között lehet állítani hanem, 0 és 65534.
Előbb próbáld meg beüzemelni a Timer0 8 bites PWM-ét ![]() Ha ez megy akkor ugorj neki ennek ![]()
Köszönöm! szerintem még elleszek vele egy ideig.
Ha csak ennyi a célod akkor ehhez hülyeség AVR-t használni.
De ha ragaszkodsz hozzá akkor, - beüzemeled az ADC-t. - while ciklusba méregeted a feszkót a lábon -> ezt az értéket egy változóba teszed és egy if elágazással beállítod hogy egy bizonyos érték felett/alatt kapcsolsz egy lábat. + tehetsz rá 2 gombot vagy enkódert az érzékenység állítás végett. A foto (fény) érzékelőhöz kell egy müveleti erősítős vagy tranyás erősítő ami az AVR ADC-jének megfelelően erősíti az analog jelet amit meg tud mérni/fel tud dolgozni. Kell egy áramerősítő fokozat (1 tranyás szokott lenni) meghajtani a relét. Üdv!
a nyákok a szokásos 2< rétegü 290-335celsius fok közöt lehet müteni?>
Hali! Egy mozgásérzékelőt szeretnék avr-re kötni, milyet lenne érdemes választani?
Čn a legolcsobb hálozati PIR szenzort választottam, kiszedtem belöle a relét meg a hálozati egységet, és megmaradt az egész elektronika a szenzorral együtt aminek egy nyilt klllektoros kimenete van és az egész 5V-rol megy igy siman illeszthetö az AVR bemenetére (és még olcsobb is mind darabonként venni NYŔKot csinálni, összerakni, dobozolni.
![]()
Hello mindenkinek!
Tanácsot kérnék, ki látott már olyat, hogy a HEKIT-es AVR ISP programozó a következőt játssza: AVR Studio-ban csatlakozik, felismeri az IC-t, meg is írja, ellenőrzés is rendben, majd következő körben, nem ismeri fel az ic-t, majd addig nyomkodom, míg felismeri, megírom és a szokásos hibaüzenetet látom, az ellenőrzés után. Egy hete kezdődött, most minden ic-t felismer néhányszori nyomkodásra, majd nem, aztán megint, és egy ic-t se tudok megírni vele, szokásos hibaüzenet az ellenőrzés után. USB-port biztos jó,kábel szintén, két programozóm van mindkettő ezt játssza, két új ic-vel próbáltam semmi, szalagkábel 10cm, érintkezések rendben. Tanácstalan vagyok, please help!
Szerintem rosszak a forrasztásaid. Mutass nekünk egy fényképet a forrszemekről. Ránézésre a hozzáértő szem könnyen megmondja, hogy nem sikerültek jól.
Aztán ha kiderül, hogy azok jóknak tűnnek, akkor még gondolkodunk a dolgon.
Most van pwm, csak kijelzés nincs, valaki tud benne segíteni?
Üdvözletem!
Van nekem egy atmega8-16PU mikrovezérlőm. Rátettem egy 16 MHz-es kvarcot, beállítottam a fuse biteket (AVR studio). Működik is a dolog, tudom programozni, fut is a kód, de van amikor minden látható ok nélkül resetel. Belső RC-ről nem jelentkezik a probléma. Rosszul állítottam volna a fuse biteket (most external high frew crystal-ol van).
Kondi a táplábakon? 100nF elég lesz, de 1-10µF-nak talán még jobban örülne.
Ja és ne érj hozzá kézzel a kristályos kivezetésekhez mert attól is újraindulhat(tapasztalat). És még mielőtt más is lelőné: 10kOhm felhúzó ellenállás a RESET lábra.
Ezek mind megvannak, de a reseten csak 1kOhm van. Egy vonalkövető robotban dolgozik a panel jelenleg, és van, hogy menet közben resetel, tehát még véletlenül sem tudok hozzáérni semmihez. (A kapcsolás gyakorlatilag fizikus WILL-I cikke alapján épült, csak terveztem hozzá egy NYÁK-ot)
Lehet, hogy kevés az 1 kOhm felhúzó?? EDIT: Ja és reset után néhány utasítást ki is hagy. Pl.: a program elején várakozik egy gombnyomásra, de reset után egyből fut az azt követő rész.
Az 1k is jó, max a programozóval veszhet össze, de hibát nem okoz. Talán az XTAL lábak valamelyike húz át.
Milyen optimizálási beállításokat használsz? O3 esetén volt olyan hogy egy kódrész lefutása után indokolatlan restet-et kaptam. Állítva az optimizáláson helyrejött. Hatalmas kódméret miatt nem volt kedvem kikeresni valójában mi is történik.
Tápok rendben? Nem jöhet létre egy rövid feszültségkimaradás? Főleg hogy motrok tépázzák a tápot.
Motorok teljesen külön akkukról kapják a tápot (vezérlésnek van egy 9V-os akkuja+7805, motoroknak 4 db AA ceruza akku), tehát ez nem hiszem, hogy zavarhat. Optimalizálst alapon hagytam (-Os)
zombee: Ezt hogyan tudom leellenőrizni?
Még egy tanács. Ha nem is a probléma megoldása. Egy 7805 igen hamar meg tud enni egy 9v-os elemet. Még ha nincs is jelentősen terhelve. Érdemes rálesni az elem feszültségére elég sűrűn. Jártam meg hasonló felállásban lemerülő elemel, hogy az AVR megvadult és zárlatba küldte a h-hidam ami füsttel reagált. Melegen tudom ajánlani egy kis dc-dc konverter alkalmazását a digitális részben. Sokat tud spórolni. Meg merem állítani 1 9v elemet ha megspórol már kijött az ára.
Tápra 1000µF kondi!
A motorok megrántják a tápot és a 7805-n átjut....
Valóban elég sokat elfűt így, de biztos nem ez a probléma. Első gondolatom nekem is az volt, hogy merül az elem, de friss töltés után is ugyanazt csinálta...A tanácsot viszont köszönöm.
EDIT: szűrőkondik is megvannak mindkét tápon...motor tápfeszen és vezérlésen is, igaz nem 1000 uF, de 220 µF mindenhol ottvan.
Lehet lassan egy teljes kapcsolási rajzra lenne szükségünk, hogy elemezni tudjuk a hibát.
Itt a kapcsolási rajz: Bővebben: Link
A gyakorlatban ettől annyiban tér el, hogy a PORT kivezetések mellé oda van vezetve a +5V és GND is.
Milyet? Amilyet szerenél/venni tudsz. Mindegyikbe közös általában hogy egy relé behúz mikor mozgás van és zárja az áramkört(kapcsol egy lámpát).
Az a baj hogy main2-őt sehol sem hívod meg. Tehát ami az alatt van az sose fog lefutni.
Próbáld így:
|
Bejelentkezés
Hirdetés |