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   236 / 840
(#) TavIR-AVR válasza echo11 hozzászólására (») Jún 16, 2010 /
 
Mindenki dolgozik, suliba van, vagy a strandon hűsöl... Vagy épp a gátakon homokzsákol, viharkárt hárít...


A standard eljárás amit linkeltél. DE:
- újabb alaplapokon a LPT nem terhelhető, így lehet hogy nem megy.
- 5V rendszerekhez találták ezt ki, de talán megy 3V3-l is.
- A chipedre a VCC és a GND közé 100nF kerámiakondi hiányzik.
- Miért nem lehet a chipen az 5V?


x64-es rendszereken nem működik (Direkt porthozzáféréshez fekete kakast kell áldozni éjfélkor... )
Rendszergazdai joggal használd a PCdet és a Direkt portkezelő SW-t ne hagyd ki (pl. Port95NT, SetupIO, TVICPort...) Amit a programozód igényel...

Bascom esetén a SETUPIO.exe-t tedd fel, és újraindítás után játszhatsz vele csak....
A Bascom mnt progranmozóról a 33. Bascom, mint programozó és a Biztosítékbitek fejezetben olvashatsz....
(#) trudnai válasza echo11 hozzászólására (») Jún 16, 2010 /
 
Idézet:
„Bocsi ha bunkónak és 'erőszakosnak' tűnök, de valaki legyen szíves válaszolni.....”


Mert kulonben?! Ha Te magad is erzed, hogy nem helyes piszkalni olyan embereket akik kedvtelesbol es sajat idejuk raforditasaval segitenek masoknak, akkor egyaltalan miert kuldod az uzenetet?!

Ezt a halozatot nem modorta LAN -nak hivjak!
(#) Axel hozzászólása Jún 16, 2010 /
 
Hello!

A kellő tisztelettel kérném, hogy aki erre jár és van ideje nézze meg a (#734080) post alatti kérdésemet. EEPROM írással kapcsolatos.

Köszi szépen!

Gondoltam hivatkozok rá így, elegánsabb mint újra postolni
(#) Sir-Nyeteg válasza Axel hozzászólására (») Jún 16, 2010 /
 
Keresőt próbáltad? C-nyelven ennyi lenne.
(#) (Felhasználó 4577) válasza Axel hozzászólására (») Jún 16, 2010 /
 
Legalább a hozzászólást belinkelhetnéd, hogy ne annak kelljen keresgélni, aki segíteni akar.

Egyébként miben kell segíteni? Nem tudod kimásolni az adatlapból a megírt forráskódot, amit az Atmel fejlesztői megírtak helyetted?
Az eeprom.h is tartalmazza a komplett eeprom kezelést. Négy sor a kiolvasás.

Mielőtt kérdezel olvass adatlapot. Ha ilyet kérdezel, ne csodálkozz, hogy nem válaszol senki se. Látszik, hogy nem is kerested.
(#) Axel válasza Sir-Nyeteg hozzászólására (») Jún 16, 2010 /
 
Szia!

Sir-Nyetegnek:
Köszi szépen! Próbáltam a keresőt de csak a google-t. Itt a fórumon mea culpa nem kerestem :pirul:

Variszabinak:
Variszabi post-jára most nem látom értelmét válaszolni. Csak annyit tennék hozzá, hogy azért linkeltem a hozzászólás számát, hogy utána ne azzal gyere, hogy "Háminek' írod be kétszeeer mii?!" Rendben legközelebb majd bemásolom.
(#) Proci_85 válasza Axel hozzászólására (») Jún 17, 2010 / 1
 
Én ezt anno egy beléptetőrendszernél így csináltam:

Függvény deklarálás:
  1. void EEPROM_write(unsigned int uiAddress, unsigned char ucData);
  2. unsigned char EEPROM_read(unsigned int uiAddress);

Használat
Olvasás:
  1. e=EEPROM_read(200);

200-as blokkot/címet kiolvassa.

Írás:
  1. for(j=0;j<10;j++) EEPROM_write(j,str2[j]);

Ez kiír egy 10 elemű stringet. Ha nem az első 10 blokkra kell írni, akkor én úgy csináltam, hogy egy 200-as címen "naplóztam", hogy hanyadik blokknál járok majd:

  1. e=EEPROM_read(200);
  2.    
  3.     e=e-48;  //eeprombol kiolvasott szam valojaban karakterkent ertelmezodik, hogy szamkent hasznalhato legyen, kivonok 48-at.
  4.  
  5.     if (e>9) full=1;  //ha 10 kartya mar benne van, megtelt a tar, felszabadult (torolt) helyet kell majd keresni
  6.     z=(10*e)+e;
  7.  if (full !=1)
  8.         {
  9.         for(j=0;j<10;j++) EEPROM_write(z+j,str2[j]);  //nincs telve a tar, mehet az iras
  10.         }


Maga a fügvény:
  1. void EEPROM_write(unsigned int uiAddress, unsigned char ucData)
  2. {
  3.   /* varunk mig ki nem irtunk eepromba */
  4.   while(EECR & (1<<EEPE))
  5.     ;
  6.   /* cim & adatreg beallitas */
  7.   EEAR = uiAddress;
  8.   EEDR = ucData;
  9.  
  10.   EECR |= (1<<EEMPE);
  11.   EECR |= (1<<EEPE);
  12. }
  13.  
  14.  
  15.  
  16. unsigned char EEPROM_read(unsigned int uiAddress)
  17. {
  18.   /* varunk mig ki nem olvastuk az eeprombol */
  19.   while(EECR & (1<<EEPE))
  20.     ;
  21.   /* adatreg beallitas*/
  22.   EEAR = uiAddress;
  23.  
  24.   EECR |= (1<<EERE);
  25.   return EEDR;
  26. }


Biztos lehet szebben is. Akkor ennyi tellett tőlem
Ja és ATmega88-on csináltam.
(#) Reggie válasza Proci_85 hozzászólására (») Jún 17, 2010 / 1
 
Az EEPROM_read es EEPROM_write tok felesleges, mivel a gyari fuggvenykonyvtarban megvan. csak az eeprom.h -t kell includeolni. A leiras itt megtalalhato.

Sot, blokkot is lehet irni olvasni, ugyhogy a ciklussal se kell vacakolni.
(#) vagnerjazon válasza Axel hozzászólására (») Jún 17, 2010 /
 
Szerintem variszabi arra gondolt linkelés alatt, hogy dupla katt a hsz fejlélcére, és a megjelenő ablakban ott a link az adott hsz-ra. Így: Példa.
(#) echo11 válasza trudnai hozzászólására (») Jún 17, 2010 /
 
Értem hogy mi a bajod, de ha már vetted a fáradságot és válaszolsz, akkor esetleg valami építő jellegű dolgot is hozzászólhatnál.Amúgy azért 'pattogtam', mert ezen a fórumon nem igazán akar senki válaszolni az ilyen 'semmiségekre', pedig szerintem ez egy nagyon fontos dolog, mivel a szoftveres résszel legalább lehet próbálkozni és utánaolvasni de ez sehol sincsen leírva olyan konkrétan, mint a C. De a lényeg az hogy ha nincs ötleted vagy tapasztalatod, akkor feleslegesen pusztítod a helyet...
(#) FlyR hozzászólása Jún 17, 2010 /
 
Sziasztok!

Még elég kezdő vagyok AVR terén, ezért bocsánat ha olyat kérdezek ami már sokszor szerepelt a fórumban.

Megépítettem első LPT portos AVR programozómat, ez alapján:

http://avr.tavir.hu/images/contents/4d.gif

A kérdésem az lenne, hogy a 2*5-ös csatit hogy kell rákötni egy ATMEGA16-ra? Tehát melyik lábak kellenek a RST, SCK, MOSI és MISO lábakra? Esetleg ha valahova még kell valami, megköszönném ha valaki leírná.
Programozás alatt az AVR-t is táplálni kell külön 5V-tal, vagy a programozótól kapja a feszültséget?

Ezenkívül még azt szeretném megkérdezni, hogy hogyan kell pontosan elsőnek éleszteni az AVR-t?
Ha jól tudom, először a biztosítékbiteket kell belőni.
AVR Studio 4-gyel szeretnék dolgozni, nem tudom, hogy ez megvalósítható-e benne...
Ezeket a biztosítékbiteket hol találom meg, honnan tudhatom meg?

Amikor új projektet akarok létrehozni induláskor, milyen programozót válasszak ki, hogy "észrevegye" az LPT portosat?

Huh, kicsit hosszúra sikeredett...

Válaszotokat előre is nagyon köszönöm!
(#) Proci_85 válasza Reggie hozzászólására (») Jún 17, 2010 /
 
Hasznos, hasznos.
Anno mikor írtam google & datasheet alapján dominóztam össze, de így tényleg kényelmesebb. Köszönöm!

FlyR: 2 helyre kell 5 V-ot adni neki. Ezt fent találod kis felfelé mutató nyilakkal, mellette írva: 5V
(#) (Felhasználó 4577) válasza Axel hozzászólására (») Jún 17, 2010 /
 
Idézet:
„Variszabinak:
Variszabi post-jára most nem látom értelmét válaszolni. Csak annyit tennék hozzá, hogy azért linkeltem a hozzászólás számát, hogy utána ne azzal gyere, hogy "Háminek' írod be kétszeeer mii?!" Rendben legközelebb majd bemásolom.”

Pedig azzal fogok jönni. Egy másik témában én sem kaptam választ és nem is fogom még egyszer beírni. Nem kaptam és kész, majd megoldom valahogy. Viszont Te azért nem kaptál, mert csak az adatlapot kell megnyitnod és szépen kimásolni belőle az előre megírt C vagy Assembly forráskódot írásra és olvasásra. Amikor én foglalkoztam vele, a Google-el kb. 5 perc alatt megtaláltam, hogy az eeprom.h-ban is van eeprom kezelő függvény.
Mindig jobban megjegyzi a dolgokat az ember, ha magától jön rá, nem pedig elmondják neki.
(#) Proci_85 válasza (Felhasználó 4577) hozzászólására (») Jún 17, 2010 /
 
Ha több hét után +1x felveti az ember, vagy belinkeli szerintem nem gáz. Én sem vettem észre. Most lám beírtam, vkinek hasznos lett, sőt ki is lett javítva
(#) gtk válasza (Felhasználó 4577) hozzászólására (») Jún 17, 2010 /
 
Kezd szint ala sulyedni a topic.
(#) echo11 hozzászólása Jún 17, 2010 /
 
Hello! Megcsináltam az említett LPT programozót, de nem tudok vele semmit csinálni....a ponyprogot hogyan kéne beállítani, hogy lássa? Nekem ezt a hibát írja ki: "Communication port not available (-16)" amikor LPT-n akarom olvasni.Ezt hogyan lehetne rendezni?
(#) gtk válasza echo11 hozzászólására (») Jún 17, 2010 /
 
AVR ISP.
Idezem a ponyprog oldalarol: "AVR ISP (STK200/300) parallel port interface"
(#) Axel hozzászólása Jún 17, 2010 /
 
Sziasztok!

Kicsit hülye kérdésnek tűnhet de ha egy változót ne adj' isten az eeprom nem inicializált területéről származó adattal szeretnék feltölteni (első induláskor pl.) akkor hibát kapok vagy simán csak automatikusan 0 lesz a kiolvasott érték?
(#) echo11 válasza gtk hozzászólására (») Jún 17, 2010 /
 
Hello! Köszönöm, hogy válaszoltál, de nemezen múlik a dolog sajnos...Eddig nem is engedte az avr isp I/O-t bekapcsolni, mivel nem volt bekapcsolva az LPT. Erre is az interneten turkálva akadtam rá és ezért a BIOS-ban beálítottam. Most engedi kiválasztani, de amikor nyomok egy "Probe"-t akkor azt írja ki, hogy test failed (ponyprog). Ezért gondolom valami beállítás még mindig rossz lehet. Ezenkívül emlegetnek egy port95NT-t is, amit fel kéne rakni. Fel is tettem, de nem tudom hogy mire való, de így sem megy... Úgyhogy arra kérek valakit, aki tudja hogy miről beszélek, hogy legyen szíves minden beállítást leírni, mint egy óvodásnak. Nagyon hálás lennék...
(#) gabi20 válasza echo11 hozzászólására (») Jún 17, 2010 /
 
Szia!
A port95nt arra szükséges, hogy NT alapú operációs rendszer alatt is tudd működtetni az LPT portot, egyébként nem tudod elérni. Ideraktam az én beállításaimat amit használok

1.JPG
    
(#) TavIR-AVR válasza echo11 hozzászólására (») Jún 17, 2010 /
 
#735003


Ha nem olvasod el a 3. bekezdést.....
Hát van akinek lassabban kell írni.......
(#) Ideiglenes válasza FlyR hozzászólására (») Jún 17, 2010 /
 
(#) Reggie válasza Axel hozzászólására (») Jún 17, 2010 /
 
A nem inicializalt eeprom terulet erteke altalaban 0xFF. (Az adatlapon irak)
(#) Reggie válasza echo11 hozzászólására (») Jún 17, 2010 /
 
Az altalad megadott abran is szereplo 12-2 11-3 osszekoteseket is megcsinaltad?
A ponyprog teszt csak ezt a visszakotest ellenorzi, ha nincsen meg biztosan hibat fog valaszolni. Amennyiben megis megvan, akkor a parhuzamos port kezelessel van valami problema.
(#) echo11 válasza Reggie hozzászólására (») Jún 18, 2010 /
 
Hopp! Ezt elnéztem... Nagyon köszönöm hogy szóltál... Gyorsan ki is próbálom, de addig ha valaki megnézné az itt lévő képet a BIOS-ról , mert kíváncsi vagyok, hogy jó-e ez a beállítás? És még arra is kíváncsi lennék, hogy a port95NT-vel nekem mit kéne csinálnom vagy beállítanom?
Amúgy már kezdem azt hinni, hogy ahhoz hogy ez működjön egy nagyobb csoda kéne, de akkor is próbálkozok, mivel nincs kedvem 5 ezerért venni egy programozót, amit amúgy is egy ilyen STK200-al csináltak (legelőször). Mindenkinek aki válaszolt nagyon köszönöm, de ez még így nem az igazi sajnos...
(#) Hp41C válasza echo11 hozzászólására (») Jún 18, 2010 /
 
Szia!

A BIOS - ben normal vagy PS2 (kétirányú) portot állíts be, az ECP vagy EPP vagy ECP+EPP nem lesz jó (másként működik). Ha XP vagy újabb rendszered van, akkor le kell beszélni a párhuzamos porton való nyomtató keresésről is.
(#) Axel válasza Reggie hozzászólására (») Jún 18, 2010 /
 
Köszi az infót!
(#) echo11 hozzászólása Jún 18, 2010 /
 
Na megcsináltam (az összekötéseket) és így már: "Test OK", de amikor beolvasnám a memóriáját, akkor: "Device missing or unkown device (-24)"... Hp41C kommentjére az lenne a kérdésem, hogy az utolsó mondat azt jelenti, hogy XP=< nem lehet párhuzamos porton programozni?>
(#) totht91 hozzászólása Jún 18, 2010 /
 
Egy kérdésem lenne az AVR-doper programozóval kapcsolatban.
Megépítettem; az Atmega8-ra feltöltöttem a hex-et, fuse bitek rendben;
de a windows nem látja és kiírja hogy: Az USB-eszközt nem lehet felismerni és a működésben hiba lépett fel.

Valakinek van ötlete mi lehet a baj?
(#) Ideiglenes válasza totht91 hozzászólására (») Jún 18, 2010 /
 
Mit mértél rajta idáig?
Következő: »»   236 / 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