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   502 / 840
(#) michael67 válasza vipera1997 hozzászólására (») Dec 28, 2012 /
 
A hestore árait nézve, kb 7000-8000 Ft. De ajánlom figyelmedbe zombee hozzászólását.
(#) vipera1997 válasza zombee hozzászólására (») Dec 28, 2012 /
 
Igazad lehet.Én ilyenfajta elektronikát nem annyira értem, de egy erősítőt bármikor összerakokk.
csak nemakarok erre most olyan sokat szánni.
(#) freechat válasza zombee hozzászólására (») Dec 28, 2012 /
 
Akkor máshogy fogalmazok:
Tudom mit jelent 512byte memória, C64-en kezdtem a programozást, asm és hasonló "nyelveken", nem keretrendszerfüggő mostani fiatal programozó vagyok aki kényelemből foglal mb-ket.

1. Ha jól emlékszem a fat-hoz, hogy menjen nem elég egy kisebb proci ezért nem akarom azt használni. Mármint a már meglévő projectekről beszélek.

2. Eddigi tapasztalataim, hogy egy főleg angolul dokumentált és ki tudja milyen forrásból, mennyire átnézett doksi alapján elkészített fat kezelő vagy bármi 3. féltől származó dolog telepítése, megértése, hibakeresése, tesztelése több idő, mint a célirányos szoftver elkészítése.

3. amit leírtam az kb 1-2 óra fejlesztést igényel főleg, hogy van már hasonló programom csak át kell írni. Az AVR oldala pedig így egyszerűbb.

A szoftver menni fog hidd el, ami kérdés volt eddig és ez után is az az elektronika, megköszönöm, ha arra tud valaki válaszolni, de ez a kioktatós stílus amolyan beképzelt vagyok kategóriának látszik. Főleg, hogy semmi információd nincs arról mihez értek és mihez nem. Én sem kritizáltalak és ez után sem áll szándékomban.
(#) zombee válasza freechat hozzászólására (») Dec 28, 2012 /
 
Én kérek elnézést ha megsértettelek, hidd el, nem volt szándékom. A nagyképűség és a kioktatás
nem az én stílusom, csak próbálok több infót kiszedni hogy segíthessek, mert így csak pofáraesés lesz.


1: Kérdés hogy mit tekintesz "kisebb proci"-nak. Az Intel8086 is "kisebb proci" mai szemmel.
Az 512 bájt memória elég lenne, csak kényelmetlen. Tekintve hogy egy blokk az SD kártyán
szintén 512 bájt és azt előbb be kell tölteni: hopp, máris oda 512 bájt, elfogyott a memória!
Szóval egy ATMega8 a minimum akkor is, ha "natív" adathalmazt csinálsz a kártyára.
Csak megjegyzem, nem én kezdtem el el ATMega48-al és 512 bájt memóriával dobálózni...

2: Ez néha igaz, néha nem. Kész projektnél ha nem térsz el sem a kapcsolási rajztól,
sem a programtól, azaz nem módosítasz semmit akkor az esetek többségében azonnal megy.

3: Ahogy érzed. De van egy tippem hogy ha cikkezel is, a megerőszakolt fájlrendszer és az
eltiport szabványok miatt nem sokan fogják megépíteni és használni. Mellesleg sokan nem
tartanak fenn külön kártyát erre a célra, osztozni kell a fényképezővel, zenelejátszóval.
Ezért egy FAT16 a minimum.
Az AVR oldal valóban egyszerűbb lesz, de a bonyolultabb részt, az SD-kártya hozzáférést
sehogy sem kerülheted el. Ehhez képest egy fat16 gyerekjáték.
A hozzászólás módosítva: Dec 28, 2012
(#) Cicow válasza TavIR-AVR hozzászólására (») Dec 28, 2012 /
 
isd 1620bsy, es tarsai egyszeru megoldas hang felvetelre es visszajatszasra, avr-vel vezerelheto a kinai cuccokban is ilyenek vannak.az adatlapon vannak megoldasok az avr bekotesre.
(#) zombee válasza Cicow hozzászólására (») Dec 28, 2012 /
 
Csak az a kár hogy ezekbe nagyon korlátozott a tárhely, míg a srác sok-sok mintát szeretne lejátszani. Ez érthető abból a szempontból is, hogy nem kell átjátszani(átjátszó kábel, hangerő tartomány optimalizálás, start-stop), elég neki egy másolás és kész.
(#) kiborg válasza freechat hozzászólására (») Dec 28, 2012 / 1
 
Szia!
A kollégáknak részben igaza van. Ha nem akarsz a kompatibilitással vesződni, akkor teljesen rajtad áll, hogy milyen rendszert hozol össze.
A google a barátod, (PÉLDÁUL)tud sok olyan kapcsolást mutatni, ahol AVR-hez illesztettek SD kártyát. Lemásolod és a HW készen van félig. Utána keresel AVD DAC kapcsolatra és dob példát.(PÉLDÁUL).
Feltéve ha elég a 8kHz és 8 bit felbontás. Ha nem ,akkor célcucc kell neked, de az meg drága lesz.
Ha megnézed az adatlapokat és elolvasod a paramétereket, rájössz, hogy milyen proci és milyen memória kell neked.
Az ne zavarjon, hogy olyat procit linkeltem, amit te nem fogsz használni, keresd meg ugyanazt a kimenetet.
Ha meg ajándék lesz, akkor is gondolom még a prototípusnál tartasz, itt meg ne a költséghatékonyság legyen az első, hanem a működés, és ha MŰKÖDIK, akkor tudod nézegetni, hogy min is tudsz egyszerűsíteni, hogy még működjön. Egy M8 vagy M16 kb 800Ft ? Megéri szívni kezdetben 400Ft miatt?
Legalábbis ez az én véleményem.
Üdv Kiborg
A hozzászólás módosítva: Dec 28, 2012
(#) fecus hozzászólása Dec 28, 2012 /
 
Olyan linket keresek ahol paraméterek alapján tudok válogatni az AVR procik között. Egy HD44780-as LCD-t (10 vagy 9 port), egy LED-et, 1 PWM-et egy 1wire hőmérőt, és két ADC-t szeretnék használni.
Van valakinek ötlete?
Ja, és DIP kellene mert egyedi cucc lesz.
A hozzászólás módosítva: Dec 28, 2012
(#) Istvanpisti válasza zombee hozzászólására (») Dec 28, 2012 /
 
Szia !

Ez a japán jóember (Chan) sokminden mellett, csinált SD kártya kezelőt is 512 Byte-nál kisebb SRAM-mal rendelkező AVR-ek számára. Jól kommentezett forrás fájlokkal.
Itt nézz körül: Link
(#) Istvanpisti válasza fecus hozzászólására (») Dec 28, 2012 /
 
Szia !

Ilyenre gondoltál ?

ATMEL uC.xls
    
(#) zombee válasza kiborg hozzászólására (») Dec 28, 2012 /
 
Annyit hozzátennék hogy a legegyszerűbb DAC az R-2R létra. Igaz hogy sok(n darab)
lábat felemészt, de legalább bármilyen sample rate mellett működni fog, csak az időzítést kell állítani!
(#) fecus válasza Istvanpisti hozzászólására (») Dec 28, 2012 /
 
Igen. Köszönöm. Ebben nincs Tiny. Abban ne is gondolkodjak?
A hozzászólás módosítva: Dec 28, 2012
(#) Istvanpisti válasza fecus hozzászólására (») Dec 28, 2012 /
 
De, hogyne lehetne Tiny-ben gondolkozni. Vannak olyan típusok, amelyeknek van elegendő I/O lába az általad leírt funkciókhoz.
Meggondolandó, hogy a karakteres LCD-t 4 bites módban használva csökken az I/O láb igény. Az általad leírtak szerint 14/15 I/O kell (ami rögtön kizár néhány Tiny-t.) Az ADC igény kizárja a 2313-at, de azért marad pl. Tiny26.
(#) fecus válasza Istvanpisti hozzászólására (») Dec 28, 2012 /
 
Köszönöm.
(#) djadji hozzászólása Dec 29, 2012 /
 
Hello!
Egy linket szeretnék, ahol az AVR-ről az alapoktól lehetne indulni. Az égetőt sem sikerül rákötnöm, és nem tudom hol rontom el (PIC-ket egy kicsit ismerem, AVR-t most látok először...)
Kerestem ilyen oldalt, de nem találtam AVRhez (PIC-hez volt annó)
(#) domokosf válasza djadji hozzászólására (») Dec 29, 2012 /
 
(#) Massawa válasza djadji hozzászólására (») Dec 29, 2012 /
 
Itt a HE-n is van több cikk, meg ott van az ATMEL honlapja, ahol (szinte minden megtalálható).
Azonkivül még van a Tavir honlap, kizárolag AVR-ekkel foglalkozik:

TAVIR
(#) kurosaki hozzászólása Dec 30, 2012 /
 
Sziasztok.
Régen voltam erre fele.
Egy kisseb kihagyás utá elövettem a Atiny 2313 és a atiny 45 ömet es azt veszem észre, hogy bekötöm rendesen a programozoval és mintha zárlatot kapna.Programozon a led kialszik és a gép is elveszti a programozot.Kihuzom a Földelést ujra észleli a gép. Meghaltak a Chipjeim??? előre is köszönöm a segitséget.

UI: a programozomon csak 1 DB GND mükodik a többit nem is eszleli.. USBASP programozo.
A hozzászólás módosítva: Dec 30, 2012
(#) kiborg hozzászólása Dec 30, 2012 /
 
Hali!
Kérdésem lenne a közösség felé, főleg azoknak akik vágják az ASM-et.
Ha egy adott regiszter(pl:R16) egyik bitjét(0.bit) akarom 0-ba állítani (törölni) arra milyen lehetőségem van az
  1. ANDI R16,0b11111110
utasításon kívül?
  1. CLT
  2. BST R16,0
ez sem szimpatikus, mert mindig le fogom felejteni a CLT-t vagy SET-t.
Tényleg nincs olyan utasítás, mint az SBI és CBI, csak regiszterre vonatkozóan, vagy csak én vagyok láma ?
Üdv Kiborg
(#) zolee1209 válasza kiborg hozzászólására (») Dec 30, 2012 /
 
CBR és SBR utasítások nem jók?

  1. SBR r16,(1<<0)
  2. CBR r16,(1<<0) ; null a bit helyiértéke


r0- r15-ig csak közvetve, r16 fölött közvetlenül használhatod.
A hozzászólás módosítva: Dec 30, 2012
(#) kiborg válasza zolee1209 hozzászólására (») Dec 30, 2012 /
 
Oké, köszi, ez eddig jó, de pl:
  1. .equ led = 7
  2. .equ led_kimenet = portd
  3. sbi led_kimenet,led

Ugye itt el van nevezve a bit és később, ha csak át akarom tenni a D7-ről a D2-re, akkor elég csak egy helyen megváltoztatnom, nem kell végignyálaznom a programot és utána még kétszer, hogy hol is hagytam ki. Remélem így már jobban érthető, hogy mit is akarok csinálni. A (1<<0)-t hogy lehetne helyettesíteni egy névvel/szimbólummal ?
(#) zolee1209 válasza kiborg hozzászólására (») Dec 30, 2012 /
 
  1. .equ led = 7
  2. .equ led_kimenet = portd
  3.  
  4. sbr r16,(1<<led)
  5. out led_kimenet,r16
(#) zombee válasza kiborg hozzászólására (») Dec 30, 2012 /
 
A második lehetőséget már el is rontottad, a "BST" helyett "BLD"-t kell használni.
Egyébként ez utóbbi módszert nem szokás így alkalmazni, mivel 2 órajel kell neki.

Az elsőre pedig egy korrekt variáció, így szokás:
  1. ANDI R16, ~(1<<0) ;a nulla a bit sorszáma


Ha nagyon szép kódot akarsz akkor muszáj makrót betenni. Ha az ilyen makrókat beteszed
egy külön fájlba akkor csak azt kell meghívnod, pont úgy mint az IC definíciós fájlt is.
  1. .MACRO CLRBIT
  2.   ANDI @0, ~(1<<@1)
  3. .ENDMACRO
  4.  
  5. CLRBIT R16,0


Az SBR/CBR részt szerintem jól eltolták az Atmel-nél, mivel nemcsak a funkció, de még a kódja is
teljesen megegyezik az ORI/ANDI műveletekével ezért épeszű ember nem (sűrűn) használja.
A hozzászólás módosítva: Dec 30, 2012
(#) kiborg válasza zolee1209 hozzászólására (») Dec 30, 2012 /
 
Aha.
De miért kell az
  1. (1<<led)
, miért nem elég ha csak azt írom, hogy
  1. led
? Az sbi-nél elég, ennél miért nem ?

zombee: igazad van, rontottam, de jót akartam írni . Másik kérdés: Ha makrót használok, akkor a
  1. .MACRO CLRBIT
  2.       ANDI @0, ~(1<<@1)
  3.     .ENDMACRO
  4.      
  5.     CLRBIT R16,0

részben a 0-bitet nevezhetem-e el pl: jelzobit-nek?
A hozzászólás módosítva: Dec 30, 2012
(#) zombee válasza kiborg hozzászólására (») Dec 30, 2012 /
 
Az sbi/cbi csak I/O regisztereknél használható, a műveleti regiszterekre nem csináltak ilyen okosságot!
(#) kiborg válasza zombee hozzászólására (») Dec 30, 2012 /
 
SBI/CBI tiszta, nincs velük gond, csak azzal a vacak CBR/SBR párossal
közben jól módosítottam az előzőt
illetve elmagyaráznád, hogy a @-jel mit is jelent és mit csinál a kódod pontosan ?
A hozzászólás módosítva: Dec 30, 2012
(#) kiborg válasza zombee hozzászólására (») Dec 30, 2012 /
 
illetve: segítenél abban, hogy az általad írt makrónak a setbit megfelelőjét is megosztanád velem?
(#) zolee1209 válasza zombee hozzászólására (») Dec 30, 2012 /
 
Idézet:
„Az SBR/CBR részt szerintem jól eltolták az Atmel-nél, mivel nemcsak a funkció, de még a kódja is
teljesen megegyezik az ORI/ANDI műveletekével ezért épeszű ember nem (sűrűn) használja.”


Az ORI művelet valóban megegyezik az SBR művelettel, hiszen logikailag azonosak, de az ANDI és CBR művelet nem!

Idézet:
„Az sbi/cbi csak I/O regisztereknél használható, a műveleti regiszterekre nem csináltak ilyen okosságot!”

Ezzel viszont egyet értek, néha jó lenne, ha lenne...

De, ha már az okosságoknál tartunk, akkor mi értelme van a BSET, BCLR utasításnak, ha vannak külön flag beállító/ törlő utasítások?!
(#) sikolymester válasza (Felhasználó 15355) hozzászólására (») Dec 30, 2012 /
 
Egészen röviden: HID mód linux alatt. CDC windows alatt.
(#) zombee válasza zolee1209 hozzászólására (») Dec 30, 2012 /
 
Valóban, CBR és ANDI nem pontosan ugyanaz. A CBR-nél ezt találtam a doksiban:
16-bit Opcode: (see ANDI with K complemented)
Szóval mégiscsak -majdnem- ugyanaz kerül bele, csak az értéket negálja.

BSET/BCLR: valójában ezek sem léteznek mert megvan a megfelelőjük, csak valaki biztos unatkozott,
vagy szóltak a marketingesek hogy kevés az utasítás, tegyenek hozzá valamit.
Hát nem ugyanaz a kettő(?):
BSET: 1001 0100 0sss 1000
SEI: 1001 0100 0111 1000

Az ugró utasítások között is találni teljesen azonosakat. Valójában arról szól a dolog, hogy beletettek
egy kis redundanciát, hisz sose lehet tudni hogy egyik embernek ez, másiknak az tetszik.
Az egyetlen bites beállítás/törlés is ott van, egy utasítással megoldható, csak nem kapott
hivatalos mnemonikont, ezért kell az ANDI/ORI vagy CBR/SBR-t ilyen körülményesen használni.
Épp tervezek egy jó kis disassemblert, de ezen redundanciák miatt gondolni kell más utasításokra is.
A hozzászólás módosítva: Dec 30, 2012
Következő: »»   502 / 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