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   237 / 840
(#) totht91 válasza Ideiglenes hozzászólására (») Jún 18, 2010 /
 
A kondik jók; nincs zárlat.
Amúgy már egyszer építettem Igor féle infra vevőt és ott sem látta a gépem az eredeti kapcsolást hanem 200ohmot kellett kötni a d- és d+ ra
szerintetek most is azt kellene?
(#) ISF79 hozzászólása Jún 18, 2010 /
 
Sziasztok!

Megcsináltam a Topi féle 8 lábbal első kapcsolását, a 2 ledes villogót.

A probléma az, hogy akármekkora értéket adok meg, a ledek mindig csak kb 7 másodpercenként váltanak, holott a program szerint 1 mp villogási idő lenne.
mi lehet a gond?
(#) Hp41C válasza echo11 hozzászólására (») Jún 18, 2010 /
 
Szia!

Dos és Windows 3.0 - 3.11 nem akart ennyire okos lenni, csak azokat használta, amit felinstalláltak neki. A párhuzamos és soros portokat szadadon lehetett felhasználni. De aztán túlzottan eluralkodott a kényelem kiszolgálása. A plug and play (egyesek szerint: plug and pray) funkióhoz időközönként meg kell nézni, hogy az a lusta felhasználó nem csatlakoztatott-e egy nyomtatót valamelyik párhuzamos porthoz, és ha már egyszer érzékelhető a nyomtató, akkor derítsük ki a típusát... Aztán jön a "Window$ új hardvert talált, de nem ismeri, nem találja a meghajtóprogramot. Tedd be a lemezt..." Ezért a 98 csak kicsit, a 2000 már jobban, a XP mindig keresi az eszközöket...
A probléma az, hogy ameddig a kontrolleredet programozod, a Window$ megézi, hogy nem egy nyomtató véletlenül a listáján szereplő sokszáz típusból. Ezzel már meg is zavarta a jelalakot...

A mellékletben levő megoldással le lehet beszélni az XP-t a párhuzamos portokon való nyomtató keresésről - a többihez nem tudok, de merészebbek megpróbálhatják azokon is...

Az újabb gépeken a jelszintek és a terhelhetőség más, mint a régieken, legújabb gépeken nincs már párhuzamos port - nem célszerű ilyen programozót építeni, ha mégis, akkor csak azért, hogy egy USB-s programozó firmware-jét beégessük...
(#) Hp41C válasza Hp41C hozzászólására (») Jún 18, 2010 /
 
Sziasztok!

Tudom, hogy ez egy AVR topik...
Ha valaki esetleg foglalkozik Microchip Pic kontrollerekkel is, és már vett / épített egy PicKit2-t, nem kell AVR programozót építenie: A PicKit2-vel az AVR kontrollereket is fel tudja programozni.
(#) vrbst válasza ISF79 hozzászólására (») Jún 18, 2010 /
 
Szerintem be van kapcsolva a gyári 8-as osztás az oszcillátornál.
(#) kajozs válasza totht91 hozzászólására (») Jún 18, 2010 /
 
Hello!

A zenerek rendben vannak? Én azokat néztem el, és akkor nem ismerte fel a gép, csak hébe-hóba.

Üdv kajozs
(#) ISF79 válasza vrbst hozzászólására (») Jún 18, 2010 /
 
Igen köszi az volt a baj.
Viszont közben jött egy másik kérdés:
m_delay_10ms(100); //100*10ms = 1s
sorban a 100-at max 200 engedi átirni, 300-nál már ezt a hibát kapom:

../main.c:24: warning: large integer implicitly truncated to unsigned type
(#) Ideiglenes válasza totht91 hozzászólására (») Jún 18, 2010 /
 
Megnéztem az Igor féle vevőt és hát ott a rajzon nem szerepelnek zenerek. Az usb-s illesztés viszont igényli azokat a 3,6V-os zenereket.
Javasolom, hogy ellenőrizd le ponttól pontig is az összeköttetéseket. Én ugyan nem magam építettem, de nekem Topi féle programozó van. Semmi bajom nincs vele, tökéletesen működik.
Ha a zenerek megvannak, akkor én javasolnám, hogy rádugás után mérj tápfeszt a kapolásodon, úgy is, hogy benne van és úgy is, hogy kiveszed a vezérlőt, meg a másik IC-t is.
(#) vrbst válasza ISF79 hozzászólására (») Jún 18, 2010 /
 
Ha megnézed az m_delay_10ms függvényt, akkor láthatod, hogy unsigned char a bemenő paramétere. Ezzel 0-255-ig adhatsz át neki értéket, mivel 8 bites változó. Ha nagyobbat szeretnél, akkor használj nagyobb változót, pl integert. (unsigned esetén 65535-ig használható) Tehát az "unsigned char" helyére írj "unsigned int"-et.
(#) ISF79 válasza vrbst hozzászólására (») Jún 18, 2010 /
 
működik köszi.
(#) Axel hozzászólása Jún 18, 2010 /
 
Sziasztok!

Írtam egy kis tesztprogramot attiny24-20-ra. A program éppen felmegy rá de elég hülyén működik. Az AVRdude is hibaüzenetet ad. Mellékelem, hogy pontosan micsodát. Azért raktam txt.-be, hogy ne "töredezzen" a topic.
Véleményem szerint a hiba nem feltétlenül a programban van de ha szükséges belogolom a kódot is természetesen.

Köszönöm!
(#) Reggie válasza echo11 hozzászólására (») Jún 18, 2010 /
 
Nekem ponyprog mindig is gond nelkul ment xp alatt parhuzamos porttal. Esetleg probald meg, hogy kivulrol adsz tapot es nem a portrol veszed.
(#) Reggie válasza Axel hozzászólására (») Jún 18, 2010 /
 
Ez erdekes jellegu problema. Nekem is van hasonlo, bar az en szoftvereim rendben mennek. viszont van egy programom aminek ha az eeprom reszet programozom es verifikalja ugyan ez a problema. A programozas rendben megtortenik csak az ellenorzesnel van hiba. Es csak ennel az egy programomnal csinalja.

De visszaterve a te problemadra, elegge nagy a valoszinusege, hogy a kododnak nincs baja. Esetleg csinalj egy chip erase-t es utana olvastasd vissza vele az ic tartalmat. Ha nem csupa 0xFF-et kapsz, akkor a programozoval vagy a programozo szoftver beallitasaval lehet gond. Ha nem JTAG-ot hasznalsz hanem ISP-t akkor vedd lejjebb a sebesseget a -b kapcsolo segitsegevel. (A baud rate nem lehet nagyobb, az avr orajelenek negyedenel)
(#) Reggie válasza echo11 hozzászólására (») Jún 18, 2010 /
 
Most nezem, hogy a rajzod szerint csak 3.3V-os tapot adsz az icnek. A parhuzamos port viszont 5V-os. Adjal 5V-ot neki.
(#) Axel válasza Reggie hozzászólására (») Jún 19, 2010 /
 
Megvan a hiba oka! Nem állítottam át AVR Studio-ban a proci típusát meg a frekvenciát attiny24-re. Így aztán hiába csináltam meg a makefile-t hozzá, nem tudta rendesen feltölteni a programot. Lényeg, hogy mostmár jó, gond nélkül megy a programozás.
(#) echo11 hozzászólása Jún 19, 2010 /
 
Hello mindekniek! Köszönöm a válaszokat ,de most egy buffereltnek állok neki, ha ez sem megy, akkor meg veszek valamit... Amúgy kvarc nélkül tilos programozni (legelőször a fusebitek átállítása előtt) tapasztalatok? Nekem edison14 mondta de már későn. Lehet hogy sikerült elcsesznem?
(#) Ideiglenes válasza echo11 hozzászólására (») Jún 19, 2010 /
 
Nem tilos. Ez félreértés.
A gond az, hogy ha az oszcillátor forrását külsőre állítod, akkor a következő programozáskor is azt várja, így olyankor is rá kell kötnöd egy kvarcot.
Én úgy tapasztaltam az atmega88-nál, hogy alapban belső rezgőkör van kijelölve, így az új tokokat fel is tudtam programozni egyszer, azután már csak úgy, hogy tettem rá kvarcot.
(#) adamtui_93 hozzászólása Jún 19, 2010 /
 
Hali
Az lenne a kérdésem hogy sztringeket honnan tudnám megtanulni ? több dologra is szükségem lenne rájuk pl uart adatfogad és mikor fogad akkor nem 1 karaktert fogad hanem azt amit küldtem. Meg pl hogy van 4 bemenetem az aver-en és csak akkor igaz az állítás ha pl 1011 ezt a kódot kapja a lábakon.
(#) abcdabcd válasza Ideiglenes hozzászólására (») Jún 19, 2010 /
 
Teljesen véletlenül olvastam a hozzászólásod, én is építettem igor-féle vevőt most nemrég, de nem értem, hogy mire jók, oda a 3,6V-os Zenerek, meg nekem működik anélkül is, ha te tudod, megmondanád nekem, hogy mire kellenek? Nekem amúgy annyi "gondom" van a vevővel, bár ez már lehet túlzott követelmény, hogy azt néztem, hogy elég érzékeny a vevő, viszont hogyha össze-vissza kalimpálok a távirányítóval miközben nyomom a gombját néha más jelet vesz... nemtudom a tieddel próbáltál-e ilyet, egyenesen irányítva viszont egész messziről is jó...
(#) Reggie válasza adamtui_93 hozzászólására (») Jún 19, 2010 /
 
A konyv neve amit keresel: Petho Adam - C
(#) adamtui_93 válasza Reggie hozzászólására (») Jún 19, 2010 /
 
Hali és köszi a válaszod de első sorban valami linkre gondoltam példákkal mintaprogramokkal és stb.. hasznos cuccal
(#) Ideiglenes válasza abcdabcd hozzászólására (») Jún 19, 2010 /
 
Hogy miért is kellenek a zenerek, azt itt találhatod:

D1 and D2 are a low cost relpacement for a low drop 3.3 V regulator chip, such as the LE33. Operating the AVR at higher voltages exceeds the common mode range of many USB chips. If you need to run the AVR at 5 V, add 3.6 V zener diodes at D+ and D- to limit the voltage.

A D1 és D2 alacsony költségű helyettesítője egy alacsony esésű 3,3V-os szabályzó chipnek, úgy mint az LE33. Az AVR magasabb feszülségű üzemeltetésekor túllépi a legtöbb USB chip közös mód tartományát. Ha szükséges az AVR-t 5V-ról üzemeltetni, építs be 3,6V-os zéner diódát a D+ és D- vonalakra, hogy korlátozzák a feszültséget.

Én nem építettem meg az INFRA egységet, csak ránéztem a rajzára. Az infra vevők amúgy kicsit bonyolultabbak annál, mint amit a legtöbb ember gondol róluk. A bemeneti fokozatban van egy olyan egység többek között, amelyik megpróbál a vett jelsorozatból egy egyenletes szintű kimenetet produkálni. Ha összevissza kalimpálsz a távirányítóval, igencsak megnehezíted a dolgát.
(#) trudnai válasza adamtui_93 hozzászólására (») Jún 19, 2010 /
 
A konyv helyett mi lehet meg hasznosabb? Amugy ha ra googlizol, hogy C tutorial, akkor ezer szamra talalsz -- de azt is el kell olvasni csak ugy mint egy konyvet...
(#) abcdabcd válasza Ideiglenes hozzászólására (») Jún 19, 2010 /
 
Köszi a gyors választ! Amúgy ezt a Zener-es megoldást én az AVR309es segédletben láttam először ami az IgorPlug hivatalosan "Application Note-ként" Atmel által kiadott változata, viszont az eredeti Igor-féle kapcsolásban sincs ott a Zener sőt az én vevőm is működik úgy tűnik, szóval nem tudom, hogy mennyire kell ez oda, bár sok helyet talán nem foglal a panelon... Azt értem amúgy, hogy feszültségkorlátozásra való a Zéner csak a miértet nem értet(te)m
(#) Reggie válasza adamtui_93 hozzászólására (») Jún 19, 2010 /
 
Konyvtarat tudok linkelni
(#) hummer hozzászólása Jún 19, 2010 /
 
Üdvözletem mindenkinek. Szeretnék egy kis segítséget kérni. Atmega32L-el szívok. A datasheetjében nem emlékeznek meg arról, hogy a fuse biteket, ha elprogramozom, akkor lezárom a gépet. Két ilyen Atmegát lezártam, csak az egyiket sikerült feloldanom, mert emlékeztem arra, hogy mit csináltam korábban. A másik megnyitásában kérnék segítséget. Mindkét gépet az oszcillátorok beállítása környékén zártam le (tehát nem lock bitekkel).
Bármilyen megoldás érdekel a még lezárt felnyitásában, akár el is viszem helyszínre és fizetek érte. Végigpróbáltam már az összes oszcillátorbeállítást (azt hiszem), de nem megy. Master reset is érdekel, a lényg, hogy tökre legyen kiürítve a mikrokontroller. Előre megköszönök minden segítséget.
(#) Reggie válasza hummer hozzászólására (») Jún 19, 2010 /
 
Probalj meg kivulrol orajelet adni neki. Ha ugysem megy, akkor marad a parhuzamos programozas.

Amugy nem zartad le, csak onnan varja az orajelet, amit megadtal neki. Ez teljesen logikus, irja is a dokumentacio.
(#) hummer válasza Reggie hozzászólására (») Jún 19, 2010 /
 
Köszi. Azóta megnőtt a fejem, építettem egy változtatható frekvenciájú kvarcvezérelt négyszöggenerátort (cserélgetem benne a kvarcokat ) és azzal beindult. A röhej az, hogy mégcsak ki sem zártam magam, a beállítások működtek. Volna. Ha történetesen két ugyanolyan géppel játszom. Csakhogy, az egyik Atmega32 (ezt élesztettem fel legelőször), a másik meg Atmega32L (ezt utoljára). A síma 32-est azt külső RC oszcillátorra állítottam véletlenül, a 32L-et meg olyanra, amilyenre szerettem volna, külső 12 MHz-es kristályra. Csakhogy a 32L CSAK 8 MHz-ig megy (és ezt elnéztem), a 12 MHz-es kristálynak a pofájába röhögött. Tehát, kívűlről kapott 4 MHz négyszöget és elindult őkelme is.
Köszi az ötletet.
(#) edison14 hozzászólása Jún 20, 2010 /
 
Helló!

Valaki meg tudná mondani hogy eljárást (procedúrát) hogyan lehet létrehozni mert nagyon nem akart sikerülni.
A programot csatolom.

A segítséget előre is köszönöm.

nyomogomb3.c
    
(#) trudnai válasza edison14 hozzászólására (») Jún 20, 2010 /
 
Jol csinalod, csak a main-t ne tedd be masik fuggvenybe. A C ugyanis nem ismeri az egymasba agyazott fuggveny deklaraciokat.

Tovabbi ket megjegyzes:

1. A C-ben nincsen eljaras (procedura), csak fuggveny. Ezt a kifejezest akkor is igy hasznalja, ha amugy a fuggvenynek nincs visszateresi erteke (void). Azert fontos ezt megtanulni, mert konyvekben vagy az interneten csak ugy fogod megtalalni a kerdesedre a valaszt, ha a pontos kifejezest ismered es hasznalod.

2. Jo lenne szebben indentaln a kodot, es akkor hamaradd ra lehet jonni mi a gond (legalabbis erre a hibara hamar ra lehet jonni). Ket alapveto okolszabalyt szoktak profik betartani:

a) TAB karakterek helyett SPACE-eket kell hasznalni. A legtobb szovegszerkesztonel at lehet allitani, hogy ne TAB-ot, hanem sace-eket hsznaljon.

b) 3-4 SPACE-t kell hasznalni indentalashoz -- legtobbszor 4-el talalkozni -- ezt is be lehet allitani a legtobb szovegszerkesztonel.

Ha ezeket betartod, akkor barhol is olvasod a kodod, mindig szepen lesz indentalva es mindig konyen kovetheto ha rossz helyre raknad a main fuggvenyed
Következő: »»   237 / 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