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   290 / 840
(#) kovacsj válasza gtk hozzászólására (») Dec 16, 2010 /
 
Lehet, hogy az áramkörrel lesz a baj. Mennyi a jó érték a kontrasztnál ha ellenállással szeretném helyettesíteni a potmétert?

Más boardon más által írt programmal működik az LCD-kijelző.
(#) Reggie válasza kovacsj hozzászólására (») Dec 17, 2010 /
 
Eleg valoszinu. Ha hibasan inicializalnal, akkor is annyi hibas karakter lehetne maximum ahany karaktert kikuldesz inicializacio utan. Ha egy sor fekete es egysorosnak inicializaltad, es meg karaktert sem kuldtel ki, akkor szinte biztos, hogy a kontraszttal van a baj.
A kontrasztot pedig nem ellenallassa, hanem feszultsegosztoval szokas beallitani. Adatlap szerint 4V-ot az ajanlott. Ennek a labnak a terhelese a fekete es nem fekete pixelex aranyatol fugg (ugyanis minden pixel(ami kapacitasnak foghato fel, dielektrikuma a folyadekkristaly) f frekvenciaju Uac feszultseget kap(0V elektrolitikus kozepertekkel) vagy 0V feszultseget kap. Eszerint lesz fekete vagy attetszo az adott pixel). Tehat ha siman ellenallassal probalnad beallitani, a kiirt tartalomtol fuggene a kontrasztod. Raadasul ezen a labon eleg kicsi a fogyasztas (uA nagysagrend), valamint erosen homersekletfuggo is. Rakjal be egy feszultsegosztot (5V taprol pl 1k+4k vagy 5k+20k) ugy hogy 4V keruljon erre a labra.
(#) vilmosd válasza kovacsj hozzászólására (») Dec 17, 2010 /
 
Hali
A kontraszt bemenet altalaban 0-1 V kozotti feszt ker. Ugy lehet megoldani, hogy alulra egy 1k poti, felulre egy 4k7-es ellenallas. Lehet az alsot egy fix ellenallassal is helyettesiten, de probalgatni kell az erteket. Ez 470 ohm es 1k koze esik.
Csa Vili
Ps Itt van egy mukodo kod 2 soros LCD vezerlesehez. Igaz ez PIC kod, de az LCD-t minden uC-nel egyforman kell vezerelni.

flexlcd.c
    
(#) Fizikus válasza kiborg hozzászólására (») Dec 17, 2010 /
 
Ugy nez ki igazad van. Kicsit jobban utananeztem a dolognak. Az alabbi abra az adatlapbol valo, e szerint az ATmega8L-nek 5V-on mennie kellene 16MHz-en is.
(#) Fizikus válasza David.zsombor hozzászólására (») Dec 17, 2010 /
 
Nyugodtan vedd meg az ATmega8L-t es rakj be melle egy 7.3728MHz-es kvarcot, azzal biztos megy meg alacsony feszultseggel is (ha kesobb esetleg egy 3.3V-ot hasznalo IC-vel akarod osszekotni, akkor nem kell az 5V-3V szintillesztessel veszodnod, hanem csak rakotod es 3V-rol hajtod az AVR-t)
Es ezzel a kvarccal a soros kommunikacio is megy az osszes sztandard sebesseggel.
(#) kovacsj válasza Reggie hozzászólására (») Dec 17, 2010 /
 
Eddig egy potméter volt betéve aminek az egyik lába GND, a középső pedig a kontraszt bemeneten volt. A harmadik lába szabadon lógott. Az így mért feszültség 4V körüli volt ezen a lábon. Tudtam állítani, el tudtam tüntetni a fekete téglalapokat vele. De a szöveg akkor sem jelent meg. Lehet, hogy az áram volt kevés? (Elég nagy értékű a potméter.) Vagy ez nem számít itt?
(#) kovacsj válasza vilmosd hozzászólására (») Dec 17, 2010 /
 
Az adatlap szerint 4V körüli feszültség kell. Az áramnak van jelentősége?
(#) Hp41C válasza kovacsj hozzászólására (») Dec 17, 2010 /
 
Szia!

- Az időzítéssel is lehet probléma. Egyes parancsok végrehajtási ideje nagyobb, mint 1 ms. Az l_enable() rutin ugyan 2 ms ideig tart, de csak 1 ms ideig van nyugalomban az LCD E jele. A 4 bites módban a két nibble beírása gyorsabban is követhetnék egymást, de a két parancs között min. 1.5 ms nem szabad parancsot küldeni, csak a busy bitet olvasni.

- Le kell ellenőrizni az LCD hozzávezetéseit is ellenállásmérővel az LCD kivezetéseitől a kontroller lábakig.

- A
  1. PORTC |= (0<<EN)
helyett a
  1. PORTC &= ~(1<<EN)

- Érdemesebb lenne egy olyan eljárást írni, ami a 8 bites kódot kapja paraméternek és két 4 bites írással továbbítja a LCD -nek, és vár a parancs végrehajtására min. 1.5 ms -ot.
(#) kovacsj válasza Hp41C hozzászólására (») Dec 17, 2010 /
 
Nagyon köszönöm neked is!

A kódot már régebben kijavítottam, csak véletlenül a rosszat másoltam be ismét.

Az időzítéseket azonban még ma este kipróbálom.
(#) David.zsombor válasza Fizikus hozzászólására (») Dec 17, 2010 /
 
Jó köszi.
(#) Reggie válasza kovacsj hozzászólására (») Dec 17, 2010 /
 
Elvileg a 3. labak a tapon kell lennie, a csuszka megy az LCD-re. Aramokkal itt nem nagyon lehet baj, mert alig folyik. (Vigyazz, a Doksi szerint a VDD es VO(ez a kontraszt lab) kozott kell lenni 4V-nak. Ha 5V a tapod, akkor az foldhoz kepest(VO-GND) 1V)
(#) Reggie válasza kovacsj hozzászólására (») Dec 17, 2010 /
 
Ezen kivul a kovetkezo problemak vannak meg a kododban:

30-31. sor: az enable utan kell a delay, mivel a parancsvegrehajtas az enable utan kezdodik meg, es a parancs vegrehajtasara kell varni.

35-36 sor: ugyan ez a hiba
(#) kovacsj válasza Reggie hozzászólására (») Dec 18, 2010 /
 
Köszönöm szépen! Ezeket is kijavítottam. Holnap nulláról kezdem újra az egészet.
(#) neogeo2 hozzászólása Dec 20, 2010 /
 
Sziasztok!
A hétvégén próbálkoztam egy 74HC595 shift regiszterrel, de sehogyan sem sikerült rájönnöm a működésére. Esetleg ha tudnátok adni egy C forráskódot, talán sikerülne rájönnöm belőle.
Nagyon köszönöm!
(#) aticska válasza neogeo2 hozzászólására (») Dec 20, 2010 /
 
(#) neogeo2 válasza aticska hozzászólására (») Dec 20, 2010 /
 
Rájöttem a hibámra. Köszönöm!
(#) echo11 hozzászólása Dec 21, 2010 /
 
Hello!

Valaki nem tud egy foglalatot ajánlani egy atmega16 smd változatához (16AU)? Sikerült venni a hestore-ban 2-őt is de azok túl nagyok és nem lehet sehogyan belerakni.
(#) David.zsombor válasza echo11 hozzászólására (») Dec 21, 2010 /
 
fogllat smd hez???.Én még ilyet nem láttam :no:
(#) ZsirosDani válasza neogeo2 hozzászólására (») Dec 22, 2010 /
 
Szia!

Esetleg ha véletlenül kellene, ebben ebben pont van egy header, ami 74HC595-öt vezérel.
(#) echo11 válasza David.zsombor hozzászólására (») Dec 22, 2010 /
 
Pedig van...ITT is. Én konkrétan ezt típust vettem meg, de ahogy már mondtam túl nagy. Valakinek van tippje?
(#) neogeo2 válasza ZsirosDani hozzászólására (») Dec 22, 2010 /
 
Köszönöm! Valami ilyesmit próbáltam összehozni és is. A Te megoldásod viszont sokkal szebb mint amit én csináltam, használni fogom.
(#) huba válasza echo11 hozzászólására (») Dec 22, 2010 /
 
Ez teljesen másfajta tokozáshoz való. PLCC, neked pedig ilyen kéne TQFP
(#) laci37 hozzászólása Dec 22, 2010 /
 
Szeretnék egy akkuról működő eszközt AVR-rel vezérelni, USB-COM átalakítón keresztül szeretnék alptopra csatlakozni. A feladat szénkefés DC motorok vezérlése lenne, ha lehet H-híddal, tranyókkal. Van külön aksim a motorokhoz, az elektronikához, és aksi van a laptopban. A kérdésem az lenne, hogy hogyan válasszam le az AVR-t a motoroktól illetve a COM portról? Később szeretnék feedbacket is a motoroktól, de egyenlőre a felszerelt végállás kapcsolókon kívül nem kell.
(#) neogeo2 válasza laci37 hozzászólására (») Dec 22, 2010 /
 
4n25? vagy valami másra gondolsz?
(#) laci37 hozzászólása Dec 22, 2010 /
 
a 4n25-tel szívtam már elég sokat, mert max kb 30kOhmig nyit ki, meg 17 db kéne csak a kimenetre. Megoldható vele csak macerás. A COM portot nem kell leválasztani? vagy jó oda a 4n25? Ha nincs leválasztás akkor meg kell MAX232-es szintillesztő ha jól tudom. Vagy az az IC le is választja?
(#) puli122 válasza laci37 hozzászólására (») Dec 22, 2010 /
 
Én úgy oldanám meg hogy az AVR mellé teszek egy FTDI chipet, ez megoldja az Usb-re való csatolást, nem kell átalakító. Ezzel nyugodtan kötheted laptophoz, még az 5V-os tápod is megvan a mikrovezérlőhöz. Utána már csak annyi a dolgod hogy egy L298 -as driver Ic-t kötsz a vezérlőre. Ez egy egybetokozott h-híd ( illetve kettő ) és még pár kiegészítő funkció. Hogy hány ampert vesz fel a motorod azt azért nézd meg, meg a meghajtó adatlapját is, de folyamatos üzemben 2A-t bír csatornánként azthiszem. Ha ennél több kell akkor Fet-ekkel rakj össze egy H-hidat.
(#) laci37 hozzászólása Dec 22, 2010 /
 
A problémám az hogy a motor induktív és egy AVR-t már sikerült megsütnöm azzal hogy közös földön volt induktív fogyasztóval, emiatt aggódom és nem akarok még egyet a kukába vágni. Egyébként lehetséges hogy a vezérlő elektronika 100mA fölött fog fogyasztani, és ha jól gondolom az FTDI chip nem kéri az USB-től a nagyobb teljesítményre való átállást.
(#) Reggie válasza echo11 hozzászólására (») Dec 22, 2010 /
 
Letezik TQFP-hez is foglalat, de baromi draga 15000 alatt nem fogsz talalni, raadasul nem megbizhato teljesen(sajat tapasztalat).
(#) Reggie válasza laci37 hozzászólására (») Dec 22, 2010 /
 
Az USB-n 500mA minden esetben rendelkezesre all. Ha csak a fold kozos azzal nem tudsz megsutni semmit, valoszinuleg az lehetett a problemad, hogy az induktiv fogyasztod kikapcsolasi tranziensnel feszulseglokest adott a tapra.
(#) David.zsombor válasza Reggie hozzászólására (») Dec 22, 2010 /
 
Az én kérdésem:Minek hozzá foglalat?Ezt arra találták ki hogy odaforraszd.
Következő: »»   290 / 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