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   152 / 840
(#) Sir-Nyeteg válasza tpeter hozzászólására (») Szept 23, 2009 /
 
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.
(#) tpeter válasza Sir-Nyeteg hozzászólására (») Szept 23, 2009 /
 
lehet hogy még korábban valami rövidzárral kinyírtam a Doper bufferjét? Hogy tudnám ez leellenőrizni?
(#) janyjozsef válasza ATtiny hozzászólására (») Szept 23, 2009 /
 
É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.
(#) tpeter hozzászólása Szept 23, 2009 /
 
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
(#) vzoole válasza tpeter hozzászólására (») Szept 24, 2009 /
 
Nem... ha külső kvarcra van állítva a kontroller akkor rá is kell rakni, különben nem megy.
(#) janyjozsef válasza vzoole hozzászólására (») Szept 24, 2009 /
 
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.
(#) Sir-Nyeteg válasza tpeter hozzászólására (») Szept 24, 2009 /
 
Legegyszerűbben: csere. Én már kétszer kinyirtam, de a PC felismerte ettől függetlenül.
(#) Vargab86 hozzászólása Szept 24, 2009 /
 
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.

Névtelen.jpg
    
(#) tpeter válasza janyjozsef hozzászólására (») Szept 24, 2009 /
 
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.
(#) levy_k válasza Vargab86 hozzászólására (») Szept 24, 2009 /
 
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.
(#) Vargab86 válasza levy_k hozzászólására (») Szept 24, 2009 /
 
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...
(#) levy_k válasza Vargab86 hozzászólására (») Szept 24, 2009 /
 
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.
(#) adamtui_93 hozzászólása Szept 24, 2009 /
 
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 ?
(#) zolee1209 válasza adamtui_93 hozzászólására (») Szept 24, 2009 /
 
Ez a topik is erről szól! Bőven belefér a témájába az, amit felsoroltál! :yes:
Szerintem.
(#) vzoole válasza adamtui_93 hozzászólására (») Szept 24, 2009 /
 
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.
(#) adamtui_93 hozzászólása Szept 24, 2009 /
 
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?
(#) adamtui_93 hozzászólása Szept 24, 2009 /
 
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
(#) ATtiny válasza adamtui_93 hozzászólására (») Szept 24, 2009 /
 
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.
(#) gtk válasza adamtui_93 hozzászólására (») Szept 24, 2009 /
 
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.
(#) trudnai válasza gtk hozzászólására (») Szept 25, 2009 /
 
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.
(#) janyjozsef hozzászólása Szept 25, 2009 /
 
É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?
(#) zolee1209 válasza janyjozsef hozzászólására (») Szept 25, 2009 /
 
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:
(#) trudnai válasza janyjozsef hozzászólására (») Szept 25, 2009 /
 
Nagyon meglepodnek, ha nem lenne mar tobb szaz vagy ezer hasonlo oldal...
(#) levy_k hozzászólása Szept 25, 2009 /
 
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.
(#) trudnai hozzászólása Szept 25, 2009 /
 
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)?
(#) janyjozsef válasza trudnai hozzászólására (») Szept 25, 2009 /
 
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?
(#) janyjozsef válasza trudnai hozzászólására (») Szept 25, 2009 /
 
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)
(#) trudnai válasza janyjozsef hozzászólására (») Szept 26, 2009 /
 
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
(#) trudnai válasza janyjozsef hozzászólására (») Szept 26, 2009 /
 
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...
(#) edison14 hozzászólása Szept 26, 2009 /
 
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.
Következő: »»   152 / 840
Bejelentkezés

Belépés

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