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
Szia!
Senki se foglya helyetted megírni, ezért nem kaptál választ. Másold be a próbálkozásod és majd egy Bascom-os kijavítja.
Hali
Csinálom tovább az attiny45-ös nyomógombos kapcsolást. A következő lépés az lenne, hogy ha egyszer megnyomom a gombot akkor kigyullad a led és x másodperc után elalszik. De sajnos ha pl 5 mp-ig szeretném, hogy világítson a led, akkor 5 mp-ig kell nyomnom a gombot is. PB3 LED PB4 nyomógomb Mi a hiba a kódban?
Előre is köszönöm a segítséget.
Először is. Ahhoz hogy segítséget kérj, tiszteld meg a többieket azzal, hogy a kód amit bemásolsz, nem idehányt.
Tagold rendesen!
Így már egyből látszik a hiba, hogy ha nyomod a gombot ha nem, akkor is lefut a _delay_ms... Azaz ha épp delay van és akkor nyomod meg a gombot, akkor ki kell várnod a delay-t mire a program a bit vizsgálathoz ér. Lehet hogy elírás, lehet hogy nem ismeret, de az IF kapcsos zárójel nélkül csak a soron következő kifejezést veszi "maga alá". Ha azt akarod, amit elmondtál, akkor egyszerűen a _delay_ms és a kikapcsolás parancsot tedd bele az IF-en belülre. Így:
Amúgy meg "}" után nem kell ";"! A jövőben ilyen forma kód bemásolás után, ne nagyon reménykedj segítségben, mert nem sokan veszik a fáradtságot hogy újratagolják és formázzák a kódodat ahhoz, hogy neked segítsenek.
Köszi a segítséget.
A kód tagolva volt (mondjuk talán kicsit több benne az üres sor mint kéne) de amikor ide másoltam szétcsúszott, így is háromszor szerkesztettem a hsz-t, hogy visszakapja a formáját kicsit.
A Doper Programozót sehogy sem tudom felismertetni a gépemmel. Lecsupaszítottam az áramkört a képnek megfelelően de még mindig ugyan az a baj... a windows az írja hogy "Az USB-eszközt nem lehet felismerni"
Mi lehet a probléma?
A kapacitások a kristálynál, azok sincsenek?
nem feleslegesnek tartottam őket, az avr-ek sima kvarccal is mennek legalábbis ez a tapasztalatom.
AVR-t se tegyél bele. Tök felesleges.
Idézet: „A kapacitások a kristálynál, azok sincsenek? -- nem feleslegesnek tartottam őket, az avr-ek sima kvarccal is mennek legalábbis ez a tapasztalatom.” Jujj... Azért ezt ne terjeszd Kizárólag alacsonyfrekvenciájú kristályokhoz nem kell (max 32.768K) Nem csak a kondi hiányzik, de még a programozó csati kimenet is. Nem gondolod hogy akkor már az USB csatit és a procit is ki lehetne kapni belőle? Annyival is olcsóbb.
Csak azért csináltam ezt a csupaszítást hogy kísérletezni tudjak a próbapanelon mert nem ismeri fel a gépem... Úgy gondoltam hogy ha ennyit összedobok akkor ezeket már megenné a számítógép, de még nem sikerül. Esetleg lehet olyan hogy plusz ellenállást kell raknom a d+ és d- ra?
Idézet: „Esetleg lehet olyan hogy plusz ellenállást kell raknom a d+ és d- ra?” Úgylátom nem voltunk érthetők: KRISTÁLY KELL! KONDI KELL! Nem helyettesíthető az USB-n ellenállással. Ez nonszensz. Akkor szedj le valamit, ha tudod mit csinál. Ha meg mondják mi a hiba, ne ellenkezz és szórakozz másokkal.
25 megan is elketyeg, amikor csak 16 megat ir az adatlap. Nem veletlenul vannak ezek a korlatozasok, ugyanis ha nem az eloirt modon hasznalod, akkor nincs garancia a helyes mukodesre. Ezert kell a kondi is. (Pl. kondi nelkul elofordulhat, hogy valamelyik felharmonikuson rezeg be a kvarc)
A kerdesedre visszaterve, teszek fel par keresztkerdest: 1. A uC jol fel van programozva? 2. Az USB D+/D- milyen utvonalon es kornyezetben jut el a uC-ig? (pl egy fenykep jo lenne a probapanelrol)
Sziasztok!
Valaki meg tudná mondani, hogy hogyan lehet használni névtereket winavr-ben? A "namespace my{}" fordításakor ezt a hibaüzenetet kapom:
A választ előre is köszönöm. Idézet: „Esetleg lehet olyan hogy plusz ellenállást kell raknom a d+ és d- ra?” Pontosan igy van! A D+ -ra +6M-ot, a D- -ra pedig -68K kellene, hogy a kristalyon levo kondikat helyettesitsd. Ez a Random Theorem-nek is nevezett osszefuggefbol fakad, ami kimondja, hogy egy negativ es egy pozitiv ellenallas parhuzamos kapcsolasa kapacitiv a kritalyok korul.
Sziasztok!
Én ma reggel raktam össze az első AVR programozómat (egy LPT portra csatlakoztatható STK200/300 kompatibilis programozó), tehát kezdő vagyok. Nézegetem TOPI "Nyolc lábbal AVR ..." cikksorozatát, és a második részben a PWM -es LED fényerőszabályzónál elakadtam. Az ott lévő mintakódot sikeresen átírtam az általam használt mikróvezérlőre (ATMEGA88-20PU, csak a "PORTB" ki kellet cserélni "PORTD" re). Ott akadtam el, hogy szeretném az AVR-ben található másik PWM-et is használatba venni, tehát kezdetben a "AIN0"-ról (12.es láb PORTD 6BIT) átírni TOPI kódját az "AIN1" -re (13.as láb PORTD 7BIT). A működő kód "AIN0" (12.es láb PORTD 6BIT) lábon. (A kódba beleírtam még egy LED kapcsolgatását, hogy lássam mikor erősödik és mikor gyengül a PWM es LED fényereje.)
Ez a kód jól működik, erősödik és gyengül a PWM-es led, a PORTC-re kötött LED meg villog hogy mikor erősödik és mikor gyengül a PWM-es led... És a nem működő kód:
A második esetben csak a PORTC-re kötött LED villog, hogy mikor (kéne) erősödnie és mikor gyengülnie a PWM es LED-nek, mert a PWM-es LED sötét, egyéltalán nem világít. Próbáltam az adatlapból rájönni, de sajnos nem tudok angolul, így alig értettem meg valamit az adatlapból. Miért nem megy a 2. PWM láb? Mit csinálok rosszul? Novarobot
Látom itt is értelmes emberek vannak és ha egy egyszerű ember kérdezne valamit akkor lehurrogják.
1. én nem ellenállással akartam helyettesíteni a kondikat, csak nekem egyszer már volt gondom az igor féle infra vevővel amikor azt építettem. Arra ezt a megoldást találtam: http://www.ocinside.de/html/modding/usb_ir_receiver/usb_ir_driver.html" target="_blank" rel="nofollow" >Bővebben: Link Idézet: „If Windows XP or 2000, etc. just recognizes an "Unknown Device" instead of the proper USB Device name, this can be a problem with the mainboard, which supports only 3.3 Volt at the data lines of the USB port. To solve this failure, unsolder the data+ and data- USB cable (green and white or yellow and blue) and solder each with a approx. 100-200 Ohm resistor (e.g. brown-black-brown for 100 Ohm) to the PCB.” magyarul: d+ és d- ra rakjunk 100-200ohm-ot, ha nem látja a win, megcsináltam, sikerült, de a programozó kapcsán nem működött. 2. nekem az igor avr IR is vígan fut 12kHz-en kondik NÉLKÜL. 3. terveztem egy saját NYÁK-ot a doperhez és az nem működött azért kezdtem el kísérletezni a próbapanelon. Lehet hogy azon van a baj. Esetleg megnézné valaki? 4. Az ilyen szemét hozzászólásokat meg hanyagoljuk jó és ne nézzük már egymást hülyének, bár ezen az oldalon sokszor találkozok ezzel a problémával, példát vehetnétek a prog.hu-ról ahol minden kezdővel értelmesen beszélnek. És sajnálom hogy a probléma felvetésénél nem voltam egyértelmű. Köszönöm előre is a segítséget.
Senki nem hurrogott le ok nélkül. Leírták a megoldást, és erre Te úgy döntöttél, hiába mondja rengeteg ember, akkor sem próbálod meg, mert neked egyszer már valami működött.
A 10-30pF annyira kicsi, hogy akár a szórt kapacitások miatt is előfordulhat hogy berezeg kondi nélkül is.
A probléma megoldódott, én voltam a hatalmas láma
1. A PWM-et nem "AINO" és "AIN1" -nek hívják hanem "OC0A" és "OC0B" (mellesleg 4 db van benne, mert ilyen is van hogy "OC1A" és "OC1B") 2. Az "OC1B" nem a 13. hanem a 11. láb. 3. A kódban a hiba (vagyis amit meg kell változtatni hogy "OC0A" helyet "OC0B")
Novarobot
A linken amit kuldtel pontosan ezt irja:
Idézet: „If Windows XP or 2000, etc. just recognizes an "Unknown Device" instead of the proper USB Device name, this can be a problem with the mainboard, which supports only 3.3 Volt at the data lines of the USB port. To solve this failure, unsolder the data+ and data- USB cable (green and white or yellow and blue) and solder each with a approx. 100-200 Ohm resistor (e.g. brown-black-brown for 100 Ohm) to the PCB.” Magyaran abban a kapcsolasban nincs szintillesztes, a soros ellenallassal pedig valoszinuleg csak a bemeneteket vedo clamp diodakon atfolyo aramot korlatozzak. Nem egy szerencses megoldas szerintem, mindenesetre az a programozo amit mutattal tartalmazza a szintillesztest egy-egy zener es hozza tartozo ellnallasok tekinteteben. Idézet: „2. nekem az igor avr IR is vígan fut 12kHz-en kondik NÉLKÜL.” Mondjuk ugy, hogy szerencsed volt. A panelen levo vezetekek kapacitasa eppen megfleleo volt, hogy a kvartz berezegjen. De lehet a kezeddel kozelitesz fele es leall, vagy teliholdkor nem indul be -- hidd el azok a kis keramiak nem veletlen vannak abba az aramkorbe betervezve. A paneleden most igy hirtelen nem latom hol a hidegito kondi a Vdd es Vss kozott? Annak lehetoleg minel kozelebb kellene lennie a PIC labaihoz. Ertsd ugy, hogy 1-2 milimeterre!
Oké ha már azt mondjátok hogy a kvarcnál a kondik a hibásak, rendben de az első próbálkozásomnál már beépítettem őket - lásd a NYÁKot lentebb - egyébként a másik két kondit bejelölöm akkor egy másik képen hogy jobban láthatóak legyenek.
Egyik se hidegítő.
Miért nem jó Topi Dopere? Ott van a nyák terv és komplett építési leírás. A nyáktervhez meg még mindig nem csatoltad a kapcsolási rajzot, de azért megkérsz mindenkit, hogy ellenőrizze le, senki se fogja leellenőrizni, mert senkinek sincs rá ideje, Te is le tudod ellenőrizni magad.
Topi doper kapcsolási rajza alapján készítettem a NYÁKot
Akkor ezekszerint nem a masik PWM-et akartad hasznalni, hanem a masik csatornat.
De van ott egyoldalas panel is, ha az lett volna a probléma.
Kezdd szépen el egyesével végignézni az összes alkatrészt, jó helyre kapcsolódik-e.
Az lesz... amúgy azért terveztem sajátot mert az egyoldalasban voltak olyan rajzolatok amit kézzel esélytelen megrajzolni (mivel én kézzel rajzolom a NYÁKot tussal)
Hali Mindenkinek!
A kérdésem elsősorban Topinak szólni, de talán más is tudna segíteni. HEStore-ban vettem egy AVR-Dopert, össze is raktam, elvileg jó. Ehhez vettem gy ATTiny2313-ast, hogy majd azt felprogramozom. De egyszerűen nem megy! Semmi mást nem kapok vissza az AVR Studio-tól, hogy "Entering programming mode: FAILED". Olyan, mintha nem lenne jól beállítva a frekvencia, de már 1kHz-el is próbáltam, de úgy sem jó. Van esetleg valakinek ötlete? Előre is köszönöm!! Üdv
Programozáskor van rajta kvarc?
Ellenőrizd le, hogy a tiny2313 kap-e tápot. Ha a programozóról táplálod, akkor nézd meg a táp tüske fennt van-e.
Nézd meg, hogyjó-e a vezetéked. Nem-e hibás a csatlakozóó. Sípold ki. Ha nincs szkópod, akkor egy 330R-os soros ellenállással és egy LED-el vizsgáld meg hogy a programozás idejére a LED kialszik-e a RESET-en, és vibrál-e a többin (SCK, MISO, MOSI) 115K alá ne vidd. Felesleges, mert 1KHz-en nem is enged többnyire már programozni. (EEPROM, FLASH) |
Bejelentkezés
Hirdetés |