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
a programozásnál igen, kénytelen voltám rákötni 2.4-es tölthető elemte mert különben nem akarja felprogramozni. 0.15-ös elemem nincs
De hálával fogadok minden segítséget, egyéb megoldást erre.
1. Eleg meredek, ha a programozo altal szolgaltatott feszultseg forrasra sorba kapcsolsz egy toltheto elemet. Ha fustologve, durrogva megy az autod nem teszel bele nitrot, hogy majd attol jobban megy -- remelem nem
2. Lehet a feszultseget csokkenteni -- pl sorba kotsz egy diodat, azzal mar veszit 0.7V kornyeken. Sorba kotsz kettot, akkor mar 1.4V esik es igy tovabb. Vagy csinalsz egy egyszeru emitter kovetos, potmeteres feszultseg szabalyozot... 3. Kevesebb jobb, mint a tobb -- az elobb emlitett fustjeles kommunikacio elkerulese vegett... 4. Ha 4.85V nem elegendo neki akkor ott mas a gond. Pl. az egyeb aramkori elemek kapacitiv terhelese miatt nem fut fel eleg gyorsan a tap, vagy valamelyik programozo jel. Vagy a tapod nincs szurve rendesen. Vagy a programozod nem jo. Vagy az Isten se tudja, mert annyi minden lehet. 5. Vegyel vagy csinalj magadnak egy stabil labor tapot! Pl. itt a HE-n is van egy-ket cikk pl PC tap atalakitassal hogy lehet ilyesmit csinalni. Az elem az egy kemikalia, az neked sohasem fog stabilizalt aram vagy feszultseg forraskent szolgalni, arra ugyanugy kellene meg egy stabilizator.
Helló!
Topi AVR-es cikksorozatából a csipogót (Bővebben: Link) "átírtam" ATtiny13-ra magasabb frekvenciával (10kHz fölé). Azaz tulajdonképpen csak a "generate_tone" utáni számokat módosítottam. A piezo hangszóró szépen meg is szólaltatja a beállított frekvenciájú hangokat, viszont minden hang után van egy észrevehető, sőt zavaró pattogás. Azt az egyet nem tudom eldönteni/kiszűrni, hogy ez hardveres vagy szoftveres hiba lehet? Vagy ez csak egy természetes velejáró? Nem lehetne tenni ellene valamit? Ugyanis amire szánnám az áramkört, ott a lehető legkisebb mértékre kellene csökkenteni ezt a zavart. A kapcsolási rajz, ami alapján építkeztem, és a hangminta ebben a hozzászólásban található csatolva: Bővebben: Link Krisz
Sziasztok!
Nagyon nagy segítségként venném ha tudnátok mondani / küldeni Atmega8 hoz egy basicben írt programot ( vagy valami segítséget ) ami egy bluetooth modult kezelne többek között,mert egy mobileszközben amiben ilyen mikrokontroller volt,abba szereltem bluetootht,de az idöm fogytán és elég sürgős lenne és a programmal még sehol se tartok. ( Egy rayson btm 222 es modulról van szó) Bárminemű segítő szándékot szívesen fogadok és nagyon meg is köszönöm!!!( Akár $-ben is ) E-mailem: nocomment KUKAC vipmail PONT hu
Sziasztok!
Szeretnék építeni egy elektromos vízkőtelenítőt. Ez az eszköz egy másik topikban benne van, ott 555-tel van kivitelezve, de akármennyit kísérleteztem vele nem nagyon akart úgy összejönni, ahogy kellett volna. Arra gondoltam, hogy valamiféle mikrovezérlős megoldást próbálok rá találni. Találtam az oldalon egy olyan macskariasztót, ami 20kHz és 40kHz között sweepel, ez egy attiny13-as IC-vel van elkészítve. Át lehet-e alakítani úgy ezt a kapcsolást, hogy 1Hz és 20kHz között sweepeljen és ezen a frekvenciasávon 1-2s alatt végigfusson oda vissza? Van hozzá egy hex fájl is, gondolom azt átírva valahogy kivitelezhető, néztem hex editorral, de semmit nem értettem belőle. Még nem dolgoztam mikrovezérlőkkel, úgyhogy a segítséget azt előre is megköszönöm.
Helló!
Pont ezzel bajlódok én is a fentebbi hozzászólásomban/kérdésemben. Én az itt található kódot módosítottam, hogy a kívánt frekvenciájú hangokhoz jussak. Az egyetlen gond, hogy a hangok váltásakor pattogó hangot ad ki a piezo, és ez nagy hátrány számomra, mert kutyariasztóként/kutyanevelőként szeretném használni a szomszéd kutyája ellen. Viszont a pattogás túl feltűnő. Így is felfedezték már a kihelyezett piezo hangszórót, mert az eddig használt 555-ös áramkör egyszer begerjedt, és huzamosabb ideig szólt így. Amit most csatoltam, az 16-24kHz között ad hangokat, 200ms-ként váltakozva. A "generate_tone" soroknál tudod módosítani, illetve hozzáírni a kívánt frekvenciákat.
Sziasztok!
A fuse bitek állítgatásával sikeresen kizártam magam egy AtTiny2313-ből. Ahogy olvastam a Parallel Programming módban újra lehet programozni a biteket. Nekem Topi féle AVR-Doper programozóm van. Ha jól sejtem ezzel ezt nem tudom megcsinálni. Nincs valaki Szombathelyen ill. környékén aki segíteni tudna?
Szia!
Azt meg tudnád nekem mondani, hogy a hex fájlt hogyan tudom visszafordítani c fájllá?
Jótól kérdezed. Én annyit értek a mikrokontrollerekhez és a programozáshoz, hogy szinte semmit. Azért annyit tudok, hogy az ilyen visszafejtett dolgok nem igazán használhatóak. Viszont amit csatoltam C fájt, az kedved szerint módosítható.
Én azt értem, de a macskariasztóhoz írt program eleve úgy van megírva, hogy sweepel, és abban esetleg lehetne módosítani a tartományt, de mivel hex-ben van, így nem igazán tudom.
Mármint arra gondolsz, hogy oda-vissza végigmegy az adott frekvenciákon? Hát nem tudom, én kinézem magamból, hogy lennék olyan elvetemült, hogy 100Hz-enként beírogatnám a forrásba ezeket...
Szia!
Igen, úgy gondoltam. Hát... ha elfér a memóriájában, akkor az is megoldás, mert szerintem én is lennék olyan elvetemült. (akár 1Hz-ként is.) De fentebb olvasható, hogy a frekvenciák átváltása között egy hallható pattogás tapasztalható.
Igen, sajnos többféle hangszórón is ilyen pattogást hallok. De nem csak ennél, hanem az általad csatolt HEX-nél is, csak jóval gyorsabb ütemben.
Valószínűleg egy olyan program, ami nem lépésenként "hangolna", megfelelne a célnak. Bár, a vízkőoldóhoz nem is kell hangszóró, csak két szál vezetéket kell feltekerni a csőre. Ott nem valószínű, hogy megjelenne ez a zavar.
Üdv mindenkinek.
Lakusként. Nem leget, hogy a program a hang kiadása után leveszi a feszt, vagy DC-t ad. És ennek a váltásnak van pattanás hangja. Esetleg a piezó elé egy kondi? Vagy a kimeneti jelet GND, VCC vagy NC-re kell küldeni miután vége a hangnak. Esetleg 2 hangváltás között azonnali áttérés kellene és nem hangonként megszólaltatni. Akinek van forrás kódja ezzel próbálkozhat.
Azzal hex fájllal is pattog? Azt hittem, hogy az nem lépésenként változtatja a frekvenciát. Vízkőoldóhoz nem tudom jó-e lehet ott sem kívánatos dolog ez a pattogás.
Amúgy pattogásról hasonló elméletem van nekem is mint janyjozsefnek. Én arra gondoltam, hogy amikor frekvenciát vált, akkor egy pillanatra H szintre ugrik, és e miatt hallani egy pattanás, ami szerintem egy inverterrel megoldható, de janyjozsef kondi megoldása jóval egyszerűbb megoldás, az is bejöhet.
Ha kipróbálod valamelyik megoldást majd megírnád, hogy mire jutottál? Mert szerintem ennél maradok, ha bejön, más megoldást jelenleg nem nagyon tudok. Köszi
Sziasztok!
Nem tudjátok, miért nem kel fel a kontrollerem alvó módból INT0 lábára érkező le és felfutó él hatására? ha nem megy el aludni működik a megszakítás (ezzel lépkedek a menüben) azonban ha elmegy aludni nem kel fel. próbáltam PCINT-vel, azzal megy, de nekem az ide sajnos nem jó. Adatlap szerint működnie kellene. ATTINY13 kontrollert használok. IDLE módból felkel, de power down-ból nem (nekem az utóbbi kellene)
Kipróbáltam a kondis megoldást 100nF-tól 100µF-ig, ami éppen a kezem ügyébe került, de a pattogás még csak nem is halkult. Sajnos a többi elgondoláshoz hozzá sem tudok szólni, mivel a programozáshoz gyenge vagyok. Bár azért nagyjából értem, hogy mire gondolsz.
Sziasztok!
Most ismerkedem az avr-ek világával, és szeretnék, egy olyan egyszerű programot, hogy ha megnyomom a gombot akkor bekapcsoljon a led. Az itt található cikkekből összeollózgatva összejött egy pár soros progi, ami nem éppen úgy működik ahogy szeretném, ellenben sikerült készítenem egy AVR-es érintéskapcsolót (ha a PB4 lábhoz kötött drótot megérintem, bekapcsol a led ami PB3-on van) Mindezt ATtiny45-el szeretném összehozni, mellékelem a progit is. Esetleg van valaki akit NAGYON kezdő kérdésekkel zargathatnék priviben? Köszi Sziasztok.
Szia!
engem zargathatsz MSN-en, skypon vagy mailon, de csak szerda délutántól érek rá ha megfelel. elérhetőségemet megtalálod ha nevemre kattintasz Ja és a progid így nem teljesen jó, de majd akinek van ideje az kijavítja neked, most nekem 3 vizsgára kell tanulnom.
Hali!
Tegyél a kapcsoló láb és a föld (GND) közé egy 100nF-es kondt. PATTANÁS: Ha a kondizás után is pattan, akkor csak progiból lehet megszüntetni, mert nem a DC okozza a gondot. Valószínűleg a hang kikapcsolása után végez még egy szintváltást és ez hallható. Hol is van ennek az eredeti leírása?
Teljesen egyértelmű, hogy nincs felhúzó ellenállás és bármilyen zaj bebillenti. Semmi köze nincs a hibának a 100n-s táp szűréshez.
A levegőben "lebegő" láb 100n-val szűrése nem megoldás a problémára.
Az eredeti program Topi szerzeménye, ebben a hozzászólásban linkeltem a cikket, és ugyanitt található a C és a HEX állomány is.
A kapcsolási rajz pedig itt található: Bővebben: Kép. A programban a LED portját módosítottam, hogy passzoljon ehhez. A tranzisztorét nem bántottam.
Kondival is pattanni fog, akkor is ha DC miatt. Ugyanis DC portra kerülésekor a kondenzátor ugyanúgy átengedi a "változást".
Kondi DC komponenst választ le. DE portra egyenáram kikerülése hang után változó jel. Azt ugyan úgy átengedi. Jó lenne, ha nem írnál le nyíltan ostobaságokat. Rendben van a jószándék, de megalapozatlanul ne írjunk le hasraütve dolgokat. És ez vonatkozik a pattanásra és a LED-es ki-bekapcsolós játékra is. Megzavarja a kezdőket, akik tanulni szeretnének. Köszönöm.
Szia !
Az "uint8_t" az egy 8bites előjel nélküli (unsigned) integer (a "_t"-ről nincs sejtésem). Az uint8_t csak egy AVRGCC típusdefiníció, nem más, mint egy "unsigned char". Standard C-ben ezt így szokás deklarálni:
Szerintem érthetőbb, átláthatóbb. Azért lett érintéskapcsoló, mert ez
A kódhoz én nem szólnék hozzá, biztos rájössz, hogyan kéne azt megoldani, hogy ha a LED be van kapcsolva és a kapcsolót lenyomod, akkor aludjon ki a LED; és az ellenkező eset. Itt megemlítem az EXOR logikai kapcsolatot, amit így lehet C-ben elővarázsolni: A = A^B vagy értékadással : A ^= B; próbálkozhatsz ezzel is. Gondolni kell még arra is, hogy az AVR egyszer megfigyeli a gomb állapotát, majd aszerint pár ns alatt elvégzi a műveleteket, és újra megfigyeli a gomb állapotát... A nyomógombot egy átlagember pedig min. 100ms-ig nyom le. Kell egy ekkora késleltetés is, különben eléggé kiszámíthatatlanul, véletlenszerűen fog égni vagy nem égni a LED. Javaslom a util/delay.h-t include-olni (amihez kell egy #define F_CPU 8000000 sor, ahol 8000000 az AVR frekvenciája Hz-ben). Vagy magad írsz két egymásba ágyazott for ciklust, ami elszámol 0-tól 255-ig magában csendesen [ez ad kb 10*255*255*1/8000000 sec késleltetést, mert egy utasítás általában 1 órajelig tart, és kb 10 assembly utasításra fordíthatja le a C a for-ciklusokat]
Bocsi!
A Pattanással és a kondizással kapcsolatban igazad van! A DC-re kapcsolás => változás és átmegy a kondin. (valóban nem gondoltam végig ) A bemeneti láb és 100nF-et vitatom, mert az IC ha inputnak konfigolod, akkor felhúzza a lábat. Hacsak nem HI Z-re konfigolod.
Ja még egy!
Ha van felhúzó ellenállás és a lábhoz érsz az átbillenti, mert a zajt a felhúzó ellenállás nem nyomja el. Te se írj hülyeséget. Hacsak nem soros vagy rövid zár. 1 eset soros RC szűrés, 2 eset zaj kis impedanciás levezetése.
Ha inputnak konfigolod, akkor HiZ!! Csak akkor húzza fel a lábat, ha külön beállítasz felhúzót!
Ha DDRx adott bitje 0 és a PORTx ugyan azon bitje 1, akkor felhúzó be lesz kapcsolva. Sosem kapcsolódik felhúzó be magától! Pattanás: Azért pattan, mert nem azonos fázisban történik a váltás. Ha megnézzük a kódot, látszik hogy a szoftveres "pwm" kikapcsolt port állapotban fejezi be a jel generálást. Az új hang meg egyből 1-es szinttel kezdődik. Ez a 0-1 váltás egy végtelen frekvenciájú jel, ez okozza a pattanást. Továbbá a piezo maga egy kondenzátorként fogható fel. Így ha az kisül hirtelen, mindig is lesz pattanás. Mellesleg erre a felhasználásra inkább egy hardveres CTC-t lenne célszerű használni. Mert ez a szoftveres időzítés csak arra jó, hogy bármelyik lábon lehessen csipogni. Másra nem alkalmas. Főleg nem sweepelésre. Krisz03: Tessék használni a processzor adott timeréhez tartozó PWM modul CTC módját. Ahol a regiszterbe írt értéktől függően, mindig 50%-os, de változó periódusidejű -> frekvenciájú jelet ad ki a lábon. Ez HW-es, nem lesznek problémáid vele.
Idézet: „Ha van felhúzó ellenállás és a lábhoz érsz az átbillenti, mert a zajt a felhúzó ellenállás nem nyomja el.” Uhhh... Ezért ez durva volt. Persze. Egy 10MOhm-os felhúzó nem felhúzó. De 5V-on 10K-s felhúzóval már ne billenjen már a láb érintésre. Azért az durva lenne már. És ott van tévedés, hogy a hozzáérés az nem tipikus zaj. Hanem potenciálkülönbségből eredő valós jel. Nagyon kis árammal. Persze zajnak fogható fel, mert nem kívánt. 5V-ról 1k-s felhúzónál az 5mA-es állandó áramot azért vessük össze a hozzáéréskor keletkező uA-es árammal. Nem fog ott billenni semerre. Több százszoros-ezerszeres az arány.
Durva?
Próbáld ki. Én egyszer rosszul forrasztottam be a lábhoz tartozó 100nF-es kondit és amint a panel alján a lábhoz értem csak néztem, hogy honnan jött az input jel. Aztán rájöttem és a jelenség megszünt. |
Bejelentkezés
Hirdetés |