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   154 / 840
(#) Topi válasza trudnai hozzászólására (») Szept 30, 2009 /
 
Nem lehet hogy a típus konverzió okozza? Próbáld meg (unsigned char) helyett...

Tévedtem. Nem az okozza. Próbálom kideríteni.
(#) Topi válasza Topi hozzászólására (») Szept 30, 2009 /
 
MEGVAN!

ISR legelején van egy eor r1, r1. Ebben ugye nulla lesz. Kipróbáltam, hogy más ISR-nél nullát használok. Oda is r1-et ír. Ergo: A fordító az r1-ben előállít egy nullát. Mindenhol, ahol nullát írsz _bárhová_, ott r1-et használ. ISR belépésnél r1 = 0-át használja fel.

Azonnal ahogy PORTB = 1-et írsz, máris áthelyezi egy másik regiszterbe. Gondolom egyszerűbb a fordítónak egy fizikai regiszter értékét felhasználni, mint pl clr -t vagy bármit használni. A nullát sem törléssel, hanem dupla exkluzív or-ral hozza létre. Ennek lehet hogy HW-es oka van. De ebben azért nem lennék biztos.
(#) trudnai válasza Topi hozzászólására (») Szept 30, 2009 /
 
Igen, koszonom a valaszt, idokozben az AVRFreaks-en is feltettem ezt a kerdest:

Bővebben: Link

Azt magyaraztak, hogy a fordito "__zero_reg__"-nek hasznalja az r1-et, es igy optimalisabban kepes az IO portokba torteno nullazasokat elkovetni. (merthogy CLR nem megy IO regisztereken)

Ugy tunik, hogy az r1 nullazasa az a prologue dolga lenne -- merthogy MUL utasitasnal az r1-et szinten hasznalja es igy pl. egy ISR rutin eseteben nem lehetunk biztosak, hogy az r1 0 volt-e mielott a rutinba beleptunk...
(#) vzoole válasza Barbár hozzászólására (») Szept 30, 2009 /
 
AVR mintaprogramok
(összesen még csak egy darab, de pont ADC)
(#) gtk válasza Topi hozzászólására (») Szept 30, 2009 /
 
Idézet:
„Mindenhol, ahol nullát írsz _bárhová_, ott r1-et használ.”
Ezt en is megfigyeltem.
(#) ATtiny hozzászólása Okt 1, 2009 /
 
Készül szép lassan a szögjeladós cikk. Van rá igény, hogy a viszonylag egyszerű egyszeres és kétszeres dekódoláshoz is írjak kódot c-ben? Eredetileg úgy terveztem, hogy csak a négyszeres dekódoláshoz készül egy demó kód és kapcsolás, mivel ez a legtrükkösebb. De közben fel merült bennem, hogy lehet volna igény az egyszerűbb dekódolási módszerek ismertetésére is. Természetesen ez több idő -> Lassabban lesz kész a cikk.
(#) Barbár válasza vzoole hozzászólására (») Okt 1, 2009 /
 
Köszi szépen a linket!
Sikerült megoldani a dolgot

Andris
(#) oregharcos hozzászólása Okt 1, 2009 /
 
Üdv mindenkinek! A lenti linken, a Topinak
a leírásában van egy jó csengő.
Olyan gondom van, hogy én, egy az általam kedvelt
kis dallamrészletet szeretném beégetni.
Letöltöttem a forráskódot, de nincs olyan file,
amelyiket egy az egyben, le lehetne fordítani. Ha jól látom a "main.c" a vezérlő és "melodies.c" a dallamrészeket tartalmazza,
tehát ezeket kell összefüzni, és lefordítani,
vagy nem jól látom? Hogyan lehet megoldani,
hogy egy db. rövid dallam szóljon, mit és
hogyan kell átírni? Járatlan vagyok a proramozásban,
a "Nullától a robotig"-című PIC-es cikket tanulmányoztam, égetőt is összehoztam,
villognak a ledek. Ez teljesen más, a C-nyelv,
és az AVR, teljesen ismeretlen.
Kérlek benneteket, hogy segítsetek.
Köszönettel!
oregharcos
Bővebben: Link
(#) Sir-Nyeteg válasza ATtiny hozzászólására (») Okt 1, 2009 /
 
Üdv!
Szerintem erre is lenne igény, részemről biztosan, de ilyenről már olvastam valahol, így nekem elsőre az jutott eszembe, hogy:
A következő linken található egy leírás erről a megoldásról: "link", de én ezt a felbontást megnégyszereztem és íme ez olvasható ezen az oldalon
Szerintem ez bőven elegendő lenne.
(Esetleg akár lehetne több részes cikket is készíteni róla)
(#) gtk válasza ATtiny hozzászólására (») Okt 1, 2009 /
 
Minel terjedelmesebben, reszletesebben, tartalmasabban
(#) trudnai válasza ATtiny hozzászólására (») Okt 1, 2009 /
 
Akkor szokott jo lenni egy cikk, ha amolyan tutorial jellegu, az egyszerubb problematol fokozatosan halad a nehezebb feladatok fele. Ahogy az olvaso szedi fel a tudast kepes megerteni a kovetkezo lepest stb -- ill. ha bizonyos siznt tul sok neki akkor akar felbe is hagyhatja, es meg igy is szedett fel hasznos tudasanyagot a cikkbol...
(#) ATtiny válasza trudnai hozzászólására (») Okt 1, 2009 /
 
Igen, ebben van valami. Majd igyekszem úgy felépíteni a cikket, hogy a nehezebb rész (négyszeres dekódolás) nélkül is használható legyen. Persze ehhez akkor az is hozzá tartozik, hogy lesz C kód az egyszerű dekódoláshoz is.
(#) aquafood hozzászólása Okt 2, 2009 /
 
Sziasztok!

Atmega8-at szeretnék soros porton programozni, az alábbi kapcsolási rajzot találtam. Összeteszem és Ponyprog-gal próbálom programozni, de nem sikerül. A ponyprog, olyan hibaüzenetet küld, hogy nem találja az eszközt.
Ha valaki tudna segíteni, hogy hol a hiba, mit csinálok rosszul.
Köszi!

max232.png
    
(#) kiborg válasza aquafood hozzászólására (») Okt 2, 2009 /
 
Hali!

Azért,mert ez egy sima rs232-ek kommunikáció RX-TX vonalon. Ez csak akkor működőképes, ha már fut valamilyen program a uC-ben.
PonyProg-al valsz a párhuzamos port lesz a nyerő ISP-vel, ami ha izmos a printer portod,akkor pár szál vezeték, de legrosszabb esetben is csak egy IC az egész. Erről bővebb infó van a topicban és bőven lehet találni neten is.

Üdv Kiborg
(#) Droot hozzászólása Okt 2, 2009 /
 
Sziasztok!

Találkoztatok már ENC28J60 TCP/IP Stackkel avr-hez?


Pic-hez találtam, avr-hez nem.
(#) levy_k válasza Droot hozzászólására (») Okt 2, 2009 /
 
Az ENC28J60 nem TCP/IP stack, hanem csak Ethernet PHY + MAC illesztő.
Itt található egy leírás AVR + ENC-s megoldásra.
(#) Droot válasza levy_k hozzászólására (») Okt 2, 2009 /
 
Kösz a linket, itt is jártam.
A TCP/IP Stack az nem egy adott Ethernet illesztőhöz való példa "programhalom", amiben minden bennevan és nekünk kell kiválasztani, hogy mi kell, mi nem?
Arra volna szükségem, hogy egy flash-ben tárolok pár html fájlt és FTP-n keresztül tudok feltölteni.
A tixgraphics-esben sajnos nincs FTP, csak HTTP.
(#) levy_k válasza Droot hozzászólására (») Okt 2, 2009 /
 
Idézet:
„A TCP/IP Stack az nem egy adott Ethernet illesztőhöz való példa "programhalom", amiben minden bennevan és nekünk kell kiválasztani, hogy mi kell, mi nem?”

A TCP/IP stack az adatkapcsolati rétegere épül és socket csatlakozókat kezel. A HTTP, FTP stb. ilyen csatlakozókat használ az átvitelre.
(#) wir12 hozzászólása Okt 2, 2009 /
 
Hello mindenki!

Olyan kérdéssel fordulok hozzátok hogy egyszerűen meg lehetne oldani 3db 5V-os DC motor vezérlését külün külön?

(sebbeség szabályzás és forgás irány váltásra gondolok véletlen szerűen)

a választ előre is köszönöm
(#) TavIR-AVR válasza Droot hozzászólására (») Okt 2, 2009 /
 
Basciom illetve Arduino/C alatt megoldható egyszerűen (relatív). Csak az ENC revíziószámára is figyelj!

Bascom/Arduino + ENC28J60
(#) TavIR-AVR válasza wir12 hozzászólására (») Okt 2, 2009 /
 
Mindent +lehet....

Az irányváltás az ugye oda-vissza. Ez a legegyszerűbben valami hídkapcsolással megy (2 lábat foglal). sebesség alatt mondjuk feszültségszabályozás legyen. Ezt PWM-l megoldod, mondjuk a híd vezérlőjének egyik felével.

A 3 motorhoz kell 6 láb .
(#) wir12 válasza TavIR-AVR hozzászólására (») Okt 2, 2009 /
 
Köszi szépen de ez nekem egy kicsit érthetetlen ha kérhetnélek egy kicsit részletesebben írd le meghogy milyen AVR lenne erre a célra megfelelő ha kérhetnélek

(a fel programzzásal nem lenne gond szakoktatóm tud)
(#) kiborg hozzászólása Okt 3, 2009 /
 
Hali!

Egy Mega16 portbővítését szeretném megoldani egyetlen IC-vel.Minimálisan 25 kimenetre van szükségem (5x5x5LED CUbe a cél projekt) erre szeretnék használni sima egyszerű soros léptetésű IC-t (EGY TOKOT!!!)
Van valakinek valami ajánlata ?
Találtam egyvariációt de nem vagyok biztos benne, hogy erre gondoltam, mert csekély angol tudásommal arra jöttem rá,hogy ez többet is tud,és nem sima shift regiszterként működik,hanem címezni kell,stb...
Vagy én értem félre az adatlapot ?
Olyan kellene,mint a CD4094. Csak nagyobb lábszámban. Létezik ?

Üdv Kiborg
(#) zolee1209 válasza kiborg hozzászólására (») Okt 3, 2009 /
 
A Mega16-nak 32 IO-ja van, ebből bőven kijön a 25! Miért szeretnéd külső IC-vel meghajtani a kockát?
(#) kiborg válasza zolee1209 hozzászólására (») Okt 3, 2009 /
 
4*8=32 IO láb.
Lejön 4 IO JTAG-nek,mert azon fejlesztek és debugolok.
Lejön 2 db a goboknak, 2 db az RS232-nek.
Marad 28 láb. 5 db kell a szinteknek,marad 23 láb,ami kevés.
Esetleg: 25 láb LEDekre, 3 láb multiplexelve a szinteknek (max 8 szint), de akkor még nincs hozzá külső memória pakolva,amit lehet nem ártana majd később.
Szóval ezért.

Kiborg

ui: a 25 IO csak egy szintre vonatkozik !!! Nincs benne a szint kiválasztásához szükséges IO portok száma!
(#) zolee1209 válasza kiborg hozzászólására (») Okt 3, 2009 /
 
Így már értem! :yes:
(#) zolee1209 válasza kiborg hozzászólására (») Okt 3, 2009 /
 
Közben eszembe jutott egy lehetőség, bár lehet, túlkombinálom az egészet, és jócskán lelassítaná a rendszert. A lényeg, hogy kellene egy shift regiszter, ezt sorosan fel tudod tölteni, vagyis elég két láb. A shift regi kimenetére ráakasztasz 3 darab latch-et, ezekbe betöltöd a megfelelő paramétereket, így még kell 3 láb, ez eddig 4. És a 3 latch kimenetére raksz még 3 latch-et, így elérve, hogy a kimeneten egyszerre jelenjen meg "adat". A három utolsó latch engedélyező lábát közösítheted, így lesz még egy plusz vezérlőlábad, ami összesen 5 darab IO-t jelent. A két darab latch egymás után nem tudom mennyire életképes, még nem próbáltam, csak tervbe van véve egy kijelzőhöz!
Ha nem érted esetleg mire gondolok, szólj és lerajzolom!
(#) janyjozsef válasza kiborg hozzászólására (») Okt 3, 2009 /
 
5x5 LED => 5+5LÁB => 10 láb multiplex módban.
(#) kiborg válasza zolee1209 hozzászólására (») Okt 3, 2009 /
 
Szia!

Köszi, de felesleges ennyire túlbonyolítani! Direkt az a célom, hogy 1 db IC-vel kelljen csak bővíteni a uC-t. Ez meg sokkal több. Ami te elmondtál 16bitesben találtam már SN74LS673, bár itt meg az a baj, hogy kicsi a max kimenő áram (8mA). Ezért vadászok más típust.

janyjozsef :
5x5 LED => 5+5LÁB => 10 láb multiplex módban.

Ezzel az a baj, hogy csökken a bekapcsolt állapotban töltött idő (kitöltési tényező) és ezzel együtt csökken a fényerő is.

Ha síkonként váltok, akkor 1/5-öd a kitöltési tényezőm, ha ledenként (multiplexelve), akkor meg 1/125-öd.
Köszi,de erre gondoltam és ezért elvetettem.

Kiborg

ui: aki angolos az nézze már át az első hozzászólásomban linkelt maxim IC adatlapját, hogy az soros bemenetű vagy vezérelni kell valami buszon keresztül.
(#) trudnai válasza kiborg hozzászólására (») Okt 3, 2009 /
 
SPI interface-en keresztul tudod vezerelni -- eleg egyszeru az interface, szoftveresen is siman meg tudod hozza irni az SPI modult. Gyakorlatilag megcimzed a port labat es beallitod, hogy alacsony vagy magas legyen. Ha bemenetnek hasznalod akkor pedig kiolvasod -- ill. akar interruptot is kerhetsz az eszkoztol ha valamelyik bemenet valtozik. Nekem egeszen szimpatikusnak tunik...
Következő: »»   154 / 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