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   78 / 840
(#) TavIR-AVR válasza zsuscsinyo hozzászólására (») Okt 30, 2008 /
 
Van kb. 7 féle szabvány jelsorozat...

Távszabályozók protokollja:
-ITT Protocol
-JVC Protocol
-NEC Protocol
-Nokia NRC17
-Sharp Protocol
-Sony SIRC
-Philips RC-5
-Philips RC-6
-Philips RC-MM
-Philips RECS80
-RCA Protocol
-X-Sat

Az RC5 a legelterjedtebb.
Protokollok: http://www.sbprojects.com/knowledge/ir/nec.htm


Bascom alatt a Sony és a NEC valamint a RC5 van készen...
(#) wg_kezdo hozzászólása Okt 30, 2008 /
 
Nos, kipróbáltam Topi szervó teszterét is és az sem működött.
A potmétert érzékeli kipróbáltam egy LED-el.
Valami jelet is küld, de a szervó csak kb egy mp-nként szépen elkezd jobbra menni lassan semmi mást nem csinál.
Kipróbáltam másik szervóval azon is ugyanez.

TowerPro SG-50 Micro Servo
Ezzel próbáltam ki először.

Most kipróbáltam egy induló készlettel amiben egy ATMega8-as van és külső kristály.
Igaz csak fényellenállásom volt, de az is megtette az tökéletesen működött az is amit pár hsz-el ezelőtt írtam.
(Vagyis a Bascom beépített servo-s cucca)

Így aztán teljesen tanácstalan vagyok.
Kipróbáltam úgy is, hogy nem potmeterrel, hanem Topi cikkében szereplő kódot szépen a két végállásba akartam forgatni a szervót, de úgy sem ment.
(#) san398 hozzászólása Okt 30, 2008 /
 
Sziasztok!
Megépítettem Topi AVR-Doper programozóját és csak ezt a hibaüzenetet kapom windows alatt "Az USB eszközt nem lehet felismerni"
- saját nyákot készítettem
- SMD alkatrészeket használtam(kivéve a kvarc és a két zener)
- forrasztás után a gyantát lemostam denszesszel
- szakadást zárlatot nem találtam
- az Atmega8 és a HC126 megkapja a tápfeszültséget
- az Atmega8-at PonyProg-al programoztam fel Bővebben: ezzel a programozóval
- írás előtt töröltem az AVR-t
- írás OK
- írás után csináltam egy visszaellenőrzést - eredmény OK
Csatoltam a nyák rajzot is hátha valaki észrevesz rajta valamit amit elszúrtam.Várom a segítő hozzászólásokat.Mit nézzek meg? Konfig biteknél be kellett volna valamit állítani?
(#) huba válasza san398 hozzászólására (») Okt 30, 2008 /
 
Szia. A biztositékbiteknél beállitottad a nagyfrekvenciás külső kristályoszcilátort? Divide clock by8-at kiszedted?
(#) san398 válasza huba hozzászólására (») Okt 30, 2008 /
 
Ez lesz akkor a baj Tudtam hogy nem kellene nekem AVR-el foglalkozni, de muszáj mert van pár AVR-es kapcsolás amit meg akarok építeni.
(#) huba válasza san398 hozzászólására (») Okt 30, 2008 /
 
Még ez a legkisseb baj. Akkor kezdödnek a bajok amikor kizárod magad a procibol. :no:
(#) zsuscsinyo válasza TavIR-AVR hozzászólására (») Okt 30, 2008 /
 
Köszi a linket igen hasznos Na a soros kommunikáción túl vagyok végre valahára.
Most jöhet a következő lépés az INTERRUPT.

Nagyjából értem melyik regisztert és engedélyező biteket kell állítani azonban még mindig nem tiszta. Eddig így csináltam:

(Atmega128)

RXD1/INT2 (27-es láb) a megszakítás

EIMSK 2.bit 'Engedélyezve az INT2
EICRA 5.bit 'ISC21 van csak bekapcsolva vagyis: Eső él interruptol
SREG 7.bit 'Globális megszakítás engedélyezve


Idáig jó minden?
Ha a Flag-et akarom nézni akkor az EIFR (Külső IT Flag) 2.bit-jét kell figyeljem?

Mikrobasic-kel összehoztam egy progit de még valami nem OK!

(#) san398 válasza huba hozzászólására (») Okt 30, 2008 /
 
Ezek közül mit kell beállítani mert itt nincs benne a CKDIV8?

Snap1.jpg
    
(#) zsuscsinyo válasza san398 hozzászólására (») Okt 30, 2008 /
 
Szia lehet hogy ez segít beállítani, nekem bevállt. Mondjuk nem programozónál, hanem hogy hogy állítsam a Fuse biteket.
Bővebben: Link
(#) san398 válasza zsuscsinyo hozzászólására (») Okt 30, 2008 /
 
Köszi de ezen én nem igazodom ki!!Mondjuk ez az én hiányosságom!!Közben szilva segítségével életet leheltünk a programozóba.Köszönet neki érte!!
(#) san398 válasza zsuscsinyo hozzászólására (») Okt 30, 2008 /
 
Természetesen neked is és hubának is köszönet a segítségért!
(#) tony994 hozzászólása Okt 31, 2008 /
 
Sziasztok!Én egy Atmeg16-ot szeretnék felprogramozni!A program megvan hozzá csak égtőm nincs, ahogy olvasgattam a fórumot láttam hogy 7 kábellel lehet ilyet csinálni....Gondolkodtam azon is hogy megveszem a STK200 as programozótBővebben: Link csak felmerült bennem az a kérdés hogy ezzel hogy programozom fel a 40 lábú AVR-emet!?Ha valaki tud egy nagyon egyszerű AVR égetőt ehez a Atmega 16 hoz vagy tuggya hol lehet olcsón ilyet vásárolni az kérem ossza meg velem!


üdv:tony994
(#) san398 válasza tony994 hozzászólására (») Okt 31, 2008 /
 
Ez elég egyszerű Bővebben: Link Szerintem az STK200 is megfelel a célnak, a tüskesorhoz kell csatlakoztatni az AVR megfelelő lábait, azt hogy melyik tüske melyik AVR-en lévő lábnak felel meg az függ attól, hogy milyen sorrendben vannak kivezetve a programozáshoz szükséges lábak és hogy milyen AVR-t akarsz programozni.A programozni kívánt AVR adatlapja nagy segítséget nyújt ahhoz hogy beazonosítsd a programozáshoz szükséges lábakat MOSI, MISO, CLK, RESET,SCK, VCC, GND, Az AVR ezen lábait kell összekötnöd a programozó ugyanezen kivezetéseivel.
(#) wg_kezdo hozzászólása Okt 31, 2008 /
 
Találtam egy rajozot ATTiny45-re.
Ebből nekem csak a kristály bekötése az érdekes. Jó úgy ahogy a rajzon van?

Kristály bekötése...
(#) Norberto válasza wg_kezdo hozzászólására (») Okt 31, 2008 /
 
Igen, jó. Egyébként manapság egyre többen használnak még egy plusz alkatrészt, ez pedig nem más, mint egy 1 megaohm-os ellenállás, párhuzamosan kötve a kvarccal.
(#) san398 válasza Norberto hozzászólására (») Okt 31, 2008 /
 
Mi a szerepe ennek az ellenállásnak a kvarccal párhuzamosan?
(#) wg_kezdo válasza Norberto hozzászólására (») Okt 31, 2008 /
 
Végül is 6 Ft nem oszt nem szoroz.
A kondik és a kvarc közé kössem? vagy egyből a lábakhoz?
Amúgy tényleg mi a szerepe?
(#) tibi0531 válasza san398 hozzászólására (») Okt 31, 2008 /
 
Ha jól tudom segíti a kvarc gyorsabb berezgését. És ha jól emlékszem szénréteg ellenállásnak kell lennie, mivel annak van egy pici induktivitása is.
(#) bozsvarigabor válasza vtsoftware hozzászólására (») Nov 1, 2008 /
 
Sziasztok.
Ugyanez a problémám...
mi a megoldás?
köszi.
(#) PLaci hozzászólása Nov 1, 2008 /
 
Sziasztok!
Két nagyon primitív kérdésem lenne az AVRstudiót ismerőkhöz.
1. Van-e itt is olyan változó ami mindig a program counter aktuális értékére mutat? (mint pl az MPLab alatt a $)
2. Hogy lehet egy portlábnak nevet deffiniálni, amire később hivatkozhatok a programozás során? Ilyennel próbálkoztam: "equ MTXD =PORTD. 3" de elkergetett vele.
(#) PLaci válasza PLaci hozzászólására (») Nov 2, 2008 /
 
Sziasztok!
Lehet nagyon pontatlanul fogalmaztam, ezért nem kapok választ?
Tehát assembliben programozom az ATMEL procit, az AVRStudio software-vel. 2 dolgot nem tudok.
1 hogy lehet portot definiálni, azaz szeretnék adni valamely port 1 I/O bitjének nevet, amivel később hivatkozni tudnék rá. pl.:
sbi PORTD, 3 ; H-ba viszi PD.3-at
De ide nem PORTD, 3 at szeretnék írni hanem valami előre definiált változót.

2. A PIC-es assemler progikban mindig hivatkozhatok a PC (program counter) aktuális értékére a $ jellel. Itt meg tudom-e ugyanezt tenni valahogyan?
PIC-es példa: BTFSC PORTA, 0
GOTO $-1
ez mindaddig visszaugrál a port tesztre amég a PORTA 0. bitjének értéke 1. Az ATMEL procinál a $ funkcióra nem találtam megoldást. Itt hogy kell?
Bocsi a hszzú levélért, remélem most érthetőbben írtam le a bajaimat, és valaki megírja a megoldást.
(#) fecus hozzászólása Nov 2, 2008 /
 
Üdv!
Ponyprog-ot szeretnék használni easyi2cbus hardwerrel, 24lc256 eeprom programozására. Használ valaki ilyet? Azt írja, hogy állítsam AVRISP I/O-ra. Ezzel a teszt is hibát ír ki. Ha easyI/O-ra állítom akkor a teszt ok. de nem tudom kiolvasni -11 hiba miatt. Hogyan kell beállítani?
(#) PLaci válasza PLaci hozzászólására (») Nov 2, 2008 /
 
Hmmmm...
Egyre több bajom van.
Ez szerintetek miért nem jó?
sec1: ldi temp, 256-61 ; 3D09 = 15625
out TCNT1H, temp
ldi temp, 256-9
out TCNT1L, temp

Ezt a hibaüzenetet kapom rá:
C:\avrsoros\avrsoros.asm(42): error: Operand 1 out of range: 0x85
C:\avrsoros\avrsoros.asm(44): error: Operand 1 out of range: 0x84

Addig értem, hogy túllépek valami határt, de nem értem miért? Csak nem itt is lapozgatni kellene mint a PIC16xxxx-eknél? Légyszi ha valaki tud küldjön valami linket ahol az ATMELEK assembler szintű programozásárol esik szó, mert amit találtam azok mind vagy a C, vagy a Basic-ot tárgyalják. Igérem most már nem fogom zavarni a listát ilyen levelekkel, de nem gondoltam, hogy ennyire zavaros lesz átállni erre a procira, mástól meg nem tudok kérdezni.
(#) tony994 hozzászólása Nov 2, 2008 /
 
Sziasztok!

Valaki tud olyan programot a 4*4*4-es led cubébe amit a Winamp vezérel soros porton?

üdv:tony994
(#) KrunCH válasza (») Nov 3, 2008 /
 
Szia!
Sajnos az .equ es .set parancsokkal csak egyetlen változának lehet nevet adni és a sbi es cbi két változót vár. Viszont használhatsz macro utasításokat a következő formában:

  1. ;turn on buzzer
  2. .macro BUZZ_ON
  3.         sbi  DDRB, 0                            ; set pin to output
  4. .endm
  5.  
  6. ;turn off buzzer
  7. .macro BUZZ_OFF
  8.         cbi  DDRB, 0                            ; set pin to input
  9. .endm



Ezután pedig a makró nevét illeszted a programba a megfelelő helyen. Én ilyen módon szoktam nevet adni a lábaknak, főleg olyankor amikor menet közben megváltozhatnak a használt lábak.

2. Az aktuális Program Counter-t a PC cimkével használhatod:

  1. rjmp PC          ;forever loop


Javítva: Frankye
(#) trudnai válasza PLaci hozzászólására (») Nov 3, 2008 /
 
Idézet:
„C:\avrsoros\avrsoros.asm(42): error: Operand 1 out of range: 0x85
C:\avrsoros\avrsoros.asm(44): error: Operand 1 out of range: 0x84”


Melyik AVR ez? ATmega8 es ATmega88 kozott pl elteres, hogy hova kerul a TCNT1. 88-as eseteben atkerult egy olyan IO cim tartomanyba ami nem erheto el az IO utasitasokkal, azaz SRAM cimzessel kell rairni (sts TCNT1H, temp). Ha megnezed az INC file-t, akkor ott is van megjegyzeskent...

Idézet:
„Légyszi ha valaki tud küldjön valami linket ahol az ATMELEK assembler szintű programozásárol esik szó, mert amit találtam azok mind vagy a C, vagy a Basic-ot tárgyalják.”


Nekem is ez volt a gondom, nem tlaltam semmi normalisat a neten, kiveve talan ezt a linket:
AVR Tutorial

Idézet:
„Igérem most már nem fogom zavarni a listát ilyen levelekkel, de nem gondoltam, hogy ennyire zavaros lesz átállni erre a procira, mástól meg nem tudok kérdezni.”


Ha masokat zavar letre kellene hozni egy AVR Assembly forumot, mert engem pl kifejezetten erdekelne egy ilyen forum.
(#) PLaci válasza trudnai hozzászólására (») Nov 3, 2008 /
 
"Megmentőm" Köszönöm.
Valószínű tényleg ez lesz a gond, mert valóban ATMega88 a proci. Én is szívesen támogatnám az Atmel procik assembler programozásáról szóló fórumot, de sajna ez nem az én hatásköröm. Rögtöm ki fogom próbálni amit írtál, és majd beszámolok az eredményről.
A másik kérdéere nem tudsz valami megoldást, vagy az Atemeleknél nincs erre lehetőség, itt mindig cimkézni kell? Mégegyszer köszi!
(#) zsuscsinyo hozzászólása Nov 3, 2008 /
 
Nem akarok tolakodni... de erre nem tudja senki sem a választ? Bővebben: Hozzászólás
(#) PLaci válasza KrunCH hozzászólására (») Nov 3, 2008 /
 
Szia KrunCH!
Neked is nagyon szépen köszi a leírtakat. Trudnai levelének annyira megörültem, hogy nem is néztem vissza a listát, csak később. Mindkettőtök tippjei nagyon jónak bizonyultak, és sokat haladtam előre.
Mégegyszer kösz! Üdv: Placi
(#) Dudus válasza zsuscsinyo hozzászólására (») Nov 3, 2008 /
 
A $0006 címre raktál egy JMP utasítást, ami az interrupt rutinodra mutat?
Következő: »»   78 / 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