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   130 / 840
(#) Topi válasza Sir-Nyeteg hozzászólására (») Jún 13, 2009 /
 
Jó-jó, de eddig sem kellett adatlapot bogarászni fontosabb paraméterek választásánál.
Csak ki kellett volna nyitni a szemet, az Atmel oldalán.

Bővebben: Link

Sőt, a konkrét paraméter választás még rosszabb is mint a parametrikus sorrendezett lista, mert a sorrendezett listában az ember látja egyből a kompromisszum lehetőségeket.
Beixeled hogy 2 timer kell és akkor nem ad ki olyat, aminél mondjuk három timer van, pedig lehet hogy az épp jobb lenne árban pl.
(#) Sir-Nyeteg válasza Topi hozzászólására (») Jún 13, 2009 /
 
Az biztos, hogy mindegyik esetben két ablaknak minimum nyitva kell lennie. A bolti árlista/elérhetőség, és a datasheet/alábbi oldalak egyike.
TavIR-AVR:
Az viszont igaz hogy ha pl 4db PWM-re van szükségem, akkor ne csak a 4db-osakat irja ki, hanem mindet, ami nekem megfelelhet, esetleg ez egy bepipálással legyen elérhető
(#) TavIR-AVR válasza Topi hozzászólására (») Jún 13, 2009 /
 
Köszönöm a tippeket, beépítve...
- Device sorbarendezve.
- paraméteres keresés kisebb, nagyobb, egyenlő státuszokra (memóriák, sorosportok...
- fejléc javítva.
- gombok megcserélve.


Az atmel a saját oldalán a Mega és a Tiny egész táblázat, de nem szűrhető Egyéb AVRek meg ki is maradnak....



Köszönöm a segítséget!
(#) vzoole válasza TavIR-AVR hozzászólására (») Jún 13, 2009 /
 
Ha lenyomom az elküld gombot akkor nálam kitörlődik minden beállított paarméter. És ha még finomítani akarok a keresésen akkor mindent megint ki kell válogatni.
IE7
(#) vtsoftware válasza Topi hozzászólására (») Jún 13, 2009 /
 
Nos szereztem a biztonság kedvéért 3,6V-os zenert, viszont van egy kis probléma.
Ismeretlennek véli a vista. Driver-reinstall megvolt.
Az egészet lényegében azért kezdtem el mert egyszerűen meghótt' a Doperem, gondoltam nem-e az ATMega8 ment tönkre. Kicseréltem, jelenleg úgy vélem hogy egy próbapaneles STK200-as égetővel sikerült ráégetni a programot, de ebben nem vagyok biztos.

Hogy tudok megbizonyosodni arról hogy az ATMega8-on rajta van a program, azon a lehetőségen kívül hogy leolvasom róla, mert ebben az STK200-asban nem nagyon tudok bízni...
Esetleg méréssel? Ötlet?

Szerk.: most nézem az STK200 szerint PonyProg2000-el rajta van a program.
Mi mehetett tönkre szerintetek az IC kivételével a panelen attól hogy egy helyben volt kb. 2 hétig?
Azért atnézem a nyákot, biztos ami biztos...
(#) Tomi20 hozzászólása Jún 15, 2009 /
 
Sziasztok

Próbálkoztam egy LCD életre keltésével ATmega16-tal. Az oldalon található drivert próbáltam beégetni. A Header fájl bent van, csak egy hibát ír ki (kép). Valami nincs definiálva a main-ben... AVR Studio-ban próbálom fordítani. WinAVR-rel sem sikerül, hiba üzenetben Atmega8-at ír valamiért, pedig mindenhol átállítottam már 16-ra. A makefile-t is módosítottam már.
Köszi a segítséget.

hiba.jpg
    
(#) gtk válasza Tomi20 hozzászólására (») Jún 15, 2009 /
 
Kellene latni, hogy hogyan raktad ossze a projektedet.
Driverbol a .c .h fileok legyenek bent a projekt konyvtarba.
Driverbol csak a .h filet includolod be " " .
Hogy nez ki az LCD_proba2.c fileod? ebben van a main? A main-t beszurhatnad code = c vel ide.

Mod:
A Makefile -ban ird at az SRC bejegyzest. Ezt:
  1. # List C source files here. (C dependencies are automatically generated.)
  2. SRC =


Ide jon az LCD_proba2.c (az amelyikben a main van) es a simple_driver.c file szokozzel elvalasztva) Save. Ujraforditas.
(#) Tomi20 válasza gtk hozzászólására (») Jún 15, 2009 /
 
Köszönöm a válaszod
Találtam hibákat, kicsit még küzdök vele, csak jobb az ha "egyedül" jövök rá (nameg nem égetem magam a sok marhasággal amit műveltem). Ha mégsem boldogulok, jelentkezem.
(#) gtk válasza Tomi20 hozzászólására (») Jún 15, 2009 /
 
A lenyegi hibat azert beirhatod, hatha masnak majd jol jon kesobb. Tevedni meg barki tevedhet.
(#) Tomi20 válasza gtk hozzászólására (») Jún 15, 2009 /
 
Csak nem jutottam sokra. Azt még hozzá kell tennem, hogy nemrég kezdtem az AVR-ekkel való ismerkedést, csak próbálom megérteni a programokat. A main2.c-t importáltam be, ezen jóformán nem is módosítottam semmit (ezért nem is rakom be, ugyan az) Header fáljként természetesen a "simple_driver.h"-t raktam be. A Mafefile-t csatolom. Most úgy próbáltam fordítani, hogy AVRStudio-ban a külső Makefile-ként beimportáltam. Ekkor ugyanazt a hibát kapom WinAVR-ben, mint AVRStudio-ban.
(#) gtk válasza Tomi20 hozzászólására (») Jún 15, 2009 /
 
Idézet:
„A main2.c-t importáltam be,”
Ezt nem ertem, az SRC-nel LCD_Proba2.c -t adtal meg..
Eeloszor azt kellene meg probald leforditani ami a zipben keszen van, aztan modositgatni..
(#) zombee válasza Tomi20 hozzászólására (») Jún 15, 2009 /
 
Ha nem megy, elküldöm az én változatomat. Saját magam írtam meg C-ben és assemblerben is az LCD vezérlését.

(#) zombee hozzászólása Jún 15, 2009 /
 
Sziasztok!

Mennyi órajel ideig tart az alábbi interrupt?

AnalogIRQ:
push temp ;2 clk
in temp, SREG ;1 clk
push temp ;2 clk
inc cnt0 ;1 clk
AnalogIRQ_end:
pop temp ;2 clk
out SREG, temp ;1 clk
pop temp ;2 clk
reti ;4 clk

Kicsit átalakítottam az eredetihez képest, de a lényeg itt van. Összeszámolva 15 órajelet "fogyaszt", ehhez még hozzájön az interrupt-táblában lévő "rjmp AnalogIRQ" rész, ami 3 órajel. Egy stopperrel mérve + kiszámolva hibahatáron belül 20 órajel. Mit rontottam el? Hol eszi meg a +2 órajelet?
(#) Tomi20 válasza zombee hozzászólására (») Jún 15, 2009 /
 
Szia

El tudnád küldeni a Te verziódat? Kíváncsi lennék rá.
Nem igazán akar lefordulni az eredeti driver sem. Valamit biztosan Én rontok el. Küzdök tovább, nem adom fel...
(#) Sir-Nyeteg válasza zombee hozzászólására (») Jún 15, 2009 /
 
Engem is érdekelne C-ben
(#) gtk válasza Tomi20 hozzászólására (») Jún 15, 2009 /
 
Van egy hiba az egyik main-ben, az a bizonyos pontosvesszo a tombnel, amirol korabban itt volt szo. (main.c //custom characters -nel a negyedik sor vegen) torold ki, lehet hogy emiatt nem fordul le. Mi a hibauzenet? Nincs kulon verziom, az van ami az oldalon is fent van.
(#) zombee válasza Sir-Nyeteg hozzászólására (») Jún 15, 2009 /
 
Elküldöm a saját változatom, amit én készítettem el.
Az egész projektet küldöm, hogy legyen egy nagyon egyszerű példa a használatára.
Lényegében a 0-végű sztringeket lehet kiírni vele...

Jelenlegi beállítás szerint a PORTA van beállítva az LCD portjának.
Most nem írom le a részleteket, nézd meg a header fájl első 20 sorát, megtalálod mit hová kell kötni.
A forrás a HD44780 kompatíbilis LCD-kijelzőkhöz készült, a legtöbb karakteres LCD ezt a protokollt használja.

A programom a 4 vezetékes módra van kihegyezve, tehát 6 lábat foglal el a PORTA - ból: 0,1,2,3,6,7

Elvileg átrakhatod másik portra is, de nagyon fontos, hogy azonos porton legyen a D4-D7 és az RS ill. az E, a D4-D7 kivezetések a mikrokontrolleren egymás mellett legyenek(logikailag), és a D4-től növekedjen.
Ez utóbi azért fontos, mert nem bitenként hanem félbájt-onként íratom ki az adatokat.

És még ami fontos:
A project options-nál állítsd be az órajelet(jelenleg 12MHz), mert ha nem teszed, katyvaszt fogsz látni vagy nagyon lassú lesz a kiíratás! Ja, és csak ATMEGA16-on használhatod...

KERESKEDELMI CÉLOKRA NEM HASZNÁLHATÓ!
(#) ggl hozzászólása Jún 15, 2009 /
 
szia TOPI

nagyon jók a kapcsolásaid. meg is szeretném csinálni a ventiszabályzót.
sajnos nem használok cét, igy nem tudom elkésziteni a programot sem. az avr forditom sincs. nem osztanád meg velünk a .hex progit, hogy a boltban felprogramoztathassam a controllert?

előre is köszi.
GGL
(#) Tomi20 válasza zombee hozzászólására (») Jún 16, 2009 /
 
Szia

Próbálkoztam a Te drivereddel is, lefordul rendesen, átírtam 12MHz-re-is. Valamiért mégsincs semmi a kijelzőn. (kontraszt állítással az első sort lehet maximumra állítani) A bekötés is jó szerintem, de azért leírom hogy kötöttem be:

RS=> PA6
RW=> 0V
E=> PA7
DB4=>PA0
DB5=>PA1
DB6=>PA2
DB7=>PA3

Tápfeszültségek is rendben vannak.
A Fuse bit-eket hogy kell beállítani? Oszcillátort belső 8MHz-re állítottam.
(#) zombee válasza Tomi20 hozzászólására (») Jún 16, 2009 /
 
Ha az AVRStudio szerint 8MHz belső oszcillátor a FUSE, akkor jónak kell lennie, de a projekt beállításoknál értelemszerűen 8 milliót kell megadni(Hz-ben!).

Legyen int.RC.osc.8MHz,+6CK + 64ms Startup Time(legutolsó az int RC osc-ok közül), BODLEVEL pedig 2.7V.
A többi nincs rá hatással.

Ha a project options-nál nagyobb számot adsz meg akkor sincs nagy baj, max lassabb lesz. de 8 milliónál kevesebbet semmiképp!

Ha a kontraszt állítással csak az első sort tudod állítani, azt jelenti hogy nem inicializálódott a kijelződ. Ugyanis alapból 2(és 4) soros módra van kihegyezve. Ha nem inicializálódott, akkor lehet hogy nagyobb időközöket kér a cucc(állíts 16-30 milliót a projekt beállításoknál), vagy nem támogatja a 4 vezetékes módot, vagy a legrosszabb ha nem HD44780 kompatíbilis...

Még ami fontos, hogy a tápfesz valóben jó legyen, a kontroller RESET lába egy 10k ellenállással legyen a +5V-ra felhúzva. Nekem így 3 féle különböző LCD-vel megy, csak a csatlakozásokat kellett megoldanom. Azért a kontraszt nagy gazember tud lenni, azt is érdemes tekergetni...
(#) Tomi20 válasza zombee hozzászólására (») Jún 16, 2009 /
 
Beállítgattam mindent de semmi változás. A kijelző biztos kompatibilis, tokozott HD44780-as IC van rajta. Megtaláltam neten az adatlapját is, képes 4bites módban működni. Mindjárt megpróbálom a reset lábat felhúzni, keresek ellenállást.
(#) Tomi20 válasza zombee hozzászólására (») Jún 16, 2009 /
 
Nem lett jó ellenállással sem Semmi hibát nem ír ki fordításkor, a kijelző is jó helyen van. Mi lehet még a hiba?
(#) zombee válasza Tomi20 hozzászólására (») Jún 16, 2009 /
 
a project options-nál 8000000 a sebesség? próbálj 12000000 - t vagy 20000000 - t beírni.

Az R/W láb és a D0-D3 a földre vannak kötve?

Ja, és tipikus hiba, nem mindegy melyik hex-et töltöd rá. Az AVRStudio megjegyzi melyik hex-et töltse, és másik projektnél is még a korábbi projekt hex-ét akarja áttölteni...
(#) Tomi20 válasza zombee hozzászólására (») Jún 16, 2009 /
 
Jó HEX-et töltök be, eddig nem voltak földön a D0-D3 lábak, mostmár lehúztam, de semmi. RW-is földön van. A projekt beállításnál állítgattam az órajelet, de az is semmi. LED-eket rákötve az adat lábakra villognak, tehát fut a program... Elvileg csak simán a HEX-et kell beégetni, semmi mást. (inkább kérdezek, mert szerintem valami nagyon alap dolgot ronthatok el, ami eszedbe sem jut, mert ezt "mindenki tudja") Köszönöm, hogy próbálsz segíteni.
(#) Sir-Nyeteg válasza Tomi20 hozzászólására (») Jún 16, 2009 /
 
Én ilyenkor szoktam mondani, hogy "nah akkor elölről az egészet"! pl vezetékek nem szakadtak-e meg, jó lábon van-e a vezeték, nem ér-e össze, jó lábat kötöttél össze vele, nem rontottad el? biztos hogy jó filét másoltál be? Jó gép előtt ülsz? Jó e a procid tipusa, stb stb... Bármi lehet innentől kezdve...
(#) zombee hozzászólása Jún 16, 2009 /
 
igen, bármi lehet.
Jah, és nem árt ha WinAVR is fel van telepítve.

Ha villognak a led-ek akkor jó, mert villogniuk kell.
Valóban, innentől bármi lehet. ATMEGA16-ra vín írva, de említetted már hogy épp arra kell. Másik lehetőség a kijelző, egyes kijelzőknél másképp van a lábkiosztás. Volt egy ilyen nálam, annál át kellett alakítani a kivezetéseket.

Nálam:
1: GND
2: +5V
3: kontraszt(2.2kOhm-al földre)
4: RS (PA6)
5: RW(föld)
6: E (PA7)
7-10: D0-D3 (föld)
11-14: D5-D8 (PA0-PA3)
15-16: háttérvilágítás

breadboardon teszteled? ott is jónak kell lennie mert én is azon fejlesztettem ki még anno
(#) AMD hozzászólása Jún 16, 2009 /
 
Sziasztok.
Összedobtam a következő oldalon lévő egyszerű AVR programozót. ATmega8 PDIP tokozású AVR-t akartam vele programozni. Összekötöttem az AVR-t és a programozót, rádugtam a számítógép LPT portjára majd egy LM317-es tápról +5V-ot adtam neki a VCC és a AVCC lábára. Bascom-al programoztam fel, majd bezártam, újra megnyitottam és szépen beolvasta a kódot. Na mondom ezzel is megvolnék, éppen húznám le a programozót a gépről, akkor látom hogy az LM317-es tápot nem dugtam be a konnektorba. Akkor most sikeresen felprogramoztam vagy nem?
(#) Tomi20 válasza zombee hozzászólására (») Jún 16, 2009 /
 
Igen, ugyan ez a lábkiosztása az én LCD-mnek is. Találtam adatlapot róla, onnan néztem a kiosztást. Igen, breadboardon dugtam össze. Már jó párszor átnéztem mindent. WinAVR is fent van. Lehet hogy megpróbálom azzal fordítani, és égetni hátha jó lesz.
(#) gtk válasza AMD hozzászólására (») Jún 16, 2009 / 1
 
Nem tudod leellenorizni hogy sikeres-e a programozas?
Programozd ujra, legyen tap is
Sir-Nyeteg
Idézet:
„Jó gép előtt ülsz?”
Ez nagyon nagy volt
(#) anklar hozzászólása Jún 16, 2009 /
 
Sziasztok a következő a problémám, a nyolc lábbal című sorozatból meg akartam építeni a csipogót csak egy atmega644-el. Öszzeraktam a kapcsolást, fel a kódot rája meg minden, devalami nem stimmel a frekvenciával, sokkal lasabban villog a led mint a videón és hang sem jön ki belőlle mi lehet a gond? Az elején a kódnak ott van hogy

  1. #define F_CPU=8000000UL //8MHz


külön kristály nincs rá kötve, és a gyári beállításokat se piszkáltam.
Következő: »»   130 / 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