Fórum témák

» Több friss téma
Fórum » AVR - Miértek hogyanok
 
Témaindító: pakibec, idő: Márc 11, 2006
Témakörök:
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
Lapozás: OK   134 / 840
(#) Grebi hozzászólása Jún 30, 2009 /
 
Üdv mindenkinek!
AVRStudió 4-ben milyen beállításokkal kell dolgozni ahhoz hogy külső kvarcról tudjam hajtani az ATtyni45-ös procit?
előre is kösz
(#) zombee válasza Grebi hozzászólására (») Jún 30, 2009 /
 
Csak ISP-vel tudod az ATTiny45-ör felprogramozni.
Azaz kell egy olyan égető, ami tud ISP-t, és az AVRStudio is ismeri.

Ha ilyened van, akkor a connect után menj rá a FUSES részre. Ott megtalálod.

Ha nincs ilyened, akkor nyomtatóportos ISP+PonyProg kell. Ott rámész a lakatra(fuses), és a CKSEL kezdetű biteknél kiveszed a pipát.

Ha a FUSE átállítás alatt nincs kvarc a lábakon, akkor hibát jelez a PonyProg(meg az AVRStudio is), de ez nem baj, mert az ISP-n keresztüli ellenőrzés csak akkor megy, ha a kontrollered is ketyeg(ellentétben a JTAG-el).

Jah, kérdezte valaki a nyomtatóportos ISP-t. PonyProg felismeri, AVRStudio nem. Csatolom.

avrisp.gif
    
(#) weend válasza mammut hozzászólására (») Jún 30, 2009 /
 
Szia!
Köszi a segítséget, van kijelzőm az nem probléma, megnéztem a kapcsolást az is egyszerű. A programot viszont nem találtam, megtennéd, hogy elküldöd nekem? Megnézném, hogy tudnék-e vele kezdeni valamit. De ha nem, akkor elküldeném a nyákot rajta az IC-vel (borítékban elfér). De akkor úgy tervezném a nyákot, hogy tüskesort tennék a nyákra, feltéve, ha meg tudod mondani, hogy ennél az IC-nél mely lábak a programozó bemenetek.
Vélemény?
Köszönöm.
(#) mammut válasza weend hozzászólására (») Jún 30, 2009 /
 
Nem tudom milyen programra gondoltál!
EBBEN a hsz-ben van egy egyszerű égető és hozzá egy program!
A mikrovezérlő firmware INENN tölthető le a fordulatszám mérőhöz.
Az AtMega8-ból ha TQFP tokozásút használsz, akkor az ISP lábak a következők:
3-5-21 GND (30-as is a rajz szerint)
4-6 VCC (10,18)
15 MOSI (Master Output Slave Input)
16 MISO (Master Input Slave Output)
17 SCK (Serial Clock)
29 Reset (10-15Kohm-on felhúzva VCC-re!)
Ezeknek a lábaknak közvetlenül az ISP (tüskesorra) kell menniük!
Tüskesor helyett ilyen kis áramkörnél érdemesebb csak forrszemeket csinálni, mert ha egyszer fel van programozva, akkor olyan, mint a Linuxos gép, a szoftver addig megy, amíg van alatta élő hardver!
(#) weend válasza mammut hozzászólására (») Jún 30, 2009 /
 
Köszönöm a választ, kiszúrta a szemem a progi, bocs. Felraktam a gépre, megpróbálok valamit kisilabizálni belőle. Ennek a kis áramkörnek mennyi a tápfeszültsége? Ha elakadok, kérdezhetek tőled?
Köszi
(#) mammut válasza weend hozzászólására (») Jún 30, 2009 /
 
Nincs mit!
A mikrovezérlő adja meg a minimális és maximális tápfeszt, ami az adatlap szerint:
Operating Voltages
– 2.7 - 5.5V (ATmega8L)
– 4.5 - 5.5V (ATmega8).
Esetünkben az áramkör egy CR2032 típusú 3V-os lítium elemről van megtáplálva, kb. 3,3V-ra van pufferelve a 10µF-os elkóval.
De az áramkör 5V-os táplálással is működőképes!
A két kép jól mutatja, hogy kis PAD-okra vannak kivezetve a programozáshoz szükséges pinek.
Természetesen, segítek amiben tudok!
(#) weend válasza mammut hozzászólására (») Jún 30, 2009 /
 
Várj, elbeszéltünk egymás mellett. Én a programozó áramkörről beszélek. Te feltettél egy kapcsolást 74LS244N-tip IC-vel, feltételezem hogy az AVRISP 5. 0 progi ehhez szükséges.
Ezen a kapcsoláson nem látok táp bekötést, a gépről kapja? Ezt a kapcsolást építeném meg hogy megbirkózzak a programozással.
(#) mammut válasza weend hozzászólására (») Jún 30, 2009 /
 
Ja értem! Annak az áramkörnek nem kell önálló tápegység, a programozandó céláramkörből veszi a működéshez szükséges áramot.

Ha viszont alacsonyabb tápfeszültségű áramkört akarsz programozni vele, ahogy nézem a 74xx244 adatlapokat, érdemes abból 74AHC244-et beszerezni, mert ez már 2V-nál is elindul, vagy a kijelzőt kiiktatva a programozás idejére 5V-tal megtáplálni.
(#) weend válasza mammut hozzászólására (») Jún 30, 2009 /
 
Értem, tehát mondjuk a fordulatszámmérő panelra, adok 5 voltot (vagy 3 volton is lehet programozni?) és ez elég a programozáshoz. Akkor elkészítem ezt a programozót, aztán meglátjuk. Köszönöm hogy szántál rám egy kis időt, és segítettél. Most lépek, jó éjt neked.
Szia!
(#) mammut válasza weend hozzászólására (») Jún 30, 2009 /
 
Előbb megpróbálhatod majd 3V-on is , ha nem megy csak akkor próbáld ki 5V-on, de a kijelzőt kiiktatva mert a telefonban is max csak 3,6V van!
Jó éjt!
(#) Grebi válasza zombee hozzászólására (») Júl 1, 2009 /
 
Köszi a választ, megpróbálkozom vele
(#) kocsgab002 hozzászólása Júl 2, 2009 /
 
Sziasztok!

Segítséget szeretnék kérni tőletek!
Azt a feladatot kaptam, hogy egy LED fényerejét változtassam PWM jellel AVR segítségével.
A helyzet a következő: Adott egy nyomógomb, ennek nyomkodásával kell fix PWM kitöltési tényezőket állítgatni. Mégpedig úgy, hogy:
1.megnyomás: 0%-os kitöltés
2.megnyomás: 30%-os kitöltés
3.megnyomás: 60%-os kitöltés
4.megnyomás: 90%-os kitöltés
A következő megyomásra kezdődne minden előlről.
Topi cikkéből kiindúlva ATTINY45-re gondoltam, mert kicsi, olcsó, és van benne hardveres PWM. Sajnos programozói tudásom nulla, az AVR-el lelkivilágát pedig csak most kezdem megismerni. A cikkben leírt kód alapján próbáltam kiindúlni, sajnos nem sok sikerrel. Addig eljutottam, hogy szerintem nem kell a while ciklus. De sajnos ennyi. Aki tud, legyen kedves segítsen nekem .Előre is köszönöm a segítséget.
(#) gtk válasza kocsgab002 hozzászólására (») Júl 2, 2009 /
 
Ha ez a Te feladatod es Mi megoldjuk, az Neked jo ? Programozas es HW ismeret nelkul sem ez sem mas feladat nem fog menni, ugy hogy mar regen el kellett volna kezdeni az ismerkedest ezzekkel.
(#) kocsgab002 válasza gtk hozzászólására (») Júl 2, 2009 /
 
Félreértés ne essék, semmilyen anyagi előnyöm nem származik a dologból, egy barátom életét szeretném megkönnyíteni, szülinapjéra lenne.
(#) gtk válasza kocsgab002 hozzászólására (») Júl 2, 2009 /
 
En sem rossz indulatbol irtam. Azt hittem suli feladat, es ha az, akkor tovabbra is ervenyes a fenti.
(#) Sir-Nyeteg válasza gtk hozzászólására (») Júl 2, 2009 /
 
Nincs még vége a sulinak?
(#) levi18 válasza kocsgab002 hozzászólására (») Júl 2, 2009 /
 
Szia!
Összedobtam neked gyorsan egy kis programot, lehetett volna a gombvizsgálatot switch-case szerkezettel is, de szerintem ez megfelel neked. Ha van benne hiba, akkor azt majd javítjuk. Csatoltam.
Üdv!

program.txt
    
(#) kocsgab002 válasza levi18 hozzászólására (») Júl 2, 2009 /
 
Nagyon köszönöm a segítségedet, szombaton ki is tudom próbálni. Azt meg tudod mondani, hogy mekkora pwm jel frekvenciája?
(#) zombee hozzászólása Júl 3, 2009 /
 
Üdv mindenkinek.
Gondoltam, veletek is megosztok pár képet a készülő induktivitásmérőmről.
Egyelőre csak frekvenciát mér(100uH+3.3nF).
(#) levi18 válasza kocsgab002 hozzászólására (») Júl 3, 2009 /
 
Hát ha a belső RC-oszcillátort használod, akkor F_CPU/1024. Ezt programozáskor tudod kiválasztani, lehet 1,2,4,8 MHz.
(#) kocsgab002 válasza levi18 hozzászólására (») Júl 3, 2009 /
 
Szia!

Gyorsan össze is raktam próbapanelon, és fel is programoztam. Minden tökéletesen megy, egy picit módosítottam a prellmentesítés delay-én, illetve a kitöltési tényezőkön is. Még egy kérdésem lenne. Ezt a pwm frekvenciát nem lehetne tovább osztani? Ugyanis beállítottam 1MHz-re az órajelet, mert nekem olyan 100-120Hz lenne jó PWM frekinek, de akkor nem igazán működött jól az áramkör, A gomb lenyomására teljesen meghülyült a led, nem úgy változott a fényerő ahogy az kellett volna.
Köszönöm, és üdv.
(#) levi18 válasza kocsgab002 hozzászólására (») Júl 3, 2009 /
 
Ha külső órajelről hajtod, akkor a külső órajel és az előosztás függvényében tudod használni a pwm-et. Ha csinálsz inverterből egy ~150kHz-es rc oszcillátort, az tökéletes lesz. Persze ennek a frekvenciája nem lesz annyira stabil, de egy LED-en nem igen fog meglátszódni.
De a program elején az órajel definicióját át kell írni az általad használt frekire, mert így marad meg a "pontos" időzítésed. Így pl.: #define F_CPU 150000 UL
(#) csakaszamok hozzászólása Júl 5, 2009 /
 
Sziasztok!

Van egy stk500-es kitem, és biztos nagyon kezdő a kérdés, de mert van az, hogy (egy példa alapján) ha ser Temp, majd out DDRB, Temp-et küldök, akkor minden LED kialszik, míg ha clr Temp-et küldök akkor minden LED világít. Én azt gondolnám, hogy mivel a 0 a low, és az 1 a high, ez utóbbi esetben kéne aktiválódnia a LED-nek.
A ser Temp-re xFF, azaz b11111111 lesz az ertek, és még is pont erre alszik ki minden LED ?
(#) vzoole válasza csakaszamok hozzászólására (») Júl 5, 2009 /
 
Akkor kéne ilyet csinálnia, ha a LED fordítva van bekötve és a másik lába a plusz feszültségen van.
(#) Mumtaz hozzászólása Júl 5, 2009 /
 
ITT van az a motyó, amit sehogyan sem sikerül működésre bírni. Az már biztos, hogy a szoftverben van a hiba.

Ablaktörlő időzítő. A működés módja az lenne, hogy a "WIPER_SWITCH"-re egy pillanatra pozitív feszültséget kötve a relé behúz egy pillanatra és ezzel egy időben elindul az időzítő. Amikor "WIPER_SWITCH" megint feszültséget kap, ami rajta is marad, az időzítő megáll és a relé ismét behúz egy pillanatra. Innentől a relé olyan időközönként húz be egy pillanatra, ami a két rákapcsolás közt eltelt. Innentől csak akkor változna az időköz, ha a tápot elvesszük (levesszük a gyújtást), mert ilyenkor visszaáll az alapértelmezett időre. Illetve akkor, ha újabb időt állítunk be. A betanítás kezdetéhez a kapcsolót csak egy pillanatra (kevesebb, mint 2 mp) kell kapcsolni. Ha tovább marad bekapcsolva, akkor vagy egy előzőleg beállított időközönként kell a relének behúzni (ha a gyújtás ráadása után már végeztünk betanítást), vagy az alapértelmezett időközönként kell behúznia.
Ez lenne az elmélet, de nem akar működni.

A következők a problémák:
A relé túl sokáig marad behúzva. Kb. 3-4 mp, ami túl sok, mert ennyi idő alatt az ablaktörlő két törlést is végezhet egymás után. Kb. 1-1,5 mp kellene.
A másik gond, hogy hiába csinálom meg az időzítő betanítást, nem az elméletileg beállított időközönként húz be a relé, hanem mindig ugyanolyan időközönként, ami kb. 45mp (nem mértem le). Ugyanakkor minden második, a "WIPER_SWITCH"-re való feszültség ráadásakor a relé nem csinál semmit.

Tudna valaki segíteni?
(#) gtk válasza Mumtaz hozzászólására (») Júl 5, 2009 /
 
Fuse biteknel mit javasol? Fontos hogy az legyen amit ajanl.
Ha ez sem oldja meg, en hagynam..
(#) Mumtaz válasza gtk hozzászólására (») Júl 5, 2009 /
 
Nincs ajánlás.
(#) Mumtaz válasza gtk hozzászólására (») Júl 5, 2009 /
 
Annyira nem tűnik bonyolultnak a dolog (csak nekem az).
Pont azért választottam ezt, mert eléggé egyszerűnek tűnik (kevés alkatrészből áll) és gondoltam, hogy csak nem csúszik be valami hiba. Feltételeztem, hogy maga a kód jó. Nem is túl hosszú.

Ami időzítésbe beleszólhat, az a s frekvencia, ami 9.6MHz.
(#) gtk válasza Mumtaz hozzászólására (») Júl 5, 2009 /
 
Ha nem voltak a fuse bitek allitgatva, akkor 9.6MHz az alapbeallitas.
(#) gtk hozzászólása Júl 5, 2009 /
 
Ma valahogy nekem sem akar menni a dolog.
Atiny13 -ra atraktam az iButton drivert.
Hogy nyitot draint kapjak az MCUCR/PUD -t 1-be allitom, es kulso felhuzo ellenallas van az iButton porton. Olvasas utan a PUD-t visszaallitom 0-ra. Megsem nyikkan ugyanaz a driver ami mar tobb gepben kitunoen mukodik 2313 -on.
Következő: »»   134 / 840
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem