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
Köszönöm az érthető választ! Most már értem, hogy miért nem lép tovább a futófény a max értéknél!Azért örülök, hogy van aki mindig elmagyarázza részletesen mit rontottam el; mivel hibákból tanul az ember.
Hűű ez jól néz ki. És ezzel akkor 8051-eset is lehet programozni illetve tesztelni? És a kapcsolásirajzot meg részleteket el tudnád küldeni? Magát az assembly-t és a programozást, a mikrokontroller felépítését, működését úgyérzem hogy megértettem, de a gyakorlati, érdemleges részről semmi tapasztalatom. Már elképzelésem is van hogy lehetne egy saját "tesztelő" áramkört összerakni, csak az a nagy kérdés maradt bennem, hogy mégis hogy égetem bele a mikrokontrollerbe az utasításokat.... :| De ez az áramkör egész jónak tűnik. Ha tudod kérlek küldd el a linket ahol találtad. Kb mennyibe került cakk-pakk? És ha elkészült akkor miyen szotver kell hozzá hogy felismerje a gép? TOvábbá USB-n keresztül is működik?(márcsak azért mert laptop-pal lenne jó használni)
Bocsi a sok kérdésért, de már nagyon szeretném magam próbálgatni, hogy milyen progit tudnék "életre kelteni".
Arduino keretrendszerek is nagyon jók, sikféle kiegészítő van hozzá...
És mindenféle nyelven is lehet hozzá fejleszteni. Néhány programozó, fejlesztőrendszer AVRDragon Programozók összehasonlítása Mivel kezdjek? Cikksorozat. A mikrokontrolleres rendszerek besorolásai
Bocs, nem akartalak magadra hagyni, de külföldön voltam pár napig és nem értem rá semmire.
Ezt nem "találtam", hanem saját magam építettem. Jelenleg csak ATMega16/32/644/8535 alá jó.
Ahogy a képen látszik, USB port is van rajta, így PC-ről lehet vele kommunikálni. A programozáshoz programozó kell hozzá. A Dragon is jó, de ahogy látom, nem tudád kihasználni a képességeit. Egy olcsóbb programozó bőségesen ki fogja elégíteni az igényeidet amit ráadásul üthetsz-vághatsz, míg a Dragonnál mire rájössz a működésére lehet hogy el fog füstölni. Nem feltétlenül a legolcsóbb, Doper alapú programozót ajánlanám, bár kezdésnek ez is megteszi. Egy AVRISP vagy AVRISP-mkII sem olyan drága(ráadásul nálam is kapható ) hogy egy kezdő megvegye. A másik dolog hogy szerintem nem kéne annyira a 8051-hez ragaszkodni ha nem ismered a lehetőségeit. A 8051 amúgy sem AVR, így szerintem természetes hogy egy AVR-es fórumon inkább lebeszélnek róla...
Pedig jo dolog a 8051. Keszult mar belole aszinkron is (Lutonium).
Ahha éreztem hogy nem avr de kategorizálással még vannak gondjaim Am nem ragaszkodom 8051 hez csak Kandón eddig azt tanultuk, azt már amatőr szinten tökéletesen ismerem. de atmega 128at is tanulom és szimulátoron gyakorlom de ebben még van mi elméletet tanulni. Tavir AVR oldalát néztem, és ritka humánus megfogalmazású oldal, meg majd ránézek erre az "üthető, vágható programozóra" is. Sajna hét közben kicsit pihentetnem kell a témát, mert suli fontosabb de remélem hétvégére letisztul bennem egy kép, hogy mit kell vennem :s
Addig köszi az eddigi válaszokat is!
Ha a leheto legolcsobban es leggyorsabban akarsz nekiugrani, akkor atmega168 ic, linux/win98/winxp parhuzamos porttal rendelkezo gep, ponyprog, es nehany alkatresz mint pl. stab, kondi (ezek mindig vannak a fiokban). Aztan ha ugy erzed, tenyleg ez kell neked, akkor lehet beruhazni komolyabb dolgokba. En is igy kezdtem tobb mint egy evtizede.
Hát nem tudom, én ujrakezdöként (25 éves kihagyás után) vettem egy Dragont és abszolut semmi gondom nem volt vele, söt.....a hozzávalo SW kimondottan intelligens, és gond nélkül ajánlható.
Szoval nem egészen értem a gondjaidat.
Akkor így foglamaznék: friss jogsival a legtöbb ember nem új autót vesz.
Aki otthon maszek autószerelésbe kezd, nem a hidraulikus emelőt fogja legelőször megvenni. A kivétel persze erősíti a szabályt. Magyarán, egy Dragon nem kis beruházás, és egy kezdőnél még az is kérdés hogy fog-e vele foglalkozni, vagy néhány hónap után félreteszi az egészet mert talált valami olyan elfoglaltságot amihez jobban ért. Láttam már ilyet eleget. A legolcsóbb kezdés valóban egy valamilyen DIP tokos AVR+breadboard+nyomtatóportos progizó.
Én mindenképpen olyan eszközöket javasolnék, amivel tudod debuggolni a programod futás közben is, és nem csak szimulátorban.
Tehát: Dragon Jtag Ice mk1 Jtag Ice mk2 Jtag Ice 3 Azt, hogy melyikre ruháznál be, az rád van bízva. Azt tudni kell, hogy az atmel már nem támogatja a jtag ice mk1-t. Tehát nem gyártja/árulja, illetve csak korlátozott számú AVR-t lehet vele programozni. A Dragon olcsó, a másik kettő drága. Ha olcsón akarsz kijönni, akkor veszel magadnak egy működő Jtag Ice mk1- t és olyan AVR-rel kezdesz, amit tud programozni/debuggolni. Tehát vagy atmega16, vagy atmega32. Persze, ha nem szeretnéd tudni debuggolni futás közben a kódod, akkor bármelyik programozó megteszi neked, a párhuzamos portra ráakasztott ellenállásoktól kezdve a profi Avr ISP mk2 -ig. Azzal egyetértek, hogy felesleges venni egy baromi drága fejlesztőeszközt, csak azért, hogy netán két hét múlva megund. Az viszont biztos, hogy kevésbé lesz izgalmas, ha azzal szívsz mindig, hogy a párhuzamos portos programozód megint nem megy, mert nem jók a forrasz kötések. A 8051-esek aranyos jószágok, de a világ a cortexek felé mozdul. Így a lépés az AVR-ek felé logikusnak tűnhet.
Azert az tulzas, hogy a parhuzamos porti programozo rakfeneje a forrasztas, mert mindegyik forrasztva van...Magyarul, aki jol forraszt annak nem lesz ilyen gond.
Hacsak észre nem veszi, hogy a legujabb laptokon már semilyen port nincs (sem párhuzamos sem soros)...
Természetesen nem szó szerint értettem, hogy pont a párhuzamos portra kötött, barkácsolt programozót lesz nehéz megforrasztani.
Szemléltetni szerettem volna a problémát, miszerint egy vélhetőleg elektronikában kevés tapasztalattal rendelkező személy megépít egy AVR programozót, akkor azzal kell szembe néznie, hogy nem tudhatja, hogy esetleg a fuse-okat sikerült elprogramoznia, vagy csak éppen a rosszul sikerült forrasztás akadályozza abban, hogy az eszközét használja. Ezért tettem javaslatot, hogy ha amennyiben egy vélhetőleg profi (legyen az gyártósori, vagy manufaktúrálisan készített) programozót használ, akkor legalább abban biztos lehet, hogy az az eszköze hibátlanul működik. (Természetesen leszámítva azt, hogy ezek az eszközök is lehetnek hibásan elkészítve. Az én atmel-es usbkey -men volt egy kósza smd alkatrész két ellenállás között, ami tized mm híján zárta rövidre őket). Remélem így már érthető az érvelésem mindenki számára. Egyetérteni természetesen nem kell vele, csak remélem az álláspontom tiszta.
Teljesen ertheto, de helybol cafolom a JTAG ICE MKII-vel szerzett tapasztalataim alapjan. Ugyanis az atmel, volt olyan vicces kedveben es FPC kabel hasznalata mellett dontott, ami azon felul hogy modern, meg jo erzekeny is.
Alapvetoen ket jellegzetes helyen gyujti a hibakat: - A doboz toveben szeret megtorni - A ket elen kulonbozo helyen szedi ossze a berepedeses jellegu seruleseket A legjobb az egeszben, hogy olyan veletlenszeru hibakat tud produkalni, hogy megoszulok(vagy akar orulok) tole. Van, hogy csak bizonyos teruleteket nem programoz fel a uC-ben, maskor csak a visszaellenorzesnel fut hibara, de neha meg az is elofordul, hogy a flash torlese nem fut le, es az elozo ketto meg helyesen lezajlana. A problemat tetezi, hogy nem olcso, kb. egy ezres, ha ujal akarja az ember helyettesiteni. Viszont a nehany evnyi szenvedes alatt mar kb. egy ora alatt tudom javitani (rovidites aran), igy, kb 3-4 alkalommal lehet rehabilitalni a kabelt. (Ha valakinek hasonlo problemaja van, nyugodtan keressen meg es elmondom a modszert.)
Ez tényleg igaz. A munkahelyemen én is rácsodálkoztam, hogy ilyen vacak kábelt alkalmaznak. A vicc az, hogy a jtag ice 3-nál is FPC kábel van.
Jómagam otthon az mcuzone jtage ice mk2 -jét használom. Ahhoz standard szalagkábel van.
En megtoldottam szallagkabellel, de azzal meg az a baj, hogy felulrol korlatozza az atviteli sebesseget. Gondoltam mar, hogy atforrasztom az egeszet dobozon belul, de eddig meg nem vitt ra a lelek.
Sziasztok!
PCF 8563 RTC-t használok AVR-rel. A pontos időt már szépen kijelzi de a napokkal gondok vannak. Az abszolút össze-vissza működik, nem is mindig vált át 0 órakor a következő napra, és beállítani sem tudom rendessen. Megjegyzem azonban, hogy a dátumot nem állítottam be (honap, év,) mert arra nicsen szükségem, bár a hónapok napjait a hét napjai előtt kell beállítani, oda mindig 0-t írok, a regisztercím automatikus inkrementálása miatt. Kérdésem, hogy lehet-e a hiba a napokkal azért mert nem állítom be a teljes dátumot? Köszi!
Köszi, nem hagytál magamra, megoldódott.
Sziasztok!
kérdésem lenne. olvasgattam Fizikus által írt soros LCD vezérlést Bővebben: Bővebben: Link a kérdés arra vonatkozva amikor a késleltetés függvényben az alábbi áll:
a vagy kapcsolattal én úgy tudom hogy beírni lehet az 1-est nem peddig törölni..aki tud segítsen valószínű én néztem el vmit. üdv:Richard
Az adatlapból:
Alternatively, TOV0 is cleared by writing a logic one to the flag. Jelen esetben épp hogy a bit 1-be állítása törli a flag-et. Tehát nem néztél el semmit, csak éppen nem jól értelmezted..
Köszönöm!
egy kis bizonytalanság... Ha jól értelmezem akkor TOVO flag-et 1-el lehet törölni, ha a megszakítások nincsenek bekapcsolva. Mindezt a programon belül. HA a megszakítás be van kapcsolva (TOIE0 bit 1), akkor ha TCNT0 túlcsordul akkor TOVO állapota 1 lesz. Ha megszakítás megtörténik akkor majd törli a TOVO flag-et így az nulla lesz.
Pontosan. De nem TOVO, hanem TOV0, nullával a végén.
Csak azért, hogy ne legyen meglepetés a programírásnál.
Egy kérdés: Van két függvényem ami ha mind2 visszatérési értéke 1, akkor kell a programnak csinálni egy másik dolgot. Hogy lehet legegyszerűbben megoldani ezt? egy if-be írni a kettőt azért nem jó mert csak akkor fogja megcsinálni a másodikat, ha az első már 1-et adott vissza.
Így esetleg?:
Így az utasítás csak akkor kerül végrehajtásra ha az első és a második függvény is igaz értékkel tér vissza.
Már ne haragudj de szerintem ez így nagyon nem jó, lényegében ugyanaz a hibája
mintha egyetlen IF-be tenné. Én valahogy így képzelem el:
magyarázat: ha le akarod futtatni az fx2()-t, függetlenül az fx1() eredményétől akkor bizony el kell tárolni...
Mondjuk teljesen mindegy, hogy hogyan van, mert ígyis úgyis egymás után fog lefutni a kettő. Egyszerre csak egy dolgot tud végezni a processzor.
Hello!
Olyankor mi lehet a gond ha WinAVR-ben nem fut a "makefile" parancs? Az MFile-ban mindent jól van beállítva ez biztos (órajel freki, fájnév, proc típusa, include-ok.) illetve na olyan, hogy valamit átírok a programban, aztán "makefile". Fel is tölti szépen de a proci egyszerűen nem azt csinálja amit mondtam neki. Pl. egy nyomógomb kezelésénél késve reagál a mcu, holott és egészen biztos nem kértem ilyesmit tőle. Előtte kifogástalanul ment.
Kicsit zavaros számomra a dolog.
A makefile parancs biztos nem fut, legfeljebb a make.exe program, ami a Makefile-ból halássza ki a paramétereket. Az írod, hogy nem azt csinálja amit mondtál neki. Én nem venném ilyen fél vállról a dolgokat. Szerintem tuti azt csinálja, amit mondtál neki, legfeljebb te gondolod rosszul azt, hogy mit is programoztál le. Továbbá azt írod, hogy korábban kifogástalanul ment, de nem sok útmutatást adtál számunkra arra, hogy mégis mi előtt ment kifogástalanul. A WinAVR programok gyűjteménye, tehát nem tudjuk, hogy honnan hívod a make.exe-t, Programmers notepad-ből, netán parancssorból. Kicsit pontosíts kérlek.
Hello!
Valóban kicsit pongyolán fogalmaztam. Szóval a helyzet az, hogy átírtam egy részét a programnak. Nyomógomb kezelésről van szó és volt ott egy 100ms-os delay(ha letelik a delay akkor elkezdi "pergetni" a beállítandó paramétert ami egy szám.). No ezt a delay-t átírtam 50ms-re hogy gyorsabb legyen az egész. Először nem csinálta meg a makefile-t. Aztán nagy nehezen felöltöttem a proci a hex.-et de nemhogy gyorsabb nem lett a léptetés hanem még lassabb. Meg olyat csinál,hogy kiírattam egy karaktert az LCD-re. Azt a sort ami ezt végzi kitöröltem egy az egyben és újraprogramozás után ugyanúgy látni a karaktert még áramtalanítás, reset, stb. után is. Olyan is volt, hogy véletlenül kitöröltem egy olyan változót amit használok a programban és mégis lefordult holott ezért ugyebár mindig kiabál! Szóval elég furcsa dolgok történnek. |
Bejelentkezés
Hirdetés |