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
Ha kiolvasom akkor mutatja ezt, akkor beállítom E4-re. A write-ot be kell ehhez pipálni?
A bootloadert azért kérdeztem, mert gondolom enélkül nem működik a mikrovezérlő. De ez alapból rajta van vagy első alkalommal nekem kell feltenni (akár az előzőekben kovidivi által leirt hex-el együtt módszerrel)? A bootloader mindig a program szerves része? Egyáltalán mihez kell? Aztán nézegettem fejlesztőeszközöket. Az avrdragon tűnik kézen fekső megoldásnak, ára és tudása alapján. Ezzel lehet azonosulni? Találtam még butterfly nevezetű cuccot, de ez még nem derült ki számomra, hogy mire jó. Programozás: bascom - Basic nyelven de fizetős program, úgy 100eur kb dude - linux-os winavr - c nyelven a linuxos megfelelőjének win-es átportolása. Felteszem érdemes ezthasználni. Ami még nem derült ki mire jó az atmelstudio és az avrstudio. Egész nap olvasgattam a témában, merre induljak el. Egy biztos, ez az usbasp nagyo bizonytalan és lassu cucc, szoftveresen dekódolja az usb-t. A hozzászólás módosítva: Márc 14, 2019
Biztos vagy a C1-ben?
Én ezt találtam: A hozzászólás módosítva: Márc 14, 2019
És, hogy arra a kérdésre is válaszoljak, mikor dobja az extremeburner a hibaüzenetet:
nos, akkor ha a kérdéses, előzőekben emlegetett szemüveges clock menüt szeretném előhívni a képen jelölt gombbal. Ugyanis ezzel jönne elő az a menú, amit linkeltél:Bővebben: Link Hát, nem egyszerű ez, már kezd is elmenni a kedvem na jó nem... A hozzászólás módosítva: Márc 14, 2019
A bootloader csak egy extra lehetőség. Nem szükséges, és nem kötelező. A bootloader segítségével a megszokott programozási mód mellett (Miso, Mosi, Sck, Res, +5V, Gnd használatával), lehetséges az AVR-t bármilyen más módon is felprogramozni, pl. soros port, wifi, stb.
Elnézést, igazad van! Nem vettem észre, hogy nem a default értéket dobja be a calculator.
Az E4-D9 viszont jó. Az eXtreme Burner-t inkább hanyagold, ha ennyire kusza. Én ez szoktam használni: Bővebben: Link
Köszönöm az eddigi segítségeket mindkettőtöknek, már világosabb.
Arra nem tudom a választ továbbra sem, hogy melyik fejlesztőpanel lenne kézenfekvő kezdésnek és melyik fejlesztőalkalmazás, melyik égető. Felteszem, ami hasznos lenne a továbbiakban is, főleg a jelenlegi semmi sem örök világban, ha C-ben kezdeném el tanulni, mert azt tudom esetleg más vezérlőknél is hasznosítani. De hogy mivel? Mert van egy pár lehetőség. Win10 64bit-em van. Nem tudom kezdőként majd szükségem lesz-e debugra, mert akkor talán a jtag-es atmel ice csupasz verziója érné meg. Vagy ez:JTAG ICE MK2? Ha nem kell debug akkor viszont elveszek az infók kózt. pl: AVR ISP MK2 STK500 ponyprog STK200 Buspirate klón, nem klón stb Ami biztos talán, hogy az usbasp felejtős lesz. A hozzászólás módosítva: Márc 15, 2019
Atmel Studio 7, mkII klón - például, C nyelv.
Azt viszont nagyon nem javaslom, hogy a Studo-ban vagy bármilyen más uC fejlesztőkörnyezetben próbáld a C-t megtanulni. Arra ott a Code Blocks és ez könyv, magyarul is levadászható. Bővebben: Link
Egy kérdés. Hogyan kell kezelni az AVR ATTiny13A-a PB5, ami egyben egy RESET láb is. Ha egy NPN fokozatot kötök rá, akkor RESETben marad. (10 kOhm a bázis ellenállás). Ha egy másik 10 kOhm-l a +5V-ra huzom akkor megy, de nem kapcsol.
Most egy N-FET fokozatot kötöttem a PB5-re, most sem kapcsol de müködik a chip ( a többi port rendben van). Csak egy LED-t kellene kapcsolnia. A szimulatirban megy a panelon nem. Kösz
Át kell állítani a fuse biteknél a "reset disable" bit-et, de utána normál módon programozni nem fogod tudni, ugyanis a reset láb innentől csak rendes pin-ként funkcionál... Tehát először felprogramoz, majd fuse bit-ek írása, hogy a reset láb le legyen tiltva, és kész. Programozói módba már csak magas feszültségű programozóval tudsz belépni.
Kösz közben én is megtaláltam ezt az infot. Kár, hogy korábban nem tudtam. Most már csak igy tudom használni. ( másképpen is tudtam volna a NYÁKot tervezn). Na mindegy. Az ember mindig tanul.
Kösz még egyszer.
Sziasztok!
Egy elméleti kérdés megoldásában kérem a segítségeteket. Milyen módol lehet a "multitasking" feladat végrehajtást C nyelven programozni? Pl.: a mikrovezérlő folyamatosan vagy meghatározott ideig adott frekvenciájú hangot generál, de közben pl.: ADC értéket dolgoz fel, az értéket megjeleníti. Nem a megszakításokra gondoltam.
Egyszerű, vannak korlátai, de nagyon ravasz.
C makrókat használ, pár példaprogramot át kell nézni a neten a megértéséhez, viszont megéri. Bővebben: Link
Amit te leírsz, azt nem multitasking-gal szokás megoldani (nem is igazán lehet azzal egymagos uC-vel), hanem egy kimenet PWM-es meghajtásával (pl. buzzer meghajtás, vagy ha rendes hang akkor DAC és DMA).
Ha ténylegesen a multitasking a lényeg, akkor pedig léteznek különböző RTOS (Runtime Operating System) megoldások (pl. FreeRTOS, ChibiOS, stb.), amelyekkel megoldhatsz ilyen jellegű feladatokat. Természetesen ezek is megszakításokkal operálnak a háttérben (taskváltást mégis mihez kötnéd? ) de ezekhez viszonylag komoly mikrokontrollert is kell választani. Ezen a ponton a videóban pontosan az történik, amit leírsz: https://youtu.be/ips9zyRMvF0?t=261 A hozzászólás módosítva: Ápr 6, 2019
Én úgy írom meg a programjaimat, hogy előre megállapítom, milyen sűrűn kell lefutnia egy függvénynek. Pl. hőmérséklet mérés elég mp-ként, míg feszültséget és áramot "real time" akarok mérni, várakozás nélkül, az LCD-t elég csak 100-200ms-ként frissíteni, de a gombokat 20ms-ként ellenőrzöm. Minden függvénynek saját számlálója van, amit a bekapcsolás óta eltelt időhöz hasonlítok. Persze ehhez az is kell, hogy egyik függvényedbe se legyen semmi várakozás, vagy minimális legyen csak. Ez nem multitasking, de hasonló. Jól működik, azonnal reagál minden. A hardware-es perifériákat is használni kell, ezek maguktól működnek, rengeteg prociidőt tudsz megspórolni.
A hozzászólás módosítva: Ápr 6, 2019
Köszönöm a választ.
A multitasking megoldást csak példaként hoztam, hogy szemléltessem a problémát.
Köszönöm a választ.
Igen, én is arra gondoltam, hogy más megoldás nem lehet, mint meghatározott időszeleteket használni. A másik, amit írtál, hogy "kiszervezni" a feladatokat más MCU-nak.
Akkor a kommunikáció veszi el az időt feleslegesen, és a lábakat. Át kell gondolni, megéri-e.
Sziasztok !
Csak úgy halkan kérdezem, hogy ilyen terápia vezérlőegységéről tud-e valaki bővebb infót ? Azért ide tettem föl a kérdést, mert Atmega 16 van benne. Néhány másodpercig működik a beállított program aztán hibát jelez. Nem az enyém, ismerős kapta kölcsön használatra. Természetesen átrakatom a kérdést, ha nem idevaló.
Én régebbit ismerem, de ott van áramfigyelés egy söntön illetve ha szakadt (kontakthibás) a tekercs, akkor kiáll hibára. Mérj vagy áramot vagy ellenállást a tekercsen (no meg a tápfeszt).
Köszi! Kb. milyen nagyságrend lehet a párnában a tekercs ellenállása ?
kisebb mint 10 ohm, ha jól rémlik, de mérhető.
Szasztok!
Egy programom át kell ültetnem avr-gcc-ből arduino nyelvre a hardver perifériáinak bővülése miatt és mert abban már le van programozva az új periféria kezelése, viszont problémába ütköztem. A programom legfontosabb eleme, hogyha uart-on soros adat érkezik akkor azt haladéktanul fel kell dolgozni és amit amúgy csinál a főprogramban, lényegtelen, azt hagyja félbe. Erre a ISR(USART_RX_vect) használtam, de arduino-ban nem találtam a párját. Kitudna valaki segíteni? Előre is köszönöm! Azért itt teszem fel a kérdést, mert azt valószínűsítem, hogy több avr rajongó tud arduino-ul, mint arduino rajongó c-ül.
Nyugodtan átviheted a meglevő C kódodat arduinora!
Kevés módosítással működőképessé tehető. Próbáld meg bele illeszteni a meglevő kódodat ebbe az interup rutinba:
Serial Receive Interrupt Programming in Arduino:
Bővebben: Link
Köszönöm szépen, most működik!
Ezzel csak az a gond, hogy megszakításban várakozol, amíg beütnek egy megfelelő karaktert?
Azt tudod, hogy addig minden még a delay is álldogál? Bár még most nem sok mindent csinálsz a loopban. De később ezzel a hosszú megszakítással gondok lesznek!
Sziasztok!
Van néhány régi atmel mcu-m. AT89C2051,AT89S5224 . Milyen fejlesztő rendszerrel tudnék programot írni rájuk és milyen programozóval tudnám bevinni a programot az ic-be? Pic-et C-ben és pascalban tudok programozni.
Üdv!
Atmel studio 7-ben programozok és azt szeretném elérni hogy egy port egyes bitjeire általam megadott nevekkel tudjak hivatkozni, erre gondolok: SCE=1; ekkor mondjuk a PORTB második bitjét írja egyesre. Nézegettem külföldi fórumokat, találtam mindenféle bitmező struktúrás, meg makrós megoldást, de egyik sem működött. Hogy lehetne megoldani?
A hozzászólás módosítva: Máj 4, 2019
|
Bejelentkezés
Hirdetés |