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
Ezt sajnos nem értem.
Így működik rendesen:
Ha megváltoztatom az értékét és újra beprogramozom, akkor változik a fényerő. Így viszont már nem működik:
Mert amig a _delay_ms(1000) fut, azalatt a komparator() fuggvenyt nem hivogatod, igy az nem fogja a kimenetet allitani.
Üdv mindenkinek. Segítséget szeretnék kérni AVR programozásával kapcsolatban. Megépítettem a Topi féle AVR dopert. Korábban Win7 /32 alatt használtam, de most valamiért nem tudok vele programozni. Eszközkezelő is látja a COM3 porton, és az AVR studio 4.19 is csatlakozik. A main fülnél bármilyen atmegát állítok be, mindig ez az üzenet jön elő. Mit ronthatok el?
Bocs, most kicsit teljesen átírom a kódot ha nem haragszol. Én így képzelek el egy szoftveres PWM-et. Így működik a Knight Rider villogóm is, legalábbis a "hard kernel" része.
Bővebben: Link
Sziasztok!
Lenne egy problémám lehet, hogy tudtok valami okosat mondani rá. Hátha valaki már találákozott ilyen problémával. A helyzet az, hogy a PicKit2-vel /PK2AVRISP/ szoktam atmegát programozni ami eddig ment is tökéletesen. De most állandóan ezeket a hibákat dobja a CodevisionAvr, FLASH erasure failure at data address:1D0h FLASH data:00FFh!! Olvasásnál nem mindenhol FFFF van! Ha törölni akarom akkor is meg ha írni szeretném akkor is, mindig általában más hibákat ír! A haveromnál ugyanazt az Atmegát ugyanilyen módszerrel simán felprogramoztuk. Nem tudok rájönni mi lehet a gond?? Ha lenne valami ötletetek erre azt nagyon megköszönném! Köszönöm Lajos. A hozzászólás módosítva: Okt 31, 2013
A kérdés sajnos eléggé speciális. Az itt jelenlévők zömmel nem PicKit2-t használnak AVR programozásra. Én inkább a PIC fórumon tenném fel a kérdést, mert nekik legalább van PicKit2.
Emellett egy másik (új) IC-vel érdemes lenne megpróbálni, hogy az előző nem lett-e valahogy szétzúzva.
Új "jó" ic-vel is ezt produkálja már próbáltam. Akkor felrakom a pickit2 fórumba valaki hátha találkozott a hibával. Köszi.
Hát már illő volna egyet építeni, de nagyon ritkán használom s ezzel eddig mindent meg tudtam oldani. Ha valami egyszerűbbet tudnál javasolni/panelterv, hex leírás/ azt megépíteném.
Ez milyen lehet??
Bővebben: Link
Sziasztok!
Szeretnék egy mega8-al létrehozni egy kivezérlésmérőt. A jelet, erősítőből venném. Tudnátok ajánlani egy kapcsolást, ami 5V fölötti jelszintet, nem enged a bemenetre? Vagy maradjak a mezei feszültségosztónál? Köszi! A hozzászólás módosítva: Nov 1, 2013
Zenner diodaval megoldhato. A Vz megy az AVR bementere.
Sziasztok,
Robotvezérléshez használok ATMega328 kontrollert. Van 2 szervó a kerekeknek és egy szervó a "fej" mozgatáshoz. A fejen 2 fotellenállás van. 16MHz kristályt használok. A 3 szervó vezérlése és a 2 analóg jel kiolvasása nem jön össze. Valószinűleg időben nem fér bele? Egyáltalán lehetésges megoldani? Kihívás: 3 db 50Hz PWM jel kell. A hardver PWM csak kettő ilyet tud... ha jól értem. Bár van 6 csatorna de 50Hz-et nem tudok kihozni belőlük. Ha soft PWM-et csinálok akkor meg a ADCvel vannak gondok. Egyenként (3 szervó, 2 ADC) mindegyket sikerült felprgramozni de együtt nem megy. Pls HELP! Gaccserus
A 16 bites timerrel, hardveres PWM-mel konnyen eloallithato a 2db 50Hz-es nagyfelbontasu jel a 2 kerekeket meghajto szervonak.
Az egyik 8 bites timerrel pedig eloallithato kisfelbontasu jel a fejforgato szervonak az alabbi pelda alapjan (cask a timer eloosztast es az idoziteseket kell atszamolni 16MHz-re): kisfelbontasu szervovezerles timer2-vel (1MHz) vagy ez: kisfelbontasu szervovezerles timer2-vel (7.3728MHz) A hozzászólás módosítva: Nov 3, 2013
Sziasztok!
Még mindig szívok életem első AVR ismerkedésével. Könyörgöm, segítsen valaki, mert a falhoz vágom ![]() Ismereteim=0. Mellékeltem file-t. Ezeket kaptam egy projekthez, ami elvileg működik is, kaptam hex file-t is, csak át kellene benne írnom az időzítéshez. Ha a kapott hex-et töltöm be, működik. Ha én akarom lefordítani, ha a fejem tetejére állok sem jön nekem össze. Amit tettem: -innen a cikkek közül leírt módon feltelepítettem egy WinAVR-t. -elindítom a mfile-t, beállítom, hogy main file name: main.c, output format:ihex, proci:atmega16a, és órajel 16MHz -ezt a file-t elmentem a main.c mellé -elindítom a programmers notepad-et -file-->new project -neve: akármi, helye ahol a main.c is van -jobb klikk a nevére, add files, majd hozzáadom a main.c-t, illetve az én esetemben asoft-pwm.c-t is -tools-->make all meg i csinálja, exit code 0. Ez után ponyproggal felprogramozom az AVR-t, és amit belegyömöszölök, nem fut le, vagyis valamit nagyon elszúrok, de nem tudom, mit. (azért ponyval, mert a winavr nem kezeli helyesen a külön driver ellenére sem a párhuzamos portom, lapitopis...) Minek kell fuse biteknek lennie? Érdekes módon a forráshoz kapott hex szépen lefut, működik. az én fordításom nem. Sajnos mindenképp egy időzítést át kellene írom benne... Mit csinálok rosszul? valahogy mást is kell csinálni a soft-pwm.c-vel? Akkor mi miatt nincs hibajelzés? Mellékelve a forrás, meg a rajz is... Köszönöm!
A kezdők nem így ismerkednek az AVR-rel. Töltsd le az ingyenes AVR Studiót és azzal fordíts. Először ne módosíts semmit, csak ugyanazt fordítsd le, mint ami az eredeti hex fájlban volt. Ha már lefordítottad, feltöltötted és megy, akkor utána érdemes módosítani.
Az avr-gcc-s makefile-ok nem a tankönyv legelső oldalán vannak. Ami a biztosítékokat illeti, először inkább ne állítsd át. Nem biztos, hogy az IC utána újraindul. Ha a régi hex-szel megy, akkor nem kell őket módosítani.
Idézet: Definíció szerint: a hardver az, amibe bele lehet rúgni. „Könyörgöm, segítsen valaki, mert a falhoz vágom”
Biztosíték
![]()
Magyarul szeretek beszélni, mert az angol töri a nyelvemet.
Nekem a tanusítvány szót könnyebb kimondani, mint a szörtifikétet. A fjúz szó sincs éppen a kedvenc szavaim között. Talán angol környezetben nem olyan ronda, mint magyarban. A neten ha rákeresel, azonnal rájösz, hogy ez a helyes magyar fordítás. A rövidítéseket nem szoktam fordítani. IC-t írok, integrált áramkört ejtek. ADC-t írok, analóg-digitális átalakítót mondok. A magyar és az angol nyelv kellően távol áll egymástól ahhoz, hogy ne keverjem a kettőt.
Folyamatba van egy terrárium vezérlés tervezése, építése. ATMEGA8-16PU van benne. Áramszünet esetén, egy külön beépített táp szolgáltatná a feszültséget az órának, meg a beállításoknak, és azt szeretném, ha ilyen áramszünet van, akkor azt ki is jelezné. A kijelzés megoldható, de a lábak már elfogytak. A kérdésem az lenne, hogy megoldható a saját lábain bemenő tápfesz figyelése ezen az avr-en?
Ez attól függ, hogy hogyan használod az ADC-t. Belső 5V-ról, vagy külső referenciafeszültségről.
Ha a tápfeszről ADC-zel (+5V), akkor az aktuális feszültséget a következőképpen kapod meg: - van az Atmega16-nak egy 1.22V-os referenciája - az ADMUX-ot 1.22V-ra állítod (11110) - Kapsz egy értéket Vtáp=1.22 * 1024 / ADCmért Ez csak akkor működik, ha a referencia a +5V (AREF-en GND-n kapacitás) és a pontossága sem túlzottan jó (az osztás nem-lineáris volta végett). A hozzászólás módosítva: Nov 4, 2013
Köszi, valami ilyesmire gondoltam. A táp az 5V, de a segédtáp le lesz választva és kevesebb lesz 5Vnál. Ezért érdekelt, hogy tud e mérni. Az AREF-en GND-n kapacitás megvan. A pontos adat, ebben az esetbe nem fontos, csak az, ha az 5V lecsökken, jelezzen.
Szia!
kb 2 hete kérdeztem itt, ebben a topicban, hogy c-s forrásom van, mi kell hozzá. Itt írták, hogy van épp cikk winavr telepítéshez, beállításhoz, stb. Azt használjam. most meg kapok a fejemre, hogy miért ezzel kezdem... Azért, mert ezt kaptam infónak. Ha valaki azt mondja itt, hogy itt egy cikk, hogy kell beállani, és biztos jó lesz nekem az avrstudio, C forráshoz, esküszöm kipróbálom. De úgy megszeretnem az AVR-t, hogy "magamat" szivatom, nem fogom... ![]() AVR studio jó a belinkelt forrásomhoz? köszi!
Új hibába ütköztem. Ha megy a rendes táp, és kihúzom, (szimulálom az áramszünetet) akkor van, hogy megbolondul, vagy lefagy, vagy resetelődik, de van amikor jól vált a tartalék aksira, és amikor visszadugom akkor produkálja a fenti hibákat. Gondolom, valami zavar kerülhet rá. A táp először 12V (12Vos stabbal a relék miatt) és utána van az 5V előálítva szintén stabbal. A tartalék aksi az 5Vos stab után van egy diódával leválasztva.
Milyen kapcsolással tudnám az ilyen hibát kikerülni, hogy áramszünet esetén és amikor újra visszajön a rendes táp, ne csináljon ilyeneket?
Nem használok winavr-t, hanem avr-gcc-t használok Linux alatt (a kettő ugyanaz, csak más a neve Windows-on és Linuxon). A te esetedben a probléma a rossz makefile. Sokáig gondolkoztam azon, hogy csatoljam-e azt, amit Linuxon használok, de a kérdésed alapján nem néztem ki belőled, hogy képes leszel átírni Windowsra. Ezért javasoltam az AVR Studio-t.
Látom, hogy nem nyerte meg a tetszésed, ezért csatolom a Makefile-t is, csak át kell írnod Windowsra és jó lesz. Jobb esetben csak az elérési útvonalakat kell átírnod, rosszabb esetben mást is. Azt használsz, ami jólesik.
Ehhez nagyon nem értek, de ráraknék 100µF-et a föld és a +5V közé és megnézném, hogy azzal is csinálja-e. Csak egy próba erejéig.
Na meg is nézem. Én is ilyesmire gondoltam.
Sajnos nem segített. Szkóppal is megnéztem a jelet, és nincs semmi tüske meg semmi hasonló a tápon ilyenkor.
|
Bejelentkezés
Hirdetés |