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   272 / 839
(#) Tomi_Bp válasza Topi hozzászólására (») Okt 26, 2010 /
 
A csati jó. A kábel tény, hogy 9 erű, de a 10. van csak kihagyva. A cél uC egy ATMega8, ami 16Mhz-en ketyeg. de próbáltam már az előzőekben leírtak szerint ATMega16-ost is, ami belső RC tagos...
Amúgy a mellékelt képen látható 10 eres szalagkábeleket szoktam használni... Mással megy, mint a cél uC, mint a programozása, a kábelek is...
Topi. Tényleg invertálnom kellene a közvetlen kábeles esetnél a RESET és a MISO jeleket?
(#) Topi válasza Tomi_Bp hozzászólására (») Okt 26, 2010 /
 
Valamit nem nagyon értek. Az ISP és a reset a proci két átellenes oldalán van (Bővebben: Link). A fotódon meg mindent egymás melletti lábra kötöttél!
Azaz eszerint a MOSI az RXD-n van, MISO a TXD-n, az SCK meg INT0-n.

Reset egyes láb, SCK-MISO-MOSI meg az IC másik oldalán van. GND is középen. Valahogy nem jó így a bekötés.

A megfelelő lábakat kösd össze! Ami a programozó kimenetén MOSI, az a cél processzoron is MOSI. És így tovább...
Te most a programozó SPI-jét a cél processzor sorosportjába kötötted be. Ez így értelmetlen.
(#) Tomi_Bp válasza Topi hozzászólására (») Okt 26, 2010 /
 
Ez a programozó hátoldala! http://www.hobbielektronika.hu/kapcsolasok/files/196/avr_isp_sch.jpg szerint forrasztottam, mely szerint a target ISP a C PORTon található... nem?
(#) Topi válasza Tomi_Bp hozzászólására (») Okt 26, 2010 /
 
Jaah! Hogy ez a programozó.

A RESET és a MISO igen, invertálásra szorul. Ezt jól mondják a többiek.
Ha megnézed a kapcsolást, a buffer van inverterként használva, mert a bemenetén GND van.

Dobd ki kérlek belőle a puffer IC-t, és használd azt amire az áramkör tervezve lett! Vagy legvégsőbb esetben cseréld kisebbre a kimeneti ellenállásokat (10k helyett 1K).
(#) Topi válasza Topi hozzászólására (») Okt 26, 2010 /
 
Ja, és a kérdésemet még mindig fenntartom. A cél processzor kap tápfeszültséget?
(#) Tomi_Bp válasza Topi hozzászólására (») Okt 26, 2010 /
 
MŰKÖDIK!!!

Kicseréltem a 74126PC-t 74HC126-ra és működik!!!
Köszönöm neked Topi és mindenki másnak is aki segített, válaszolt!
(#) douggutaby válasza Reggie hozzászólására (») Okt 26, 2010 /
 
Isten vagy! Nagyon úgy néz ki ez volt a gond. Én meg az eeprom-ot szidtam napok óta. Nagyon köszi.
(#) Tomi_Bp válasza Topi hozzászólására (») Okt 26, 2010 /
 
Topi! És erre van valami magyarázatod? Az egyik PrintScreen az egyik programozómmal a másik a másikkal készült...
(#) Reggie válasza douggutaby hozzászólására (») Okt 26, 2010 /
 
Nincs mit igazan.
(#) Topi válasza Tomi_Bp hozzászólására (») Okt 26, 2010 /
 
Good2: Ahányszor fogod a read-et megnyomni, annyiszor fogsz más értéket kapni... Ez lehet hogy még puffer gond... Azon az egyen.
(#) Tomi_Bp válasza Topi hozzászólására (») Okt 27, 2010 /
 
Mindegy! Nekem így már jóóó!!! Köszönöm mégegyszer!
(#) Robi98 hozzászólása Okt 30, 2010 /
 
Siasztok!
Lenne egy egyszerű kérdésem.
Nem tudom ,hogy kel egy mikrokontroller tartalmát programozó segítségével olvasni,vagy kitörölni ( és újraírni) avr studio4-gyel.


Előre is köszi!
(#) Ricsi89 válasza Robi98 hozzászólására (») Okt 30, 2010 /
 
Ha lehetséges egyáltalán, akkor ki lehet szedni, de miért is? Ha ugyanazt akarod bele visszaírni, akkor miért kiszedni? Ha valami gyári eszköz, akkor tuti le van védve a tartalom, tehát kiolvasni nem lehet.
Szerk.: Egyébként meg AVR Studio-val csatlakozol a programozóhoz és ott a Program fülön a "flash" résznél rákattintasz a "Read" gombra és kiolvassa.
(#) Robi98 hozzászólása Okt 30, 2010 /
 
A mikrokontrollerbe( jelenleg Attiny45 ) egy másfajta programot szeretnék írni, egy maszek programozóval.
Köszi!
(#) Ricsi89 válasza Robi98 hozzászólására (») Okt 30, 2010 /
 
Szerintem neked nem ártana elolvasni Topi cikkét az alapokról. Bővebben: Link
Itt megtalálod a programozás menetét is és pár alap programot is.
(#) Robi98 válasza Ricsi89 hozzászólására (») Okt 30, 2010 /
 
Köszi!
(#) augre válasza Robi98 hozzászólására (») Okt 30, 2010 /
 
Nagyon egyszerű

csatlakozz az avr-hez

youtubon van róla videó, de könnyű meg találni
egy ilyen szürke ikonban van, h.: con

és ott kitudod választani, h. read flash és kiválasztod a .hex fájl helyét és kész is.

writw hasonlóképpen
(#) Robi98 hozzászólása Okt 30, 2010 /
 
Belinkelnéd a videót?
Köszi!
(#) gergobmwe30 hozzászólása Okt 30, 2010 /
 
Sziasztok.

Azt szeretném kérdezni, hogy mi a megoldás arra, hogy a programot Pascal-ban tudjam megírni?
Találtam progit, MikroPascal Pro for AVR, de ezzel valahogy nem sikerül a programozómmal kommunikálni. (Hobbielektronikás)
Forítást meg hex-be nem találok benne.
Nem tudtok olyan progit, ami Pascalos, és tudja kezelni az égetőm? Vagy fordító esetleg?

Ja, és ebben az AVR.ben igen kezdő vagyok, kb. 1 hetes. Programozni meg csak pascalban tudok valamilyen szinten....

Köszi a segítséget előre is!!!
(#) Ricsi89 hozzászólása Okt 30, 2010 /
 
Helló!
Kapok egy error-t egy olyan részre, amit adatlapból szedtem ki. Ez lenne a hiba: "../vfdclock.c:288: error: called object '0' is not a function"És itt a kód, amiben hibát talál.

  1. void EEPROM_write(unsigned int ucAddress, unsigned char ucData)
  2. {
  3. /* Wait for completion of previous write */
  4. while(EECR & (1<<EEPE))
  5. ;
  6. /* Set Programming mode */
  7. EECR = (0<<EEPM1)|(0<<EEPM0)
  8. /* Set up address and data registers */
  9. EEAR = ucAddress;
  10. EEDR = ucData;
  11. /* Write logical one to EEMPE */
  12. EECR |= (1<<EEMPE);
  13. /* Start eeprom write by setting EEPE */
  14. EECR |= (1<<EEPE);
  15. }

Itt a hiba az EEAR = ucAddress; sorra vonatkozik. Ebben mi a rossz? Jah és Attiny24-ről van szó.
(#) gtk válasza Ricsi89 hozzászólására (») Okt 30, 2010 /
 
Az a rossz benne, hogy az elozo programsor nincs lezarva.
(#) Fizikus válasza Robi98 hozzászólására (») Okt 30, 2010 /
 
Lehet hogy erre gondolt:
Bővebben: Link
(#) Ricsi89 válasza gtk hozzászólására (») Okt 30, 2010 /
 
Hopp tényleg. Akkor az adatlapban is hibásan van.
(#) Reggie válasza gergobmwe30 hozzászólására (») Okt 30, 2010 /
 
Igazan jo megoldas nincsen, ITT kitargyaltak, de a legjobb ha idovel elhajlasz a C vagy assembly fele.
(#) Reggie válasza Ricsi89 hozzászólására (») Okt 30, 2010 /
 
Ha irsz egy mailt atmelnek, akkor javitjak.
(#) v alaki hozzászólása Okt 31, 2010 /
 
Sziasztok,

Előre szólok, hogy irgalmatlanul egyszerű lesz a válasz, de két napja nem jövök rá mi a gond. Valszeg valami szintaktikai hiba, de a hajam jön ki tőle. ...és ezért a kevésért már igazán kár lenne...
Szóval a lényeg, csak ennyit akarok beírni,
  1. DDRB |  = (1 << LCD_RS);                // PORT irány beállítása kimenet
  2.         PINB |  = (1 << LCD_RS);                // PORT beállítása kimenetnek alapon adat írásra

a válasz a AVR Stúdiótól:
Idézet:


../data_logger_tth.c:129: error: expected expression before '=' token
../data_logger_tth.c:130: error: expected expression before '=' token

A szemem kiesik mi lehet a baj. Már mindent átneveztem, (hátha valami foglalja a nevet), minden hova tettem szóközt, tab-ot, bármit. ATMEGA8ról van szó.
(#) Ricsi89 válasza v alaki hozzászólására (») Okt 31, 2010 /
 
A második sorba PINB helyett szerintem PORTB kellene.
(#) v alaki válasza Ricsi89 hozzászólására (») Okt 31, 2010 /
 
gr98 köszi a válszt, de az nem csak a felhúzó ellenállás bekapcsolásához kell? (Azt első körben nem akartam használni.)

Amúgy mondtam, hogy egyszerű lesz.
Kitöröltem az összes szóközt... és jó lett!
Aztán persze vissza játszottam bele mindenhová, és csodák csodája csak a _|_ és a = jel közé rakva sértődik meg.
Köszi az együttgondolkodást!
(#) augre válasza Robi98 hozzászólására (») Okt 31, 2010 /
 
(#) Ricsi89 válasza v alaki hozzászólására (») Okt 31, 2010 / 1
 
A felhúzó ellenállást csak akkor lehet bekapcsolni, ha az adott láb bemenetre van állítva. Itt kimenetre állítottad és ezzel az értékét tudod változtatni.
Következő: »»   272 / 839
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