Keresés: 
 Bejelentkezés
Nick:
 
Jelszó:
 
 
 
   
» Elfelejtettem a jelszavamat :'(
» Regisztráció
 Fórum témák
» Több téma
 Frissek
RSS hírforrások
  Hírek.rss
  Fórum.rss
  2012. Máj, 24. Csü
19:12:15
  Jelenleg 625 fő olvassa az oldalt
Fórum » Pontra menő témák » AVR - Miértek, hogyanok... »
AVR - Miértek, hogyanok...  
Témaindító: pakibec, idő: Márc 11, 2006
Témakörök
Mikroprocesszorok » ATMEL processzorok
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 Méret:     408 / 443     
(#1162042) szdani Válasz • Feb 9, 2012
hali
LCD-re szeretnék ékezetes karaktereket kiírni és az lenne a kérdés hogy van valami program ami lefordítja a bináris számokat hexadecimálisra? Vagy van külön táblázat? mert neten nemtaláltam. 44780 kompatibilis kijelző.

(#1162061) Suncorgo válasza szdani hozzászólására (#1162042) Válasz • Feb 9, 2012
Windows számológép, nézet, programozó. Ez átváltja.

(#1162083) szdani válasza Suncorgo hozzászólására (#1162061) Válasz • Feb 9, 2012
Köszönöm szépen

(#1162088) Tetye válasza zombee hozzászólására (#1161847) Válasz • Feb 9, 2012
Most minden(M8,M168,Tiny2313) IC-re ezt írja:

(#1162189) zombee válasza Tetye hozzászólására (#1162088) Válasz • Feb 9, 2012
mit is?

(#1162283) Reggie válasza zombee hozzászólására (#1162189) Válasz • Feb 9, 2012
Errol a pokoli operator jutott az eszembe

(#1162443) nolex Válasz • Feb 9, 2012
Megőrülök...
Egyszerűen nem tudom levenni a PWM jelet egy Atmega 48/168-asról. 20MHz-es kvarcot használok, ezzel a beállítással:
  1. #include <avr/io.h>
  2. #include <util/delay.h>
  3. //=========================DEFINES
  4.  
  5. //=========================MACROS
  6.  
  7. //=========================GLOB.VAR.
  8.  
  9. //=========================PREDEC
  10. void init(void);
  11. //=========================MAIN
  12. int main(){
  13.  
  14. init();
  15. for(;;){
  16.  
  17.  
  18. }
  19. }
  20. //=========================FUNCS
  21. void init(void){
  22. TCCR1A=(1<<COM1A0)|(1<<COM1B0)|(1<<WGM11);
  23. TCCR1B=(1<<CS10)|(1<<WGM13)|(1<<WGM12);
  24. ICR1=0x0066;
  25. OCR1A=0x0023;
  26. }
  27. //=========================ISR

Adatlapot mellékeltem.adatlap

(#1162535) Fish Válasz • Feb 9, 2012
Sziasztok!

Egy kis kitérő: van egy lézernyomtató típus, Konica Minolta C1600 ez a toner "csippje" hogyan kommunikál a nyomtató ezzel a csippel, amiről képet is illesztek be? A 1-wire hoz sok az érintkezők száma, az I2Chez meg kevés.

Köszi a segítségeteket
» A fájlok letöltéséhez be kell jelentkezned! «

(#1162564) nolex válasza nolex hozzászólására (#1162443) Válasz • Feb 9, 2012
Már megvan, a Data Direction registert nem állítottam be.

(#1162582) zombee válasza Fish hozzászólására (#1162535) Válasz • Feb 10, 2012
Tudod hogy egyáltalán mit beszélsz? Olyan IC-t még sose láttam aminek "valamennyi+fél lába" van...

1: Az 1-wire 1, az I2C 2 lábat használ(+cím ha van).
2: Az Atmel sehol nem használ 1-wire-t
3: A lábszám nem támpont, 8 lábú IC akár SPI-n is kommunikál ami 4 lábat is lefoglalhat...

(#1162588) kovacsj válasza szdani hozzászólására (#1162042) Válasz • Feb 10, 2012
Átszámítani sem nehéz. Csoportosítsd őket négyesével!

1111 0011 = F3
1010 0101 = A5

(#1162594) trudnai válasza szdani hozzászólására (#1162042) Válasz • Feb 10, 2012
Ez a tablazat is hasznos lehet, ASCII tablazat is meg hex konverter is, igaz csak 127-ig. Pl 'A' betu: Oszlopban 4, sorban 1, azaz hex 41. Oszlopban latod, hogy '100', sorban, hogy '0001', tehat binarisan 0100 0001...
» A fájlok letöltéséhez be kell jelentkezned! «

(#1162603) Fish válasza zombee hozzászólására (#1162582) Válasz • Feb 10, 2012
Bocsi, lehet hogy nem voltam világos ,de nem az ICről beszéltem,amikor azt mondtam, hogy I2Chez kevés, '-wire hoz sok, hanem ennek a kis nyáknak a másik oldalára, ugyanis ha megnézed a képek, ott láthatod. hogy három érintkező sáv van. A 1-wire hoz kettő érintkező kellene, (pl a HP P1105 "tonercsipp" 1-wire) az I2c-hez meg 4 kivezetés (pl Canon IP4600 ) .de ezen a kis panelol (ezt értem tonercsipp alatt) 3 érintkező-sáv van.

(#1162634) zolee1209 válasza Fish hozzászólására (#1162603) Válasz • Feb 10, 2012
Lehet, hogy valamiről nem tudok, de az 1-wire kommunikációhoz miért lenne sok a 3 érintkező? Táp két érintkező, a harmadik pedig a busz...

(#1162755) Axel válasza szdani hozzászólására (#1162042) Válasz • Feb 10, 2012
Szia!
Jó pár átváltó alkalmazás van a neten is. Például itt is van egy ami vált mindent mindenbe ami kellhet.

(#1162894) gtk válasza zolee1209 hozzászólására (#1162634) Válasz • Feb 10, 2012
Hat attol fugg. iButtonnal sincs 3 lab.

(#1162900) nolex Válasz • Feb 10, 2012
Az alábbi beállítás 9 bites PWM, de nem működik, miért? 20mhz-es kvarcot használok 22pf-os kondikkal.
  1. TCCR1A=(1<<COM1A0)|(1<<COM1B0)|(1<<WGM11);
  2. TCCR1B=(1<<CS10)/*|(1<<CS11)*/|(1<<WGM12);
  3. OCR1A=0x0030;
  4. DDRB =(1<<PB2)|(1<<PB1);

adatlap
» A fájlok letöltéséhez be kell jelentkezned! «

(#1162948) jodri2003 Válasz • Feb 10, 2012
Atmega 128-as processzor programozásánál a fuse biteket ami a külső kristályról működést biztosítja, rosszul állítottam be. Így most nem érem el a programozón keresztül (AVRISP MK II). A processzort újra hogyan érhetem el?
Köszi

(#1162950) nolex válasza jodri2003 hozzászólására (#1162948) Válasz • Feb 10, 2012
mit állítottál el? Attól függ.

(#1162982) zombee válasza jodri2003 hozzászólására (#1162948) Válasz • Feb 10, 2012
Először próbálj meg egy minimum 1MHz-es jelet adni az XTAL1 lábra és úgy próbáld meg ISP-vel!
Ha nem megy, de a JTAGEN-t még nem piszkáltad akkor JTAG ICE.
Ha már kikapcsoltad akkor HVPP Fusebit Doctor(vajon támogatja?), végső esetben AVR-Dragon vagy STK500,
ez utóbbiból gyári, illetve HVPP-képes klónok jöhetnek szóba. Sajnos HVPP esetében 20 vezetéket kell bekötnöd, míg ISP és JTAG esetében maximum 6-ot kell...

(#1162991) zombee válasza Fish hozzászólására (#1162603) Válasz • Feb 10, 2012
Bocsánat, már egy kicsit késő volt, álmosan néztem meg. Most mást fogok mondani: De hisz ez egy ATTiny45!

Tehát nem EEPROM, hanem mikrokontroller. Be van égetve egy program, és azzal kommunikál.
Valószínűleg ez számlálja a lapokat(saját EEPROM-ban le is tárolja) és a eredetiségét is biztosíthatja.
Ha utántöltöd a tonert, vagy utángyártottra cseréled, akkor egy bizonyos lapszám fölött nem engedi.

Szerintem a protokoll egyedi és csak 1 vezetéket használ. Aszinkron átvitel oda és vissza.
De lehet hogy csak vissza(elküldi a lapszámot), és minden bekapcsoláskor 1-el növeli.
A kristály is aszinkron átvitelt sejtet, ahhoz pontos időzítés kell hidegben-melegben!

De van még egy lehetőség I2C-re is mert a csavarhelyek is galvánozottak, az is érintkezhet...

Én a helyedben megnézném hogy a táplábak melyik 2 kimenetre mennek, a harmadikat pedig rákötném
egy MAX-232 Rx bemenetére(esetleg USB-re MCP2200 vagy FT232 közvetítésével). Egy terminálban(pl. TeraTerm) pedig nézném hogy miket bekapcsoláskor küld, persze a baud rate meg egyebekkel jáccani kell. Ha már érthető a logika, lehet hogy egy "körbeszámoltatással" lehet frissíteni.

(#1163176) mzozo95 Válasz • Feb 10, 2012
Sziasztok!

Lehet hogy csak az én kezdő butaságom volt, rájöttem, hogy nem a programba kell írni az oszcillátor frekvenciáját, hanem az égető résznél kell beállítani, ezzel szívtam egy hetet, mert nem azon a frekvencián pörgött az atmega8, mint én akartam, ma este jöttem erre rá örömünnep közepette...

Tehát másoknak is mondom, akinek esetleg hasonló gondja lenne, mellékeltem egy képet, az avr studio 4 nél agy kell frekvenciát állítani!
» A fájlok letöltéséhez be kell jelentkezned! «

(#1163197) brugo Válasz • Feb 10, 2012
Miért olyan szőrnyü drága egy JTAGICE-MK2 ?

(#1163223) sgt válasza edison14 hozzászólására (#1161275) Válasz • Feb 10, 2012
Ez számomra új elgondolás.

Mi ezt úgy csináltuk, hogy különböző osztók között kapcsolgatunk éppen a mérésnek megfelelően. Az AD ref fesze pedig minden esetben állandó vagy az osztók úgy vannak kiszámolva, hogy az általunk kitalált max bemeneti feszültség az osztó után pont az AD-re köthető legnagyobb feszültséggel egyezzen meg. Ezután tudjuk az AD felbontást, és hogy mekkora a legnagyobb feszültség, amiből ki lehet számolni, hogy az AD által adott érték valójában mekkora feszültségnek felel meg.

Maga a beszabályozás úgy szokott történni (ha jól tudom), hogy a műszerre rákötnek egy jó pár nagyobb pontossági osztályú etalont, majd összehasonlítják az elvárt és a mért értéket. (ez eddig kalibrálás) Majd analóg módon (trimmer ellenállás stb..), vagy digitális módon (korrigálási érték megadásával/módosításával) addig addig állítgatják amíg az elvárt bizonytalansági tartományon belül van.

Ezt otthon úgy tudod megcsinálni, hogy veszel egy feszültség referenciát (meglepően olcsó), és egy kis bemeneti offestű műveleti erősítőt (azaz csak bipoláris jöhet szóba, ami már kicsit drágább) és egy követő erősítőt csinálsz belőle. Rákötöd az áramkörödre és megnézed hogy mekkora az eltérés, és korrigálhatod az AVR-en belül.

Am ma már kb mindenki lesz.rja hogy kalibrálás helyett beszabályozást mondjon. Sajnos .

(#1163225) sgt válasza brugo hozzászólására (#1163197) Válasz • Feb 10, 2012
Szerintem azért, mert szinte minden AVR-t támogat. Microchipnél is az ICD2 meg az ICD3 borzasztó sokba kerül. Sőt ott még normális csatlakozó felületed sincs, mert a telefon zsinór semmire sem jó, és minden méreg drága hozzá. PIC-hez szerintem a PICkit3 a legjobb választás, szinte minden 8, 16 bitest tud, és még néhány 32 bitest is.

(#1163297) Bender Válasz • Feb 10, 2012
Üdv!

AT90CAN128-ban szeretnék bootloadert írni.
bootsz0, bootsz1, bootrst: programmed.
A 0xF000 címről bootol.
Az MCUCR regiszterben az IVSEL bit is 1.
Ha kiolvasom akkor is. JTAG nincs, de ha a bit 1 akkor világít a led
De ha valami megszakítás érkezik (USART0 RX) akkor valamiért a 0x0000 címnél lévő megszakításvektort hívja meg szerintem, mert mindig újrabootol a ketyere. És mivel a UCSR0A RXC0 bit 1 így megint megszakítást érez és végtelen bootloopba kerül. Mi lehet a gáz, hogy nem a bootloader részben lévő megszakításvektorokat használja?

Jaés MEGA162-n is ugyanez történik.

(#1163299) pooler Válasz • Feb 10, 2012
Sziasztok!
Lehet bugyuta lesz a kérdésem, de csak nemrég kezdtem el foglalkozni az elektronikával, az avr-ekkel meg tegnapelőtt
Szóval:
Atmega8 pwm lábáról meghajtható közvetlenül egy normál 16x2 kijelző háttérvilágítása? (természetesen előtéttel, bár ha jól látom bele van építve egy 33 Ωos alapból) Az adatlap szerint 40mA kell neki.
Vagy kell hozzá tranzisztor? Bár nem túl elegáns, de ha elbírná akkor kihagynám.

(#1163312) Suncorgo válasza pooler hozzászólására (#1163299) Válasz • Feb 10, 2012
AVRek IO lábát nem illik megterhelni egy led-nél többel. Szóval ha 20mA-től több akkor kell az a tranyó. Vagy FET (pl BS170).

(#1163318) pooler válasza Suncorgo hozzászólására (#1163312) Válasz • Feb 10, 2012
Akkor ez nem jött be Köszönöm!

(#1163381) zombee válasza pooler hozzászólására (#1163299) Válasz • Feb 11, 2012
Egy LCD háttérvilágítása általában nagyobb áramot vesz fel, a mostanság olcsó és divatos kékek
amin fehérek a betűk, az például 40-50mA-t, amihez egy 68Ohm ellenállás kell 5V-os fesz mellett.

Szerintem elég egyszerű: kell egy NPN tranzisztor open-collector módban, a bázisára meg mehet a PWM!

Következő     408 / 443     
 HEStore.hu
 Hirdetés
TrainModules.hu