Fórum témák
» Több friss téma |
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
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?
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?
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...
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.
Szerintem be van kapcsolva a gyári 8-as osztás az oszcillátornál.
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
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
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.
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.
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!
Nekem ponyprog mindig is gond nelkul ment xp alatt parhuzamos porttal. Esetleg probald meg, hogy kivulrol adsz tapot es nem a portrol veszed.
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
Most nezem, hogy a rajzod szerint csak 3.3V-os tapot adsz az icnek. A parhuzamos port viszont 5V-os. Adjal 5V-ot neki.
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.
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?
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.
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.
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ó...
A konyv neve amit keresel: Petho Adam - C
Hali és köszi a válaszod de első sorban valami linkre gondoltam példákkal mintaprogramokkal és stb.. hasznos cuccal
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.
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...
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
Konyvtarat tudok linkelni
Ü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.
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.
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.
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.
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 |
Bejelentkezés
Hirdetés |