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   115 / 840
(#) vzoole válasza tpeter hozzászólására (») Márc 31, 2009 /
 
Ellenőrizd, hogy a PORTC-re van kötve a kijelző
PC0 = lcd DB4
PC1 = lcd DB5
PC2 = lcd DB6
PC3 = lcd DB7
PC4 = lcd RS
PC5 = lcd E

A main-be a POTRC-t állítsd kimenetnek.

Esetleg küldj egy jó fotót az egészről és megnézzük.

Ennyi jut most eszembe
(#) mukievil hozzászólása Márc 31, 2009 /
 
Most nagyon hülyének érzem magam, már átnéztem több oldalt is, elkezdtem olvasni a forumot is, de arra nem jöttem rá, hogy ha veszek egy programozot, akkor hogy programozom fel fel a microprocesszort??? arra rájöttem, hogy nem olyan mint a pic-é, hgoy ki bele kell rakni a a chipet, a programozoba, hanem van egy kivezetés .. de azt hova kell kötni ???? vki tud adni egy gyors linket, ahonnan ezt megtudhatom ??? vagy egy kis utalást , merre keressem ? ,

köszönöm
(#) TavIR-AVR válasza vzoole hozzászólására (») Márc 31, 2009 /
 
1, PortC: JTAGF DISABLE a biztosítékbiteknél
2, a Displaytech 162 kijelzőnél az 1,2 láb a háttér , s a 3...16 láb az ami a többi kijelzőnél a 1...14.

(#) Slope válasza mukievil hozzászólására (») Márc 31, 2009 /
 
Szerintem olyan gyorsan akarod a választ, hogy még a kérdés megfogalmazására sem szántál elég időt. Így csak az utolsó kérdésedre válaszolok: ADATLAP
(#) Slope válasza vzoole hozzászólására (») Márc 31, 2009 /
 
Hát igen, a driverben elég csúnya az inicializálás, nem feltétlenül követendő példa.
(#) gtk válasza Slope hozzászólására (») Márc 31, 2009 /
 
Erdekes, nekem soha nem volt vele problemam. Ha jol emlekszem HD44780 adatlap alapjan volt irva az init.
(#) Slope válasza tpeter hozzászólására (») Márc 31, 2009 /
 
Idézet:
„Amúgy valamit nem értek: miért állítja a példaprogram elején inputra a port D-t? A port D nem is játszik ahogy néztem.”


Ne foglalkozz vele... lehetséges, hogy másból maradt ott.

Viszont TavIR-AVR 2. pontjánál leírtakat érdemes megnézni, mert Displaytech-nél a háttérvilágítással kezdi a lábszámozást, ellentétben más típusokkal, ahol a végén van.
Bár ha a kontraszt potival tudod állítgatni a kontrasztot akkor valószínű jól kötötted be. Ha menne az inicializálás, akkor a második sor is "beizzana". Szerintem nézd át a bekötést mégegyszer, majd ellenőrizd a program futását. Akár a PORTD-re kötött LED-el ami kigyullad, ha lefutott az inicializációs függvény (gondolom nem gond beleírnod).
(#) Slope válasza gtk hozzászólására (») Márc 31, 2009 /
 
Az általam nézett adatlapban 3szor javasolja kiküldeni a 8 bites módot, különböző késleltetésekkel. Én 10-5-5 ms-ot szoktam várni az egyes küldések között, majd csak ezután váltok át 4 bites módba. Sajnos vannak kényes kijelzők pl EWxxx
(#) gtk válasza Slope hozzászólására (») Márc 31, 2009 /
 
Megnyitottam a cikket es vzoole init javitasat beirtam.
Amugy majdnem 2 eve nem foglalkoztam vele. Ez a 10-5-5 idozites most ujdonsag. Most 3x 39 ms idozites van, igy hasznalta vzoole. Remelem mar jo lesz..

(#) Slope válasza Slope hozzászólására (») Márc 31, 2009 /
 
Hitachi ADATLAP

46. oldal

Ja és tudom van aki nem szereti, meg spórolás, stb., de én vissza szoktam olvasni a BF-et.
Jelenleg 4×20-as LCD megy a programomról és szerintem gyorsabb, a hasra ütésre írt várakozásoknál. Arról nem is beszélve, hogy így akármelyik gyártó akármelyik HD44780 klónjával megy. Az init rész nekem tovább tart, de azt meg csak egyszer kell úgyis.
(#) gtk válasza Slope hozzászólására (») Márc 31, 2009 /
 
Felnyitottam ujra, es modositottam.
(#) Slope válasza gtk hozzászólására (») Márc 31, 2009 /
 
okok!
(#) wg_kezdo hozzászólása Márc 31, 2009 /
 
AVR-el akarok léptetőmotort vezérelni.
5 drót van így 4 tranyó kéne. A tekercsek 33ohm-osak
BC327-337-es van itthon.
Mekkora ellenállást tegyek a bázis és a lábak közé, hogy ne égjen le a motor stb....?
Ha jól emlékszem diódával is védenem kéne az AVR-t, ha úgy kötöm be, hogy a lábtól egy diódát teszek és utána az ellenállást az jó?
(#) Slope válasza gtk hozzászólására (») Ápr 1, 2009 /
 

Hello Gtk!
Nem akarok akadékoskodni, de a
  1. LCD_PORT = (1 << LCD_DB5);
  2. LCD_PORT = (1 << LCD_DB4);

egyszer is elég. Nehogy felvedd, nem kikezdés.
Üdv!
(#) ATtiny válasza wg_kezdo hozzászólására (») Ápr 1, 2009 /
 
Van egy jó elméleti cikk itt HE-n a léptető motorokról, azt átkéne nézned. Amúgy ha egy tranzisztort, mint kapcsoló elemet akarsz használni, akkor a tranzisztor adatlapja alapján pontosan ki lehet számolni a szükséges bázis ellenállást 5V -ra. Én nem bonyolítanám túl a dolgokat. Beraknék egy 1K -sat az AVR lába és a tranyó bázisa közé. Azzal jó esélyel prímán menni fog. Ha akarod védeni az AVR lábait diódával, akkor 5V-os zénert rakjál be, ne sima diódát. És ne felejtsed el berakni az ellen irányú diódát a kapcsoló tarnzisztorral párhuzamosan. Ezen fog átfolyni a motor tekercsének az árama, ha kikapcsol a tranzisztort.
(#) gtk válasza Slope hozzászólására (») Ápr 1, 2009 /
 
Szia !

Ezt hol latod? mert meg nincs ujra fent a cikk. Vagy a regi driverre goondolsz?
Teljesen igazad van. Valoszinu -nagy izgalmamban- a kesobbi LCD_PORT = 0x0; zavart meg.
Koszonom az eszrevetelt! Remelem ezzel veglegesen lezarhatom
(#) gtk válasza Slope hozzászólására (») Ápr 1, 2009 /
 
Most nezem ujra az adatlapot, erdekes hogy abban a formaban mukodott, hiszen DB4, DB5 egy idoben kellene H szinten legyen. Most nincs lehetosegem kiprobalni a modositast, remelen mukodni fog igy: (csak a 8 bites resze)

  1. lcd_delay_ms (40.0);    //wait 40ms after power ON
  2.   LCD_PORT = (1 << LCD_DB5) | (1 << LCD_DB4);
  3.   lcd_toggle_E ();
  4.   lcd_delay_ms (4.1);
  5.   lcd_toggle_E ();
  6.   lcd_delay_us (100);
  7.   lcd_toggle_E ();
  8.   LCD_PORT = 0x0;
(#) tpeter válasza gtk hozzászólására (») Ápr 1, 2009 /
 
vajon mennyire nehéz tönkretenni egy ilyen LCD-t? Már csak arra tudok gondolni hogy esetleg rosszul kapott tápot vagy valami...
(#) gtk válasza tpeter hozzászólására (») Ápr 1, 2009 /
 
Ezt nehez lenne megmondani..Probald az idozitest az lcd_toggle_E () {} fuggvenyben modositani kisseb, nagyobb idozitesekre.
Bekoteseket ujra atnezni.Az R/W lab GNDn van?
TavIR-AVR ajanlasait megnezted?
Ha 1X16 LCD akkor a headerben az 1X16 makrot ird at 1-re. ( ez mondjuk csak kesobbiekben lenne szukseges, mikor mar mukodik)




(#) vzoole válasza tpeter hozzászólására (») Ápr 1, 2009 /
 
Esetleg magpróbálhatod manuálisan beindítani, hogy kipróbáld a kijelzőt.
Én első kijelzőmet ez alapján üzemeltem be, nem tart sokáig: Bővebben: Link

(#) Slope válasza gtk hozzászólására (») Ápr 1, 2009 /
 
Azért működött az előző verzió, mert az lcd_toggle_E() függvénynél történik a beírás. Szóval előtte úgy adod ki a két adatbitet ahogy akarod. A lényeg, hogy az Enable impulzus kiadásakor, minden be legyen állítva a megfelelő szintre.
(#) gtk válasza Slope hozzászólására (») Ápr 1, 2009 /
 
Ok,..de akkor sem vilagos. A porton az adatot felulirta. Ha csak nem tarolta el a "kijelzo".(A folyamatot azert ertem )
(#) Slope válasza gtk hozzászólására (») Ápr 1, 2009 /
 
Oké bocsánat én voltam felületes. Igazad van. Szerintem azért nem tűnt fel mert én mindig csak a bitet írom, nem az egész portot.
Szóval jogos a reklamációd
(#) Barbár hozzászólása Ápr 2, 2009 /
 
Hali!

Nekem lenne egy problémám amit AVR-rel szeretnék megoledani...


A probléma a következő:

Aztszeretném "figyelni" az AVR-rel, hogy pl 1 fogyasztón át folyik-e áram, vagy ha ugy egyszerübb akkor a fogyasztót kivéve van-e feszültségkülönbség...

Végülis jelen esetben mindegy, annyit szeretnék, h ha pl egy 12V-os izzót felkapcsolok az ő "gyári" kapcsolójával akkor NE kapcsoljon fel semmi, csak az AVR "vegye az adást", h annak felkapcsolva kéne lennie...

A programmal kapcsolatban egyenlőre annyi ötletem van, h egy végtelen ciklus futna ami minden egyes iterációban megnézne 3 ilyen "izzót" h most felkacsolva kéne-e lenniük vagy sem, és ezeknek a függvényében az AVR kapcsolgatna másik 2-t vagy 3at...

Ebben tudna valaki segíteni?
Gondolok itt az elektronikai megvalósításra is, és a programon belüli résztre is (hogy hogyan "nézem meg" az avr-rel, h mi a helyzet éppen most).

Előre is köszönöm a segítséget (és bocsi, ha túl bonyolultan írtam le).


U.I.: Elsőkörben ATtiny45 -tel szeretnék egy próbakapcsolást készíteni (azért pont ezzel, mert ilyenre már legalább kimentkezelést tudok írni),
A későbbiekben pedig ATmega8 -al szeretnék egy végleges kapcsolást létrehozni.

Köszi mégegyszer!

Üdv!
Barbár



(#) gtk válasza Barbár hozzászólására (») Ápr 2, 2009 /
 
Leszabalyzod a 12V-ot egy ellenallas+zener parossal, majd feszultsegmeres ADCvel. ATtiny45 -ot nem ismerem, de gondolom van benne ADC. Eleg csak 8 bitet hasznalni a ADCnel (ha nagyobb), es belso referencia feszultseggel. A kepleteket is gondolom az adatlapban megtalalod.
(#) Barbár válasza gtk hozzászólására (») Ápr 2, 2009 /
 
Na én pont NEM ilyen bonyolultra gondoltam...

Hanem csak simán I/O bemenetet szeretnék kezelni, nem kell túlbonyolítani.

Csak még nem sikerült rájönnöm h a bemnetnél azt tudja az AVR észrevenni ha pl a x-es lába a földre van kötve vagy azt ha a VCC-re?
(#) Slope válasza Barbár hozzászólására (») Ápr 2, 2009 /
 
Egyszerű lekérdezéssel. Semmivel sem bonyolultabb mint kiírni egy bitet. Annyi, hogy nem a PORTx regisztert kell olvasni, hanem a PINx-et, valamint a DDRx regiszterben be kell állítanod a port adatirányát.
Milyen nyelvben írnád?

(#) Barbár válasza Slope hozzászólására (») Ápr 2, 2009 /
 
Értem (legalábbis azthiszem).

Lehetne még egy olyan kérésem, h egy minimalista programkódot fel tudnátok tenni?

Köszi!

Üdv!

Barbár
(#) gtk válasza Barbár hozzászólására (») Ápr 2, 2009 /
 
Jo, de mindenkepp le kell szabalyozni a 12Vot!
(#) Barbár válasza gtk hozzászólására (») Ápr 2, 2009 /
 
Persze én elsőkörben arra gondoltam (de légyszi mindenképpen szóljatok ha hibát láttok az elgondolásban)
hogy a 12V-os szál csak 1-1 tranyót vezérelnének...

Az AVR is 12V ról menne tehát 7805-tel oldalám meg a stabil 5V-ot.

Csak azt nem tudom, h az AVR-rel mit lehet figyelni:

- azt, hogy pl az XY lába éppen rövidre van-e zárva a GND-vel, vagy
- azt, hogy ugyanez a lába a VCC-vel (tehát a +5V -tal) van-e rövidre zárva.

Szóval én arra gondoltam, a 12V-t csak egy pici tranyót vezérelne pl BC547 vagy vmi hasonlót, és az zárná a megfelelő helyre az AVR bemenetként használt lábát.


Egyenlőre ennyi az elképzelés, de ha valaki tud esetleg egy egyszerübbet...

Előszöris abban szeretnék segítséget kérni, hogy pontosan hogy is van ez, szóval hogy kell AVR-rel I/O bemenetet kezelni
(úgy h a program amikor kell be tudja olvasni, h az adott pillanatban mi, hogy van kapcsolva, és után annak megfelelően fusson tovább).

Ehhez szeretnék kérni ha lehetséges egy nagyon egyszerü kis programkódot amiben 1 db I/O bemenet van megírva, h lássam, hogy hgy is működik és megtanulhassam belőle.

Előre is köszönöm!

Üdv
Barbár
Következő: »»   115 / 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