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
Sajnos sok variáns lehet még a dologban, akár maga az áramkör. Lehet hogy lassú, vagy rossz a kommunikáció, de ez csak tipp. Esetleg maga a windows, ha ugyanaz van fenn a két gépen.
lehet hogy még korábban valami rövidzárral kinyírtam a Doper bufferjét? Hogy tudnám ez leellenőrizni?
Én már nagyon várom a leírást.
Épp most kezdtem bele egy bonyolult vezérlés készítésébe egy plazmavágó/gravírozó géphez. Külön motor vezérlő hajtás (első példány ATMEGA16, másodi AT32UC3Bxxx), hajtás vezérlő (AT32xxxxxx tervezés alatt), és a vezérlő 640x480xRGB érintőképernyős kijelzővel (AT32AP7000 LINUX 32MB SDRAM, SD memcard, USB stb.) Persze egy kolegám segít a LINUX reszelésében, mert ahhoz annyira nem értek, de már ketyeg. Az egész lényege, hogy munka közben kizárjam a PC-t. Csak betöltöm a legenerált G-kódot és teszi amit kell.
Elméleti kérdés: Ha az AVRt az ISP-vel programozom akkor ugye onnan kapja az órajelet is (SCK)? Tehát teljesen mindegy hogy amúgy egy külső kristályró menne a rendszer, ugye?
üdv és köszi, P
Nem... ha külső kvarcra van állítva a kontroller akkor rá is kell rakni, különben nem megy.
Az SCK nem az AVR órajele, hanem az SPI kommunikáció szinkronozó órajele. MISO, MOSI, SCK.
Ha quartz nélküli a ketyeréd és a fuse biteknél beállítod, hogy külső órajellel menjen, akkor ezután csak akkor tudod ismét programozni, ha teszel hozzá quartzot. Mégpedig olyat mit amilyet beállítottál.
Legegyszerűbben: csere. Én már kétszer kinyirtam, de a PC felismerte ettől függetlenül.
Sziasztok.
Remélem nem kérdezek baromságot, bár biztos én rontottam el valamit. Megrendeltem az avr doper programozót, összeraktam, működik. Kész, letöltött hex fájlokat tudok progizni vele. A gond a pc olali szoftverekben lehet. Bármit fordítanék a fordítóval a mellékelt üzit kapom. Mit rontottam el? A winavr telepítve van. Azzal sem boldogulok. (error result:2) 64-bites vistát használok. Ha valaki ráér, segítsen. Előre is köszönöm.
Nekem is ez volt az ötletem, úgyhogy rajta is van az SCK is meg a kristály is. Az amit beállítottam.
Volt otthon egy másik bufferem is, kicseréltem de azzal is ua. a szitu. Még arra tudok gondolni hogy lehet "leesett" egy jumper ami kéne ra. Jelenleg csak a Vtarget-es van rajta, de ahogy olvastam a cikket ennek elégnek kéne lennie. Viszont az is meglepne hogy az AVR a rossz mivel nem hergeltem a fuse biteket, ráadásul az egyiket egy működő eszközből vettem ki ahol pont olyan kvarccal ketyeg mint a próbapanelon. Fogalmam sincs. Rendelek egy dragont.
Hova telepítetted a WinAVR-t? C: gyökér?
Nekem is volt már ilyen, hogy nem találta az object file-t, de nálam megy 32bites Vistán.
Bocs, hogy kesek, meloznom kellett jonni...
-igen, a gyokerben van. Megprobalom majd a 32 bitest. Csak nem bantam volna, ha nem kell telepitgetni. Koszonom az otletet. Bocs, de nemet billentyuzet, nuku ekezet...
Esetleg próbáld meg 32bitesen, nekem működik (Home Premium és Ultimate), még 1 PCI kártyás soros porton van a JTAG, az is megy.
AVR Studio ver. 4.16 Build 628 WinAVR 2009.03.13 Nálam ezek a verziók vannak fent.Remélem segít valamit.
Hali
Egy ötletet vetnék fel mi a véleményetek arról ha nyitnák egy topikot AVR programok címen és oda aki csinált már müködö programot az feltehetné a sajátját azzal hogy mivel programozta, milyen programot használt, mit tud stb... ebböl sok kezdö tanulhatna és senkinek sem tart sokbol egy pl avr studioba elmentett projektet feltenni mert kb 2 perc se és mások tanulhatnának belöle és nem tenének fel 1 halom felesleges kérdést ?
Ez a topik is erről szól! Bőven belefér a témájába az, amit felsoroltál! :yes:
Szerintem.
Szerintem jó ötlet, én már beszúrtam pár mintaprogramot, de sose találják meg.
Az is jó lenne ha minden kérdés ide jönne, oda pedig csak a programok, mert akkor ott is el fog veszni a lényeg.
persze de akkor csak a programok lennének 1 külön topikba és nem lenne az hogy valakinek nincs kedve végig olvasni 300 oldalt hanem max 1 hétalatt a gugli "megtalálja" és utánna ha oda beirja az AVR nevét akkor ki is dobná melyik oldalon van meg nem lenne öszekuszaság hogy az a program müködike vagy csak részlet vagy hibás és pls talájátok meg a hibát hanem ott csak a valoságban is müködö teljes progik lennének
vagy ez bolondság?felesleges?
Hali a válaszokból arra következtettem hogy még sem lenne bolondság ilyet csinálni szoval nyitottam is AVR mintaprogramok néven egyet ide a müködő programokat leirással fel lehet tenni
Egy kód, magában nem sokat segít, hisz mikrokontrollernél nem válik el olyan élesen a hardver és a szoftver. Ezek együtt alkotnak egy rendszert. Hardver nélkül semmit nem ér a szoftver. Illetve fordítva is igaz ez. Az én véleményem, hogy teljes projekteket van értelme közzé tenni. Csak a kód maximum arra jó, hogy egy-két programozási fogást el lessen belölle az ember, de ehhez úgy kell megírni a kódot, hogy mások számára érthető legyen. Én figyelek erre, ha olyan kódot írok amit publikussá teszek. De ha csak magamnak írok valamit, akkor ez nem szempont, és mások számára az ilyen kód inkább szenvedés mint tanulás.
Velemeny: Sok cikknel/kapcsolasnal fent vannak a forraskodok. Minden program egyedi. Max egy ket otletet lehet venni, de a sok ingyen kod hosszu tavon semmire nem megoldas. Az ido alatt, mire atbongeszed es megerted hogy mukodik, altalaban meg lehet irni a sajatot. Kivetel a driverek, azokat eleg egyszer megirni, erdemes kozze tenni. Sajnos nem fejleszt senki rajtuk, ahogy felkerul, ugy marad.
Tokeletesen egyet ertek a "sok ingyen koddal" es ahogy ATtiny irja "a kod onmagaban semmit sem er". Ezeket nem veletlen hivjak "firmware"-nek es nem "szoftvernek"...
Amugy ott van a cikk irasi lehetoseg. Es egyebkent is, eleg OFF ez a tema ide (marmint ezt vesezni, hogy ilyet kellene csinalni), ugyhogy ezt inkabb a "Fejlesztesi otletekbe" kellene irni velemenyem szerint.
És mi lenne, ha nyitánk neki egy web-oldalt.
PL.: HE_kapcsolasok.fw.hu És ezen belül lenne AVR stb. Itt lenne kapcs rajz és progi is. Lehetne a kezdőknek és haladóknak. Ide lehetne összefoglalni GYIK kérdéseket és válaszokat. Lenne 5...10 ember akinek lenne hozzáférése az oldalhoz. Vélemény?
Szia!
Nem akarok ellenszenves lenni az "újítással" kapcsolatban, de egyszerűen nem látom értelmét. Előttem szólók is megmagyarázták, miért felesleges ezeknek külön témát nyitni, én ezzel egyetértek! Meg lett nyitva a másik téma, nem igazán látom, hogy töltődnének fel a programok... Abszolút elegendő ez a téma, amit eddig kerestem, megtaláltam. A környező linkek segítségével pedig plusz információkhoz juthatunk... Szerintem pont ez a "tagolás", miszerint csak a programoknak nyitnánk egy témát, vagy weboldalt, pont ez teszi használhatatlanná a rendszert... :gumicsirke:
Nagyon meglepodnek, ha nem lenne mar tobb szaz vagy ezer hasonlo oldal...
Szerintem sem működne ez a "program feltöltősdi". A kódokat amiket mások írtak meg kell érteni, át kell látni ahhoz, hogy az ember tudjon mit kezdeni vele. Na most, ha nincs kellőképp dokumentálva, a kód értelmezése időigényes. Ezért megeshet, hogy az idő alatt, amíg megérted a más által írt kódot, talán meg tudnád saját magad is írni. A dokumentált kódokra már tekinthetünk mint projekt vagy cikk. Itt a HE-n cikk írásra van lehetőség. Projektet pedig folyamatosan szokták frissíteni, sokan dedikált honlapot készítenek hozzá, verzió követést írnak stb.
Sziasztok,
Mostanaban nagyon torom a fejem, hogy a kovetkezo kis keszulekem AVR-en fog alapulni... es nem PIC-en... Meg kell jegyezzem nagyon sokminden tetszik az AVR-ekben, de meg mindig nem vagyok teljesen kibekulve vele. A gondom meg mindig ez a sebessegesdi Alapvetoen gcc-ben szerettem volna fejleszteni, gondoltam felhagyok az assemblyskedessel es magas szintu nyelvekre fogom ezentul fejleszteni a firmware-eket. Gcc meg ugye ingyenes + eleg jol lehet parameterezni, attributumokat allitgati, egyszoval a leforditott kodot optimalizalni. Nos, a gond azonban meg mindig a regi, amit mar itt egyszer felvetettem, hogy -O3 optimalizacioval is ha egy valtozoban bitmuveleteket vagy szamitasokat szeretnek vegezni, akkor ugye egy LDS-sel elobb atemeli a tartalmat egy 0..31 ill 16..31 tartomanyba eso regiszterbe (merthogy csak ezeken kepes az ALU dolgozni), majd az operaciot kovetoen az eredmenyt vissza irja. Ez igy elegge faramucinak tunik, azonkivul (ahogy mar korabban is emlegettem ezt az effektet) szoval ez a 1 MIPS / 1 MHz-es dolg relevanssaga erosen megkerdojelezodik. Ilyen szempontbol akkor mar a PIC-ek gyorsabbak... nade... Amivel kiserleteznek, hogy eleve olyan regiszterekbe pakolgatnam a gyakran hasznalt valtozoimat, amivel mar nem lesz gond, nem kell neki kulon atemelgetnie. A masik, hogy bonyolultabb / osszetettebb szamitas eseteben benn tartja-e az avr-gcc a valtozokat ezen a teruleten tehat nem minden atomic muvelet eseteben kell neki ezt az atemelgetest elvegeznie. Ha igen, akkor mi tortenik interrupt eseteben, manualisan el kell menteni ezt a teruletet majd vissza, vagy a compiler megcsinalja ezt, vagy az ISR-ben nem szabad olyan muveletet csinalni ami felul irhatja ezt a teruletet vagy ilyenkor mi van? Ha elmenti akkor hova? Ha nem akkor mi az amit mentenem kell (pontosan mely regiszterek)?
Csak egy visszakérdezés.
A PIC nem minden a w-regen keresztül csinál? Vagyis neki is előbb oda kell pakolni mindent aztán vissza. Ha jól tudom. Jól tudom?
Ha nagy számítási sebesség kell akkor miért nem DSPIC vagy ARM vagy AT32xxxxx?
Esek sok sok MHz-n ketyegnek. (60...400MHz)
Idézet: „A PIC nem minden a w-regen keresztül csinál? Vagyis neki is előbb oda kell pakolni mindent aztán vissza. Ha jól tudom. Jól tudom?” Nem egeszen. Harom alapveto architektura letezik, a regiszter alapu, az akkumulator alapu ill RAM alapu... A kulonbseg, hogy az egyikben az ALU csak az un. akkumulatorban kepes eltarolni az eredmenyt, a masikban az osszes regiszterben, mig a harmadik esetben akar a RAM-ba is kepes kozvetlenul vissza tolteni. A PIC valahol a harom osszessege vagy zagyvasaga ha ugy tetszik. Ugyanis van egy akkumulatorhoz hasonlo taroloja, ez a W vagy mas neven WREG, azaz working, magyarul munka regiszter. De kepes az eredmenyt a regiszterekbe is vissza irni. Altalaban egy regiszter es a W vagy a W es a literal kozott vegez muveleteket, de ezenfelul van egy csomo aminel egyaltalan nem kell a W (pl bit billegtetesek vagy egyeb mitmanipulacios muveletek, pl shifteles vagy negalas). Amit pl a 8 bites PIC nem tud es amiben az AVR ilyen szempontbol sokkal jobb, hogy nem kepes ket regiszter kozt matematikai muveletet elvegezni. Ehhez kell neki a munka regiszter (WREG). A masik erdekesseg, hogy a PIC-nek tulajdonkepp nincs memoriaja, csak regiszterei. Magyaran ami muveletet el lehet vegezni regiszterekkel, azt el lehet vegezni az osszes rendelkezesre allo regiszterrel (azaz a teljes RAM tartalommal is es az I/O regiszterekkel is). Emiatt a PIC ha ugy tetszik kepes a RAM-ba dolgozni, ha ugy akkor csak regiszterekbe, de kepes az akkumulatorba is -- ami modernebb PIC-eknel kapott egy ujabb csavart, ugyanis a WREG is elerheto normal regiszterkent... Amennyire most latom az AVR majdnem tisztan regiszter alapu (kerlek javitsatok ki ha rosszul irom). Ami csavart latok az egeszben, hogy a regiszter, az I/O es a RAM elkulonul, sot a regiszter tartomany is ket reszre bomlik, ezen felul az I/O is ket tartomanyra bomlik. Sajnos nem mindegy melyik teruleten levo regiszterbe tarolom el az adatot, mert az utasitasok egy resze nem mukodnek az also tartomanyon levo regisztereken. Ugyanigy az I/O tartomanyban levo regisztereknel pedig csak az elso regioban levo I/O portokon lehet bizonyos muveleteket elvegezni... Ez bonyolultta teszi Ha bitmuveleteket akar az ember hasznalni akkor jobb azokat a r16-r23 regiszterekbe tenni. Aztan ott van meg a gcc is a tetejeben, amelyik tovabb korlatozza mit hasznalhatok es mire. Na mindegy, valoszinuleg le fog tisztulni mit mikor es hogyan kell csinalni, csak kell egy kis ido mig megszokom
Idézet: „Ha nagy számítási sebesség kell akkor miért nem DSPIC vagy ARM vagy AT32xxxxx? Esek sok sok MHz-n ketyegnek. (60...400MHz)” Hehe, azert ennyire nem kritikus a dolog Amugy egy kis ketyeret amit most szeretnek csinalni ahhoz remenyeim szerint elegendo lenne az ATtiny13A ami 44cent, szemben egy 2-3-4-5-6 euros mammutokkal. De ha csak Attiny45-be fernek bele akkor is mar olyan 88 cent kornyeken be tudnam szerezni...
Hello !
EZT a programozót szeretném megépíteni, és volna pár kérdésem: a SLOW SCK mit jelent és hogyan kell használni? a SELF PROGRAMMING mit jelent és mire váló? A kapcsirajzot és boardot csatolom eagle-val meg lehet nyitni. A válaszokat előre is köszönöm. |
Bejelentkezés
Hirdetés |