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   723 / 837
(#) zombee válasza csabeszq hozzászólására (») Feb 7, 2016 /
 
Kombinálod az előző hozzászólásommal: elindítasz egy (hardveres) időzítőt, majd a felhasználói beavatkozás pillanatában megnézed az értéket. Ezt beállítod a random magba, majd lekérdezel onnan 4 számot. AVR-el ennél jobbat nem fogsz tudni.
(#) Hp41C válasza zombee hozzászólására (») Feb 7, 2016 /
 
(#) csabeszq válasza zombee hozzászólására (») Feb 7, 2016 /
 
Jó, ha az időzítő megfelelően szór (nincs prescaler). Nálam nem volt lehetőség user beavatkozást mérni. Indulás után rögtön véletlen színű lámpák kellettek.
(#) zombee válasza csabeszq hozzászólására (») Feb 7, 2016 /
 
Az én megoldásaim sajnos mindig user beavatkozásra és időmérésre épülnek, mert az tényleg
véletlenszerű értékeket ad és nagyon egyszerű. Pont úgy mint az elektronikus dobókockák.
Csak akkor nem kell prescaler ha ICP-t (hardveres időpont-tároló) használsz, különben nem lesz
egyenletes az egyes értékek valószínűség szerinti eloszlása.

Ha bekapcsolás után azonnal véletlen értékek kellenek akkor a hardvert is be kell vetni. Egyszer csináltam olyat hogy ellenállást(kb. 1MOhm) és kondit(~100nF) kötöttem sorba. A kondi másik vége a földre ment, az ellenállásé egy portlábra. A közös pont az analóg komparátor egyik lábára ment(a másikon osztó). A komparátor a TIMER1 ICP egységével van kapcsolatban. Ezzel a megoldással egy 3-bites véletlenszámot lehetett generálni 20MHz-es órajel mellett, és így sem volt valami tökéletes, de a feladathoz bőven megfelelt.
A hozzászólás módosítva: Feb 7, 2016
(#) zombee válasza Hp41C hozzászólására (») Feb 7, 2016 /
 
Igen, valami ilyesmire gondoltam én is, bár ez még éppen a Microchip-éra előtti. A "csak-SMD" várható volt, de a PORTE3:0 engem is meglepett, főleg úgy hogy ebből kettő olyan lábat használ ami eredetileg tápláb volt. A 16 bites timert is megháromszorozták, az USART és I2C egységeket megkettőzték. Utóbbit végre hivatalosan is "Philips I2C kompatíbilis"-nek nevezik. Azért egy órajel-emelést(25-32MHz) berakhattak volna. Vajon az IC visszafelé kompatíbilis lehet az m328P-vel?
A hozzászólás módosítva: Feb 7, 2016
(#) elactrofan hozzászólása Feb 10, 2016 /
 
Helló!

Atmel studio 7 ben hogy tudnám hozzáadni az usbasp programozót?
(#) rolandgw válasza elactrofan hozzászólására (») Feb 10, 2016 /
 
(#) elactrofan válasza rolandgw hozzászólására (») Feb 11, 2016 /
 
Megjelent a listában a usbasp programozó, de hogyan tudom a hex fiket beküldeni az ic-be?
(#) zombee válasza elactrofan hozzászólására (») Feb 11, 2016 /
 
Én a helyedben inkább használnám a Khazama-AVR programot, csak egy ALT+TAB és küldheted is. Csodákat ne várj egy olyan programozótól ami alapból nincs támogatva. Ha a beépített pluginhoz mérhető színvonalú programozást akarsz, az valahol egy egy Avrisp-mkII klónnal kezdődik.
(#) zsozsoX hozzászólása Feb 14, 2016 /
 
Sziasztok! Ha az SPI-re teszek felhúzó ellenállásokat akkor az "zavar állóbb" lenne és nem zavarja programozáskor a programozót?
(#) Sick-Bastard válasza zsozsoX hozzászólására (») Feb 14, 2016 /
 
Tudtommal a fel-/lehúzó ellenállások nem segítenek az SCK, MISO, MOSI lábakon.
Ha valóban ISP-t szeretnél (In System Programming), akkor oda sorosan bekötött ellenállást használhatsz az AVR és a többi slave IC között. Képet mellékeltem.

Ez sem kell feltétlen, ha a slave ICk mindegyike, magas impedanciás (High-Z) kimenettel rendelkeznek és nem aktívak. Hogy ne legyenek az AVR programozása közben aktívak, ezért ezeknek a CS/SS lábaira kell egy fel-/lehúzó ellenállás, ICtől függően.

avr_isp.jpg
    
(#) suszitibi hozzászólása Feb 15, 2016 /
 
Sziasztok
Segítséget szeretnék kérni, programozással kapcsolatban.
Jelenleg van egy működő program, ami egy nyomásérzékelő jeleit dolgozza fel. A nyomásszenzor értékei egy H fájlban vannak megadva, amit meg szeretnék változtatni.
Kérdésem, hogyan kerül a H fájl a végleges HEX-be? Hogyan tudom az általam átírt nyomásszenzor adatokat, fölülírni a jelenlegivel?
Win avr-rel meg tudom oldani? Ezt használom az általam használt Atmega8, 88, 16 és 32 programozásához. Programozóm STK500.
Rendelkezésemre áll a C fájl és a cserélni kívánt H (nyomásértékek) is.
Köszönettel: Tibi
(#) Sick-Bastard válasza suszitibi hozzászólására (») Feb 15, 2016 /
 
Módosítod a .h file tartalmát ahogy szeretnéd. Aztán WinAVR-ben Tools/Make All és aztán Tools/Program. Ennnyi.
A make file, .h , és a .c fileok egy mappában legyenek.
(#) suszitibi válasza Sick-Bastard hozzászólására (») Feb 15, 2016 /
 
Nagyon köszönöm, holnap előveszem a programozót és kipróbálom.
A h fájl már módosítva van. Ezek szerint a kulcs az, hogy egy mappában legyenek, amiket a hex-be szeretnék tudni.
(#) zombee válasza suszitibi hozzászólására (») Feb 15, 2016 /
 
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.
A hozzászólás módosítva: Feb 15, 2016
(#) suszitibi válasza zombee hozzászólására (») Feb 16, 2016 /
 
Köszönöm.
Sajnos nem értek a dologhoz, eddig nem volt időm rá, most is kevés.
A program működik jelenleg is, tehát jól hivatkozik. Eddig csak a HEX fájlt töltöttem a kontrollerbe, ezzel megállt a tudományom.
Eljutottam odáig, hogy a C-ben átírtam a szükséges módosítást és a szenzor adatait tartalmazó h is módosítva lett. A fájlok nevei nem változtak.
Beillesztem, hogyan néz ki most a mappa.
A pirossal bekeretezett fájlra kattintva, megnyílik a win avr és már a módosított C-t látom benne.
A másik kép a default mappa tartalmát mutatja.
Ezek szerint, ha így behívom és elmentem az egészet, akkor kész az új program?
(#) suszitibi válasza Sick-Bastard hozzászólására (») Feb 16, 2016 /
 
A tools-ra kattintva, nincs make all lehetőség. Lehet azért, mert nem csatlakoztattam a programozót és kontrollert?
A win avr át tudja konvertálni HEX fájlba, az így módosított C-t?
(#) suszitibi hozzászólása Feb 16, 2016 /
 
Bocsánat, rosszul írtam, nem a win avr-t, hanem az avr studiot használom.
Valamikor pár éve használtam a win avr-t is, de már nem emlékszem, miért és hogyan.

Tehát a kérdésem, az avr studioba beillesztett C fájlt, hogyan tudom HEX-é vrázsolni, vagy betölteni az Atmega88-ba?
Próbálom, de nem sikerül. A kontroller OK, csatlakozva van, a régi HEX fel is megy rá.
Az új C-vel viszont nem boldogulok.
(#) suszitibi válasza suszitibi hozzászólására (») Feb 16, 2016 /
 
Feltettem a win avr-t is. C fájl bent van, make all, aztán program meg volt.
Sajnos a HEX még mindig változatlan, vagyis új hexet nem tudok készíteni, valamint a kontrollerbe sem tudom így betölteni a programot.
Valakinek lenne ideje, idegzete, leírni lépésről lépésre, hogyan lesz ebből a C-ből működő kontrollerem?
Köszönettel. Tibi
(#) rolandgw válasza suszitibi hozzászólására (») Feb 16, 2016 /
 
Ha telepítve van a winavr, akkor a Studio 4 detektálja a benne levő toolchain-t. Szerintem csinálj egy új projektet és csatold az új C és H fájlokat.
Bővebben: Link
(#) suszitibi válasza rolandgw hozzászólására (») Feb 16, 2016 /
 
Köszönöm
A win avr-t utólag telepítettem. Az avr studiot telepítsem újra, hogy érzékelje a win avr-t?
Megpróbálom a linkelt módszerrel.
(#) rolandgw válasza suszitibi hozzászólására (») Feb 16, 2016 /
 
Nincs a gépemen a 4-es,de úgy úgy emlékszem itt utólag is meg tudod adni:
Project > Configuration Options > Custom Options
(#) suszitibi hozzászólása Feb 16, 2016 /
 
Most vagy én vagyok ilyen hülye, vagy valami összeesküvés van ellenem.
Sem a winavr-el, sem az avrstudioval nem boldogulok. Mindenképp csak hex fájlt enged a kontrollerbe tölteni az avrstudio.
Úgy emlékszem, 5-6 éve, a winavr-el fordítottam hex-be a c-t. Próbálom most is, de valahogy nem jön össze. Beállítom a kontrollert, a programozót, stb... Na de mi a fenével indul a fordítás?
Valami make fájlt is kellett készíteni, de az meg van. Úgy tudom, az a programból nem, csak a kontroller adatait tartalmazza.
Valaki leírhatná, melyik fájlokra van szükségem azok közül, amiket betettem a képeken, aztán mit tegyek és hova?
Fent van a winavr, újra telepítettem az avr studiot is. Van egy C fájlom, ami tartalmazza a komplett programot. Van egy H fájl, ami a nyomásszenzor adatokat tartalmazza. Van még több, nem tudom milyen fájl, fogalmam nincs, mire valók. Gondolom még kell ami a midi adatokra vonatkozik. Van makefile is.
Azt sem tudom, a makefile-nak is azon a néven kell lennie, mint a C-nek, vagy simán maradhat makefile?

Mindenképp én szeretném megoldani, mert a későbbiekben szükség lehet, a nyomásszenzor adatainak a módosítására.
Az eddigi javaslatok, valamiért nem működnek.
Avrstudio4.18 van fent.

Köszönettel: Tibi
(#) suszitibi válasza suszitibi hozzászólására (») Feb 16, 2016 /
 
Lehet sikerült az új HEX. A létrehozás dátuma megváltozott, akkor gondolom igen.
Köszönöm az instrukciókat, vasárnap lesz itt a hangszer, akkor kiderül, hogy jól csináltam-e.
(#) kapu48 válasza suszitibi hozzászólására (») Feb 16, 2016 /
 
A WinAVR

A forráskód fordítása
Kattintsunk a Tools->Make All menüpontra, ezzel indítjuk el a fordítót. Ha nem gépeltünk el semmit, akkor alul a kimenet ablak alján ezt látjuk:
1. > Process Exit Code: 0
Ezek szerint minden hibamentesn lefordult.

Az AVR felprogramozása
Ez nagyon egyszerűen elvégezhető, kattintsunk a Tools->Program menüpontra, és ezzel elindul a programozás, és ha mindent jól csináltunk, akkor fel is megy a program az AVR-re és a programozás befejeztével el is indul az AVR-en a program.
Ha valami gond van programozás közben, akkor arról tájékoztat lent a kimeneti ablakon.
A fusebitek állítgatása elég nehéz a WinAVR-ből. Ehhez használhatunk Bascom-AVR demót, PonyProgot (bár ezzel nagyon könnyen elronthatjuk), illetve ha STK500-as programozónk van, akkor az AVR-Studio5-ból is megy egyszerűen, de lehet még az AVRDude programhoz letölteni kezelőfelületet (avrdude-gui), igaz, azzal kissé nehézkes.
A hozzászólás módosítva: Feb 16, 2016
(#) rolandgw válasza kapu48 hozzászólására (») Feb 16, 2016 /
 
A studio 4 is kezeli az STK500-at és automatikusan generálja a make fájlt. A programozáshoz csak ki kell nézni az eredeti make fájlból a fontosabb adatokat pl. fusebitek.
(#) suszitibi válasza rolandgw hozzászólására (») Feb 16, 2016 /
 
Köszönöm a segítséget, szerintem OK lesz a dolog.
A fuse bitekkel nincs gond, az avr studioban is szépen be tudom állítani, az új kontrollernél kell is mindig.
Most az avr studioval sikerült a hex fájl is. Persze hogy működik-e, még nem tudom, mert nincs itt a hangszer, vasárnap lesz nálam.
(#) Ivan93 hozzászólása Feb 19, 2016 /
 
Sziasztok! Egy külső kristályról járó mega8-ra írt programot tévedésből egy gyári új mega328-ra töltöttem fel (rossz ic-t tettem a próbapanelba). Ezután már nem értem el az uc-t. Ezzel a lépéssel kizárhattam magam?
A következő lépésemmel valószínű végeztem is vele, mert egy másik panelba áttettem, de a foglalatban egyel lejjebb tettem be (14-15láb kilógott) és így adtam rá feszültséget, amitől rendesen felforrósodott.
(#) Gj hozzászólása Feb 19, 2016 /
 
Üdv!

Megépítettem ezt az eszközt, csak PIC helyett egy ATTiny25-tel. A problémám az, hogy amikor egy komolyabb fogyasztót, például egy mélynyomót, vagy egy asztali lámpát bekapcsolok, azt is tapsnak érzékeli.

Ezt a relét használom hozzá, egy ilyen FET-tel (ez eltér a tutorialban meghatározottól).
A táp egy tablet töltője, 9V, 500mA kimenettel. Ez a feszstab IC van az áramkörben (ez is eltér a példában szereplőtől), illetve kapott maga elé egy egyenirányító diódát, ha esetleg fordított polaritással kapna tápot.

Mitől van az, hogy egy-egy nagyobb fogyasztó bekapcsolását tapsnak érzi? Mivel lehet ezen segíteni?
(#) kapu48 válasza Ivan93 hozzászólására (») Feb 19, 2016 /
 
Következő: »»   723 / 837
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.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