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   471 / 840
(#) blackdog válasza mzozo95 hozzászólására (») Aug 26, 2012 /
 
Nincs kőbevésve, hogy neked ki kell írni az PB1-et vagy bármit. Részlet portpins.h:
  1. /* PORT B */
  2.  
  3. #if defined(PB0) && !defined(PORTB0)
  4. #  define PORTB0 PB0
  5. #elif defined(PORTB0) && !defined(PB0)
  6. #  define PB0 PORTB0
  7. #endif
  8. #if defined(PB1) && !defined(PORTB1)
  9. #  define PORTB1 PB1
  10. #elif defined(PORTB1) && !defined(PB1)
  11. #  define PB1 PORTB1
  12. #endif


De a jobb olvashatóság érdekében nem árt. Ezt olvastad már:
Bővebben: Link
(#) blackdog válasza mzozo95 hozzászólására (») Aug 26, 2012 /
 
Ha LCD kezelésre írsz függvényeket szerintem ne vacakolj vele.
Bővebben: Link
Ez nagyon jól használható, paraméterezhető könyvtár. És, ha kell akkor módosítasz rajta.
(#) attila2010 hozzászólása Aug 26, 2012 /
 
Erdekelne az ATMEGA-16 mikroproceszort milyenel lehetne helyetesiteni (egy led kijelzot kelene meghajtson).
(#) TavIR-AVR válasza attila2010 hozzászólására (») Aug 26, 2012 /
 
ATMega16 / Mega32 / Mega164 / Mega324 / Mega644 / Mega644P / Mega128P / Mega16A / Mega32A / Mega164A / Mega164P / Mega164PA / Mega324P / Mega324PA / Mega324A / Mega644A / Mega644PA / Mega128PA.

HEX ha meg van, akkor csak a Mega16A / Mega32 / Mega32A jöhet szóba.
(#) zombee válasza TavIR-AVR hozzászólására (») Aug 26, 2012 /
 
Hááát, a mega32 egyáltalán nem hex-kompatíbilis vele, csak kivéve ha nem használ interruptokat.

Ha csak a lábkompítíbilitás számít: ATMega32, ATMega644, ATMega8535.
(#) TavIR-AVR válasza zombee hozzászólására (») Aug 26, 2012 /
 
Akkor marad:
Mega16 / Mega16A

M16 -> M32 migrálás:
http://www.atmel.com/Images/doc2538.pdf

Sőt M32 az a Bootloader miatt sem csereszabatos...
(#) mzozo95 válasza blackdog hozzászólására (») Aug 26, 2012 /
 
Ez nagyon jó kis cikk, és még egyszerűnek is tűnik a használata...

Letöltöttem az lcd.h állományt innen:Bővebben: Link
és bemásoltam a
Idézet:
„WinAVR\avr\include\avr”
mappába, de amikor az AVR studioban build -elni akarom az lcd_tect.c -t(mellékelve a zipben), akkor rengeteg hibát ír ki a fordító:


Idézet:
„AVR STUDIO 4\projekts\Atmega48\asdel\default/../asdel.c:66: undefined reference to `lcd_init'
AVR STUDIO 4\projekts\Atmega48\asdel\default/../asdel.c:74: undefined reference to `lcd_clrscr'
EAVR STUDIO 4\projekts\Atmega48\asdel\default/../asdel.c:77: undefined reference to `lcd_puts'
//...stb...”


De ha az lcd.c-t is be includézem(ha jól láttam, ebben vannak leírva a függvények) akkor a nem definiált PORTA miatt errorozik, még akkor is, ha beszúrom ezt a sort:
  1. #define LCD_PORT   PORTD


Mit rontottam el? ( a vezérlőm atmega48, ezt is állítottam be a gcc-nek)
Tudna valaki segíteni?
(#) sgt válasza mzozo95 hozzászólására (») Aug 26, 2012 /
 
Nem az include mappába kell tenni, hanem bárhova, csak az a lényeg, hogy az AVR Studioban a projekthez kell adni (bal oldalt), és utána csak a c fájl headerjét kell beincludolni.
(#) mzozo95 válasza sgt hozzászólására (») Aug 26, 2012 /
 
Tehát a h fájlt baloldalon hozzáadom a projekt headerjéhez, és a c-t pedig a projekt sourcejéhez?
Ezen a c-n kívül van még 1 c állomány, az én programom, amiben használom a könyvtár függvényeit, itt nem baj hogy 2 .c file lesz?
(#) sgt válasza mzozo95 hozzászólására (») Aug 26, 2012 / 1
 
A precompilernek a header fájlra van szüksége, mert abban vannak a függvények fejlécei, amit hogy ha valahol meghívsz, akkor ezen a headerön belüli fejléc alapján fogja tudni, hogy hol találja meg (nagyon röviden). Így a header fájlokhoz kell adni a .h fájlt, és mivel ehhez szükséges a definíció is, ezért a .c is be kell tenni még hozzá a source-ok közé. Ezzel lehet strukturálni a programot több fájlra. Példának okaként a GCC 25500 .c fájlból épül fel. Vagyis nem gond ha több source/header fájlod van. Sőt ha nagyobb programokat írsz, akkor bontsd több fájlra bátran! Főleg akkor ha egy általános probléma csinálsz függvényket pl. ez az LCD kezelő .c.
(#) sgt hozzászólása Aug 26, 2012 /
 
Mi okozhatja egy MAX232 IC-nél, hogy ha kiküldök valamit, akkor a 0 és 1 is pozitív feszültség tartományban van? Bejövőt sajnos csak nehezen tudok mérni/tesztelni. Csak annyira van lehetőségem jó formán, hogy azt ellenőrizzem, hogy jött-e valami, az hogy az jó, azt már nem :no: . Nagyon egyszerű oszcim van.
(#) blackdog válasza sgt hozzászólására (») Aug 26, 2012 /
 
Valószínűleg én vagyok a hülye, de nem értem a kérdésed? A 0 miért kellene, hogy negatív tartományban legyen? Miért nem tudod ellenőrizni, hogy mi jött be? Miért nem iratod ki LCD-re a bejött adatot?
Én úgy tesztelek, hogy ami jött az vissza is küldöm és látom, hogy mi a helyzet.
(#) sgt válasza blackdog hozzászólására (») Aug 26, 2012 /
 
Szabvány mondja meg, hogy mi számít 1-nek és mi számít 0-nak. Azért mert buta az oszcilloszkóp, és csak kézzel lehet megállítani. Triggerje is nagyon buta. JTAG ICE clonet építek, ahol nem számoltam azzal a lehetőséggel, hogy pont a soros port nem fog klappolni .

Én is a visszhanggal tesztelek, de ezen megbukott és ezért kezdtem el kutakodni az ok után. Csak most már szinte mindent végig néztem, és nem találom a hiba okát. Minden forrasztásom jó, ami ehhez köthető. Nincs rövidzár sehol ahol kitudtam mérni.
(#) blackdog válasza sgt hozzászólására (») Aug 26, 2012 /
 
Ismerem a szabványt. Mellékelek két képet. A számítógépről küldtem el a hobby szót. Tápfesz 5V.
A mérés az AVR RXD lábán készült.
Nem adtam külső trigger jelet a szkópnak. Storage mode ON, Trigger NORM.
(#) mzozo95 válasza sgt hozzászólására (») Aug 26, 2012 /
 
Blackdog és Sgt köszönöm a segítséget, működik az LCD!
(#) blackdog válasza mzozo95 hozzászólására (») Aug 26, 2012 /
 
Szívesen.
(#) Reggie válasza sgt hozzászólására (») Aug 26, 2012 /
 
A kondikon merjed meg, hogy a negativ feszultseget sikerult-e eloallitania. Szerintem ez lesz a gond. Ha nincs meg, akkor a forrasztasokat es a kondik kapacitasat kell ellenorizni. Ha ez sem segit, akkor feltetelezheto, hogy a kondi vagy az IC hibas.
(#) blackdog válasza Reggie hozzászólására (») Aug 26, 2012 /
 
Igazad lehet. Én az AVR és a MAX232 közötti jelet mellékeltem. Azért nem ártana ránéznie ide is. Ha itt nincs semmi akkor tuti, hogy IC vagy kondi hiba.
(#) trudnai válasza attila2010 hozzászólására (») Aug 26, 2012 /
 
Idézet:
„Erdekelne az ATMEGA-16 mikroproceszort milyenel lehetne helyetesiteni (egy led kijelzot kelene meghajtson).”


LED kijelzore szinte barmi jo aminek van eleg laba (I/O) es ami kaphato is es eleg olcso is szamodra...

Amugy az ATMega16 nem mikroprocesszor! Az egy mikrokontroller amiben mellesleg van processzor is...
(#) blackdog válasza blackdog hozzászólására (») Aug 26, 2012 /
 
Csak, hogy teljes legyen a mérés. "null pontból" felső vonal AVR után +5V. Alsó max232 után - 6V.
Másik képen a két mérési pont együttes jele. Látható a +5V és a kb. +-6V és az is, hogy nem a legzajmentesebb az átvitel, de eddig még nem hibázott.
(#) sgt válasza Reggie hozzászólására (») Aug 26, 2012 /
 
Sajnos nem nyert , mert -8,4 V a V- lábon, és 9 V a V+ lábon, amikor rajta van a rs232-USB átalakító. Mellékeltem egy képet a TX vonalon lévő jelről (MAX232 és az átalakító között). Az uC és MAX232 között 0 - 5 V tartományban mozog, így az jó.

Nem marad más mint az IC cseréje.

TX_jel.jpg
    
(#) blackdog válasza sgt hozzászólására (») Aug 26, 2012 /
 
Ahogy elnézem nincs is olyan gagyi szkópod mint nekem.
Miért nem mérsz az rs232 ic előtt és után dual módban?
Erről tettem fel képet. Egyből látnád, hogy hol a gond.
(#) sgt válasza blackdog hozzászólására (») Aug 26, 2012 /
 
IC csere lesz ebből. Mindenesetre még soha nem méregettem rs232 vonalakat . Így a mai nappal ez is kipipálva.

Hidd el nem olyan jó. Ezeket a képeket is kb 30-jára sikerült ilyen jól elkapni, mert hiába a trigger, a run at once az mint ha nem is venné ezt figyelembe. Nem beszélve arról, hogy 200 ks/s a max mintavételezés, és nem BNC csatis, hanem sorkapocs van...
(#) sikolymester válasza sgt hozzászólására (») Aug 26, 2012 /
 
Kapcsolást mellékelj. Különben csak találgatunk.
(#) blackdog válasza sgt hozzászólására (») Aug 26, 2012 /
 
Ne mond, hogy nem segítettem. Csak megszenvedtél a méréssel. RX eredmény jó TX viszont kuka. Én sem egy perc alatt készítettem a korábban mellékelt képeket. Nehéz volt elcsípni a jeleket pontosan és egyidőben. Az én szkópom még nálad is idősebb. [off]és bízom a tudásodban annyira, hogy feltételezem mindent jól kötöttél és mértél. nincs hibás vagy fordítottan kötött kondi.
(#) sgt válasza sikolymester hozzászólására (») Aug 26, 2012 /
 
Itten van. Elméletileg a gyári kapcsolás.
(#) sgt válasza blackdog hozzászólására (») Aug 26, 2012 /
 
Kicseréltem az IC-t. Most ugrik a majom a vízbe.

Nekem az analóg szkópok mindig is jobban a kezemre álltak. A digitális csúcs szuper meg minden, de nekem az analóg, az analóg. A feelinget nem tudja visszaadni.
(#) sgt válasza sgt hozzászólására (») Aug 26, 2012 /
 
Nem csatolta... pedig csak 1,5 MB. Itt van a lényeg.

MAX232.jpg
    
(#) thomas3 válasza sgt hozzászólására (») Aug 26, 2012 /
 
Lehet, hogy én tudom rosszul de a Dsub9-nek az 5ös lábát nem GND-re szokás kötni?
(#) sgt válasza sgt hozzászólására (») Aug 26, 2012 /
 
A drót szőrű foxi mélyen van elásva, mert most már egyáltalán semmi sincs. Holnap folyt köv.
Következő: »»   471 / 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