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   480 / 840
(#) blackdog válasza zombee hozzászólására (») Szept 10, 2012 /
 
Én ATMEGA324-t írtam. Az ATMEGA48/88/168/328 azért nem jó mert kevés az I/O lába.
A PCINT meg arra kell, hogy az összes nyomógombom megszakításból kezeljem. Az élkezelés nem kritikus mert az LCD menü gombja és kimenetek gyors kapcsolói. Ill. megszakításból kezelném az opto-val leválasztott bemeneteket.
(#) Reggie válasza vilmosd hozzászólására (») Szept 10, 2012 /
 
"Amikor C-ben programozol, szinte mindegy milyen vas van a fordito utan. "

Na engem meg az ilyen beszolas sert Nagyon nem mindegy, hogy mi van utana. PIC18-as szeria alatt celszeru elfejelteni a C-t. Tehat a hasznalhatoak minimal ara sem 110 Ft...
A hozzászólás módosítva: Szept 10, 2012
(#) vilmosd válasza Reggie hozzászólására (») Szept 10, 2012 /
 
Mert mitol serto ez a hsz? PIC10 sorozatot is programozok C-ben, de az altalanos 16Fxxx sorozatot siman, tehat a 110 Ft az all. Persze ugye mindent a maga helyen. Ezzel nem fogok atomeromuvet vezerelni, ez teny. A C programnyelv arrol szolna, hogy a programozo megir egy fvenyt, programot, amit utana at lehet tenni kis atalalkitassal mas tipusu eszkozre. Persze ehhez tudni kell programozni, nem kimasolni valamelyik projectbol a masok altal megirt programot, es utana felteglaval verni a mellunket, hogy milyen nagyok vagyunk. A jo C fordito mukodik mindenen. Az mas hogy vannak specialis eszkozfuggo utasitasai, de azert programozunk, hogy ezeket a limitaciokat megoldjuk. Regen csinaltam olyat, hogy egyes fuggvenyeket (na nem HW kezelesre) megirtam Turbo-C-ben kiprobaltam, leszimulaltam, majd attettem 8051, vagy PIC16Fxxx eszkozre. Termeszetesen a HW fuggo reszt kulon mindegyikhez meg kellett irni.
Ugy roviden ennyi.
(#) Reggie válasza vilmosd hozzászólására (») Szept 10, 2012 /
 
Lehet ra programot irni, csak annyit is er. A C alapja a stacken keresztuli parameteratadas, tehat azokon az architekturakon, ahol nem hozzaferheto a stack takolni kell, ami mindig eros megkotesekkel jar. Tehat rendesen nem lehet C-ben programozni. Tudom jol, par evet szenvedtem a PIC-el, mig valtottam AVR-re. Pont ezert.
A hozzászólás módosítva: Szept 10, 2012
(#) blackdog hozzászólása Szept 10, 2012 /
 
Sziasztok!

Mivel dátum/idő kezelést is építettem az AVR-be elgondolkodtam, hogy mi lesz, ha áramszünet van. Nem használok az órához külön RTC IC-t viszont van 1F/5,5V buffer kondim. http://www.hestore.hu/prod_10030154.html Mellékeltem egy kis rajzot, hogy mi az elképzelésem.
A 7805 után tennék egy Schottky diódát és utána az 1F kondit. A kondi után kapná az AVR az 5VDC tápot és előtte pedig bekötném az egyik I/O lábra.
LCD és egyéb IC egy másik I/O lábról kapna tápot.
Így, ha a táp figyelő láb alacsony szintre kerül akkor lekapcsolnám az LCD és egyéb IC-k tápját valamint az AVR-t "elküldeném aludni". Így kisebb áramszüneteket átvészelhetnék a beállítások elvesztése nélkül. Jó ez így vagy más megoldás kellene?
A hozzászólás módosítva: Szept 10, 2012

tapresz.JPG
    
(#) Reggie válasza blackdog hozzászólására (») Szept 10, 2012 /
 
Rakjal ugyanilyen diodat a 7805 GND laba es a GND koze. Valamint a tap figyelohoz a 10k-val sorban egy 1k-t es a kozos pontra kossed be a uC-t.
A hozzászólás módosítva: Szept 10, 2012
(#) zombee válasza blackdog hozzászólására (») Szept 10, 2012 /
 
Igen, elnéztem. Korán volt még...
Jó hír hogy az ATMega324-nek is van "kistestvére", ez az ATMega164. Igaz, nem sokkal olcsóbb(compatel árlista), így lehet hogy a 324-el jobban jársz. Mindkettő elérhető DIP-tokosan is!
Tudom ajánlani még az ATMega169-et is(csak SMD). Fele-harmad-annyiba kerül mint a 324, és van 64 lába. Ebből 53 portláb(PORTA-PORTG), ebből 16 tud PCINT-et is. "Buta" LCD-t is hardverből kezeli.
(#) blackdog válasza zombee hozzászólására (») Szept 10, 2012 /
 
Az nem baj, ha SMD az AVR. TQFP100-ig nem esem kétségbe
Az én beszerzési lehetőségeim elég korlátozottak. soselectronic, tme, hestore.
Ahogy látom az atmega324 lesz az én barátom 1k EEPROM míg atmega169 512byte. De nagyon köszönöm, hogy megnézted és válaszoltál!
(#) blackdog válasza Reggie hozzászólására (») Szept 10, 2012 /
 
Idézet:
„Valamint a tap figyelohoz a 10k-val sorban egy 1k-t es a kozos pontra kossed be a uC-t.”

Az értem, hogy miért tegyek a 7805 GND lábbal sorba még egy diódát.
De az 1k másik végét hova kössem? Nyilván táp. Így viszont kapok egy fesz.osztót aminek az eredménye 5VDC 1k+10k az 4,5VDC.
Vagy rosszul értem amit írsz?
(#) Reggie válasza blackdog hozzászólására (») Szept 10, 2012 /
 
Rosszul. Ha azt vesszuk, hogy a diodan esik 0.5V, akkor a 7805 kimeno feszultsege 5.5V lesz. Ezt le kell osztani, hogy a uC figyelo laba max 5V-ot kapjon.
(#) blackdog válasza Reggie hozzászólására (») Szept 10, 2012 /
 
Oké. Jogos.
Modjuk azt, hogy a diódán 500mV esik. Ha a 7805 GND sorosan kap egy ilyen diódát akkor a kimeneten 5,5V lesz. Ezzel sorba másik dióda 1F kondi a kimenet kap 5V.
A figyelő láb 1k+10k osztóval szintén 5V fog adni. De tehetnék a 10k -val sorba még egy diódát és akkor az 1k elhagyható.
Szóval a lényeg, hogy így védekezhetek kisebb áramszünetek ellen.
(#) Reggie válasza blackdog hozzászólására (») Szept 10, 2012 /
 
Az oszto helyett dioda mar nem jo megoldas. A GND es a 5.5V-os kimeneten levo diodan kb ugyan akkora aram folyik, igy kb. ugyan akkora feszultseg esik. Viszont a figyelo ellenallason mar nagyon kis aram folyik, igy oda nagyobb feszultseg kerulne a tapfeszultsegnel. Az oszto sem tokeletes, de ott legrosszabb esetben 5V-nal kisebb feszultseg jon ki, mivel a dioda nyitofeszultseget tulbecsultuk.
A hozzászólás módosítva: Szept 10, 2012
(#) blackdog válasza Reggie hozzászólására (») Szept 10, 2012 /
 
Ezek szerint a mellékelt két megoldás közül az első a "jobb"?
A hozzászólás módosítva: Szept 10, 2012
(#) Reggie válasza blackdog hozzászólására (») Szept 10, 2012 /
 
Igen. Sot a masodik nem hogy rosszabb, hanem nem jo, mert a 7805 GND agabol hianyzik a dioda.
(#) blackdog hozzászólása Szept 10, 2012 /
 
A hozzászólás módosítva: Szept 10, 2012
(#) Reggie válasza blackdog hozzászólására (») Szept 10, 2012 /
 
Igen. Meg az sem jo, hogy a 7805 GND korebol kifelejtetted a diodat. Tehat a legutobbi abran csak a felso megoldas a jo.
(#) blackdog válasza Reggie hozzászólására (») Szept 10, 2012 /
 
Elnézést az üres hozzászólásért, de ez az új forum motor még nem az igazi. Csak így tudom megoldani.
Még gondolkodom azon, hogy LM317-el oldom meg a tápot. A lényeg, hogy védekezzek az áramszünet ellen. De ez jó kiinduló alap. Köszi.
(#) kurosaki hozzászólása Szept 11, 2012 /
 
Sziasztok.
Vissza tértem egy hosszas olvasás után.Multiplex et megépítettem NPN tranzisztor világit mind a 2 kijelző.Elindítom a kódot és mind a 2 kijelző ugyan azt mutatja :/. Eagle nyák tervezőben nincs Attiny IC ék vagy csak nekem? elkészítettem a programban erre a tranzisztor és az Attiny nincs benne. BC 337-40TA vettem erre a megoldásra mind a két anódot rá kötöttem a Groundot PD1 és PD2 re tettem a Emitter Anód ra az utolsó lábat az 5 V ra.

Akár hogy átírom a kódot nem megy jelenleg nem vagyok otthon de 20:00 fele már igen és betudom másolni a kódot.
A hozzászólás módosítva: Szept 11, 2012
(#) zolee1209 válasza kurosaki hozzászólására (») Szept 11, 2012 /
 
Előbb egy kapcsolást is tegyél fel arról, hogyan kötötted össze az alkatrészeket! Nem, ahogyan kellett volna, hanem ahogy összekötötted! Még egyszer nekifutok az irományodnak, hátha megértek belőle valamit...

szerk.: Még egyszer elolvastam, de ismét arra jutottam, hogy hiányoznak az alapok...
A hozzászólás módosítva: Szept 11, 2012
(#) kurosaki válasza zolee1209 hozzászólására (») Szept 11, 2012 /
 
Bocsánat csak telefonról írok gomen.Szóval próbáltam egy kapcsolási rajzot készíteni de akármelyik programot próbáltam nem tudtam teljesen össze állítani.
(#) zolee1209 válasza kurosaki hozzászólására (») Szept 11, 2012 /
 
Én is szoktam hébe- hóba telefonról pötyögni ide... PAPÍR- CERUZA Fénykép, feltölt!
(#) sikolymester válasza kurosaki hozzászólására (») Szept 11, 2012 /
 
Szerintem senki nem fog sokkot kapni, hogy EAGLE-ben nem Attinyt teszel be, hanem bármilyen más AVR-t. Úgyis a LED résszel van gond.
(#) vilmosd válasza kurosaki hozzászólására (») Szept 11, 2012 /
 
A Cadsoft oldalarol letoltheto sok LIB. Nalam van legalabb ket lib ami sok Atmel alkatreszt tartalmaz, koztuk ATTiny-t is.
(#) blackdog válasza kurosaki hozzászólására (») Szept 11, 2012 /
 
Idézet:
„Vissza tértem egy hosszas olvasás után.Multiplex et megépítettem NPN tranzisztor világit mind a 2 kijelző.Elindítom a kódot és mind a 2 kijelző ugyan azt mutatja”

Ha a korábban mutatott kódot használod továbbra is akkor nem csodálkozom ezen.
Külön kell vezérelni a CA/CC lábakat. Jó lenne, ha elárulnád, hogy CA vagy CC a kijelződ és, hogy alapból multiplex vagy te "kötötted" úgy?
http://codeandlife.com/2012/02/24/7-segment-multiplexing-with-uln20...stors/
A hozzászólás módosítva: Szept 11, 2012
(#) kurosaki válasza blackdog hozzászólására (») Szept 11, 2012 /
 
Ennyi az össz info rola
Nem én kötöttem össze.

Csatoltam a bekötést (a 100Ohm ellenálást elhanyagoltam.)

eagleterv.png
    
(#) blackdog válasza kurosaki hozzászólására (») Szept 11, 2012 /
 
Szerintem kezd előlről az alapokat. Adsz egy nehezen használható rajzot ahot közös katód szerint kötöd és linkelsz hozzá egy közös anódos kijelzőt. Kód meg semmi. De továbbra is úgy hiszem, hogy nem hiszel. Ha a kód még mindig a korábbi akkor ne várj csodát.
(#) kurosaki válasza blackdog hozzászólására (») Szept 11, 2012 /
 
Az AEG ben ez volt :/ a kijelzőről ennyi van a neten. na sikerült elöre jutnom.
  1. #include<avr/io.h>
  2. #include<util/delay.h>
  3.  
  4. int main(){
  5.         DDRB = 0xFF;
  6.  
  7.         //0 ~ 9 number set in hexadecimal
  8. int i=0,ones=0,tens=0,num[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x18};
  9.  
  10. while(1){
  11.         PORTB = 1; //activates 1st display
  12.         PORTD = num[tens]; //picks 0x40 ["0"] from num[] array.
  13.        
  14.         _delay_ms(1); //somehow the display is dim if I remove this delay.
  15.        
  16.         PORTD = 2; //activates 2nd display
  17.         PORTB = num[ones]; //picks 0x00 ["8"] from num[] array.
  18.        
  19.         _delay_ms(1);..
  20.        
  21.         i+=1;
  22.         if(i==99)
  23.         {
  24.                 if(ones == 9)
  25.                 {
  26.                         ones = 0;
  27.                         if(tens == 9)
  28.                         {
  29.                                 tens = 0;
  30.                         }
  31.                         else
  32.                         {
  33.                                 tens += 1;
  34.                         }
  35.                 }
  36.                 else
  37.                 {
  38.                         ones+=1;
  39.                 }
  40.                 i=0;
  41.         }
  42. }
  43. }
elszámol az elsö 9 ig majd egy A jelenik meg a második kijelzőn.

UI: sikerült megoldani rosszul adtam meg a PORT okat most mar elszamol 99 ig.

Hmm akárhogy alakitom nem számol vissza csak 45 ön áll.
A hozzászólás módosítva: Szept 11, 2012
(#) csabeszq válasza sikolymester hozzászólására (») Szept 12, 2012 /
 
Igen, vettem egy AVR-Duino UNO-t és gyakorlatilag 100%-ban megold minden gondot a logiakai analizátorral kapcsolatban. A neheze a programok megírása lesz, most már tudok UART-ton beszélgetni a chippel.

A végsebességét még nem próbáltam ki, 9600-on megy jelenleg, de a kapcsolat felállása már hatalmas siker.

Kicsit szkeptikus voltam az utángyártott Arduinoval kapcsolatban, de azt kell, hogy mondjam, eddig minden bejött. Simán kezeli az avrdude, megy Linux alatt, Windows alatt, programozható C-ben, olcsóbb,...
(#) sikolymester válasza csabeszq hozzászólására (») Szept 12, 2012 /
 
Nem kell félni a klónokkal, mivel az Arduino nyílt projekt. Minden rendelkezésre áll az utángyártásához. Így az lenne csoda, hogy valami nem menne rajta, persze silány minőségben mindig lehet gyártatni.
Ilyen fényben persze kész csoda, hogy az eredetiből is ezerszámra fogy folyamatosan.
(#) Reggie válasza csabeszq hozzászólására (») Szept 12, 2012 /
 
Ha logikai analizatort akarsz, akkor felejtsd el az Arduinot es EZ-USB FX2-t hasznalj. Azzal megy a 400 Mbit/s is, igy 16 biten tudsz kb. 22 MHz-el mintavetelezni. (Vagy megveszed az FX3-mat, aminek USB3 interfesze van es akar 32 biten mehet 100MHz-el. Viszont BGA...)
A hozzászólás módosítva: Szept 12, 2012
Következő: »»   480 / 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