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
Először is:
Egy olvasás:
Egy írás:
Ez a "durva" használat, az EEPROM bájtjait sorszámmal indexelem. Létezik pointeres megoldás is, kicsit elegánsabb de gyakorolni kell:
A tömbös deklarálás a pointerezést váltja ki. A hozzászólás módosítva: Szept 8, 2016
Köszönöm a segítséget sikerült megoldani!
Sziasztok !
Megépitettem a csatolt fájl szerinti MK II programozót.Sajnos a firmware-t nem tudtam többszöri próbálkozásra betölteni a Flip rendszerrel.Mindent átvizsgáltam nagyitóval,müszerrel és mindent rendben találtam.Két hasonló kapcsolási rajzot megnéztem és a resetek 10 K ellenállással,mig a HWG egyik esetben 10 K,mig a másik esetben 1 K ellenállással csatlakozik a + táphoz.Az én kapcsolásom 470 Ohm-al csatlakozik mindkét esetben. Lehetséges,hogy ez okozza a problémámat,vagy valami más ? Bizom segitő készségetekben.
Inkább igy fogalmaznám:
Biztos ez okozza a problémádat!
Ez saját terv vagy így találtad? A HWB és RESET felhúzói jó ha 2k fölött vannak.
Nálam 4k7 biztos ami biztos alapon, amúgy 10k a standard, amit a gyártó ajánl. A C1-C2 esetén nem biztos hogy egészséges a 16MHz és 33p párosítás, 18-22p kell oda! Nálam egyébként akkor okoz hibát a FLIP-es letöltés, ha az UCAP kondit (nálad C3, 1uF) elfelejtem beültetni. Ez nagyon fontos az USB-kommunikációhoz, és csak 1µF lehet(+/- 20%).
Sziasztok
Segítséget szeretnék kérni. Van egy Atmega32-höz való programom, amit szeretnék megváltoztatni. Ez egy midi harmonika, aminek a nyomásszenzor (fújtató dinamika) görbéjét kellene kicserélni. Valamiért nem tudom megoldani, a régi módszerrel. A programmer notepad és mfile nevű programokat használtam eddig, win7-en. Most win8.1 van, de már az Atmega88-ra sem tudom megcsinálni, ami régen működött. Meg van a függvény is, meg minden, csak annyi lenne, hogy az új függvény bekerüljön a programba és kapjak egy hex fájlt. Köszönettel, ha valaki segítene. Üdvözlettel: Tibi
Üdv Mindenki!
Szeretném a segítségetek kérni. Fel kellene programoznom egy ATTINY13-at. Atmel Studio 7-el próbálkozom, windows 7 alatt. Itt van a program, és le van írva hogy belső oszcillátor 9,6 MHz. Ez pontosan mit jelent? Felprogramoztam, de a hallhatatlan hangok helyett hallható a tartomány amit produkál. Mi lehet a baj? Köszönöm
Az oszcillátora frekvenciáját a fuse biteken keresztül kell programoznod. Ezek nem a forráskódban állíthatóak, hanem külön felületen. A gyári beállítás általában 1MHz. Csak óvatosan, mert ha mást is elállítasz a fuse bitekben mint ami kell, akkor akár ki is zárhatod magad az AVR-ből. Kicsit olvass utána, ha még nem volt dolgod a fuse bitekkel.
Ezt látom, ha ránézek a fuse bitekre. Melyik kellhet nekem?
Maga az oszcillátor beállítás jó, a "CKDIV8"-ból vedd ki a pipát, mert ez a beállított órajelet a nyolcad részére osztja. Mielőtt átállítod, ha van ott "SAVE", akkor mentsd el a jelenlegit. Nekem eddig még nem nagyon kellett fuse bitekkel variálnom, ezért is javasoltam, hogy tanulmányozd a témát előtte.
Sziasztok
Mivel senkitől nem kaptam választ, tovább kérdezek. Néhány oldallal előbb, ezt a választ kaptam: A kulcs az hogy a programod "include" része HELYESEN hivatkozzon az összes külső forrásfájlra, különben nem fog lefordulni a programod. Nem utolsó dolog ha azonos mappában vannak, de nem feltétel! A kulcsszó a helyes útvonalmegadás(lásd: LUFA programok). Fordítás: AVR Studio (4) esetén "Save All", F12 (clean), majd F7 (Make). A hex fájl ez után általában a "default" mappába kerül(AVR Studio) vagy ahová a makefile definiálja. Mivel a WinAvr-rel nem jön össze a dolog, megpróbáltam ezt a módszert. A save all és a clean meg is van. A gond az, hogy nálam nincs make lehetőség. Az Avr Studio 4.18 van fent. Export makefile az van, de ez csak a makefilet generálja újra. Hogy a fenébe lesz ebből hex fájl? Már nagyon ideges vagyok, mert sok időt elszúrtam ezzel, a munkám meg nem halad. Tényleg olyan nagy dolog egy hex-et alkotni? Valaki meg tudná mondani, hol van a make lehetőség az Avr Studioban? Köszönöm.
Szia!
Bővebben: Link Ha létrehozol egy új projectet a studio automatikus generálja a make file-t.Externált is megadhatsz.Hozzá kell adnod a saját c-t ,h-t a projethez, aztán build. Ez nagy dolog?
Köszi mindkettőtöknek.
Igen nagy dolog, ha fogalmam nincs, mit kell nyomni. Mivel nekem azt írták előzőleg, hogy make. Nem mindegy, hogy készíteni, vagy építeni. Amúgy annyira a make-re koncentráltam, hogy a buld-ot észre sem vettem. Nagyon köszönöm, megpróbálom.
Ez nem akar összejönni. Valaki vállalkozna rá, hogy átküldeném és ránézne, mi lehet a gond. A jelenlegi hex fájl működik, mindössze a szenzor függvényét kellene felülírni. Nekem nem lesz belőle hex, csak makefilet generál.
A másik harmonikánál, az Atmega88-ra meg tudtam csinálni, a Win Avr-rel, de itt nem boldogulok.
Sziasztok,
Bascom ill. AVR programozásban kérnék egy kis segítséget, készítettem egy egyszerű kis programot a megszakítás tanulására. A PORTB.2-re van kötve egy kapcsoló ami magas szintre emeli a lábat, ha megnyomom. Alapesetben a főprogram 2 másodpercenként soros port-on kiírja, hogy Hello. Ha megnyomom a gombot elugrik a megszakítás rutinra, de az ott levő szöveget duplán írja ki. Nem tudok rájönni miért, de nem csak egyszer kellene kiírnia?
Próbáld ezt: Bővebben: Link
Helo,
Köszönöm sikerült, csak az Amega1284-nél ezt EIFR regiszternek nevezik, itt az INTF2-es bitet 1-be állítva a return elött már jól működik.
Helo mindenkinek,
Ismét segítséget kérnék, szeretnék csinálni egy kis programot aminek a következő lenne a feladata: - PINB.2-re érkezik egy jel (felfutó él) ez generál egy INT2 megszakítást - a megszakítás rutinban elindítja a Timer1-et és beállít egy bit-et (timer_flag) jelezvén, hogy megy a timer - a PortA 0, 1, 2, 3, 4, 5 bemenetekre egymás után érkeznek sorban felfutó élek (amik magas szinten is maradnak), ezeket szeretném a pin change interrupt-al kezelni - a lényeg, hogy a PortA-ra érkező jelek idejét szeretném megmérni az INT2-hez képest, majd ezeket az időket kiküldeni sorosport-on. (a PortA-ra érkező jelek ideje az INT2-hez képest, az első kb. 1,3ms, a többi ezután kb. 20ms-onként érkezik. Az program első részét talán jól csináltam, viszont az időmérések nem akarnak sikerülni.... Ha esetleg valakinek lenne ötlete, hogy mit rontottam el, vagy mit kellene másként csinálnom azt megköszönném. Üdv.: Imi
Én igy csinálnám:
Az első elgondolásom hasonló volt, az első jel-ig még jónak tűnik, viszont amikor megérkezik a jel a Pina.1-re akkor a Pina.0 magasban van, tehát a Pina.0=1 feltétel is teljesül, ez nem okoz problémát?
Ez elkerülte a figyelmemet!
Ez elkerülte a figyelmemet! És mért nem mehetnek vissza 0-ba a pinek? Ha biztosan sorban jönnek a megszakítások? Jó az index számlálós megoldás. Csak figyelni kel az index induló és végértékekre. Igy viszont egyszerübb:
Idézet: „...viszont amikor megérkezik a jel a Pina.1-re...” De sokból válogathat (azért nem kell rögtön dicsekedni), még sorszámozta is... Használhattál volna valami szinonímát is... A hozzászólás módosítva: Szept 19, 2016
Ezt kipróbálom, valóban egyszerűbb, viszont az én verziómban valamiért nem működött az indexelés, fogalmam sincs miért, de nem léptette a K értékét.
Legközelebb jobban figyelek a fogalmazásra, nehogy félreértés legyen...
Pina.1 értsd.: Porta 1-es láb.
De bemenet esetén Pina = PORT INput A
(Ez Angol!) A hozzászólás módosítva: Szept 19, 2016
Kedves Fórumtársak !
Az alábbi program AVR Studio-ban való szerkesztéséhez /szövegbeírás/, fordításához szeretnék segítséget kérni, kifogott rajtam. Köszönöm
Lehet, hogy csak meg akarja vele nyitni. Most próbálkozom vele én is. C-vel nincs semmi tapasztalatom, és ott tartok, hogy 7-es stúdióval projek/solution megnyitásnál nem talál semmi fájlt amit megnyithatna. Épp afelé mennék, hogy egyesével megnyissam a fájlokat és után esetleg projektként el lehetne menteni.
|
Bejelentkezés
Hirdetés |