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   24 / 839
(#) zeusz7 hozzászólása Jún 13, 2007 /
 
Kezdő kérdés:
Mi az az SPL és miért jó, hogy a program elején DF-et írunk bele?

START:
ldi TEMP, 0xDF
out SPL,TEMP

köszi
(#) Dudus válasza zeusz7 hozzászólására (») Jún 13, 2007 /
 
Stack Pointer Low(byte) = 0xDF

Ezzel beállítod a Stack-et.
(#) zeusz7 válasza Dudus hozzászólására (») Jún 13, 2007 /
 
bocs a hülye kérdésért, de az miért jó? még kezdő vagyok és csak kaptam ezt a programot, próbálok rájönni a dolgokra
(#) Dudus válasza zeusz7 hozzászólására (») Jún 13, 2007 /
 
Szerintem töltsd le az adatlapot az AVR-hez és abban szépen el van magyarázva. A stack egy kijelölt memóriaterület ahová átmeneti adatokat ment.....pici túlzással mint a temp mappa....
(#) zeusz7 hozzászólása Jún 13, 2007 /
 
ok, köszi

Nem találok olyan utasítást, amivel vizsgálhatnám pl. a pinb 7.bitjének állapotát és annak függvényében csinálnék vmit.
Csak két regisztert tudok összehasonlítani, így maszkolással oldottam meg, ami nem vmi szép.

Hogy kéne?
(#) gtk válasza zeusz7 hozzászólására (») Jún 13, 2007 /
 
A mask szerintem rendben van.
(#) gtk válasza zeusz7 hozzászólására (») Jún 13, 2007 /
 
Esetleg lehet ezzel kezdeni valamit:

Idézet:

sbic reg , bit ;kovetkezo sort atugorja ha az adott helyerteku bit 0
sbis reg , bit ;kovetkezo sort atugorja ha az adott helyerteku bit 1”
(#) zeusz7 válasza gtk hozzászólására (») Jún 13, 2007 /
 
köszi, tökéletes, ez így sokkal rövidebb, ezt kerestem

Következő lépésnek azt szeretném ha menne futófény és ha a gombot megnyomom, akkor addig megállna, amíg nyomva tartom. Ezt megszakítással szeretném, de egyelőre lövésem sincs, hogy kell megszakítást kezelni. Annyit tudok, hogy 2 külső megszakítást tud és van vmi vektora mind a kettőnek.
Hogy kell programban kezelni?
(#) Dudus válasza zeusz7 hozzászólására (») Jún 14, 2007 /
 
Az egyik I/O lábra rakj fel egy pergésmentesített kapcsolót és az előbb említett módszerrel figyeld a prot állapotát. Ehhez szerintem nem kell Int-et használni.

Hidd el, hogy végig kellene olvasnod egy adatlapot

De itt is találsz infókat.
(#) PLaci hozzászólása Jún 14, 2007 /
 
Sziasztok!
Sikeresen kizártam magam programozáskor az ATtiny 2313-ból Ha a BASCOM-AVR progival akarom olvastatni a konfigurációs biteket A "READLN entry not found" választ kapom Próbáltam egy külső 1 Mhz-s órajelet is adni a proci 5-ös lábára, sajnos a helyzet változatlan Az zavar, hogy nem tudom mit rontok el, mert kínosan ügyeltem arra, hogy csak az órajelet állítsam át külső quarc-ra. Van megoldás? Esetleg tud valaki olyan site-t hol van párhuzamos programozó kapcsolási rajz az atmelhez? Ha jól tudom azzal lehetne "meggyógyítani"
Előre is köszi a segítséget! Laci
(#) zb hozzászólása Jún 14, 2007 /
 
Szia!

Ha valóban csak az órajelforrást állítottad át, akkor annak mennie kell. De ugye nem mindegy hogy mire állítottad. Én speciel nem foglalkoztam soha tiny-vel, nála nem tudom milyen lehetőségek vannak, de a megáknál nagyon sok féle választási lehetőség van, mind frekvencia, mind oszcillátortípust illetően. Gondolom nem hiába, és ha nem olyat raksz mellé amit beállítottál, akkor nem indul el. Újraéleszteni ilyet működő külső oszci nélkül szerintem csak JTAG progizóval lehet, azt hiszem olyankor az adja az órajelet is a procinak. De ebben sem vagyok biztos, mert ilyet sem használtam még, de lassan beszerzek egyet mert nagyon hasznos dolog tud lenni a "riltájm dibagolás" is.
(#) PLaci válasza zb hozzászólására (») Jún 14, 2007 /
 
Szia!
Köszi a választ. Látom, hogy te inkább a Megával foglalkozol, mert ott van Jtag interface is. Lyukasra néztem az ATtiny pdf-jét, de egy fia jtag interface-re utaló sort sem találok. Pedig itt figyel az asztalomon egy ATmega16-al felépített Jtag is
Azt gondoltam megadtad a megoldást, még kicsit szégyelltem is, hogy nem gondoltam erre, de sajna jtag-nak se híre se hamva...
(#) zeusz7 hozzászólása Jún 14, 2007 /
 
A megszakítások lelki világát szeretném megérteni, elolvastam párszor a leírást, eddig ennyire jutottam. A PCINT7-tel szeretnék megszakítást generálni.

1. A PCMSK-ba nem tudok írni, azt mondja, hogy nem létező regiszter, pedig azt hittem, hogy ha a 7.bitjét 1-be állítom, akkor engedélyezem a PCINT7-et megszakításnak.

2. Tényleg kimenetnek kell állítani azt a lábat, amit külső megszakításnak akarok használni? Ezt olvastam, csak fura.

3. Mit kéne még beállítani?

4. Annak a rutinnak,ahol le akarom írni, hogy megszakítás esetén mi legyen, annak mi a neve? Ez nem világos.

.include "2313def.inc"

.cseg
.org 0x0000
rjmp START

.def TEMP=R16
.def VALT=R17
START:
ldi TEMP, 0xDF
out SPL,TEMP

ldi TEMP, 0xff
out DDRB,TEMP

sbr VALT,5
out GIMSK,VALT
clr VALT
sbr VALT,7
out PCMSK,VALT
sei

GO: ldi TEMP,0b00001111
out PORTB,TEMP

;INT0:
clr TEMP
out PORTB,TEMP

(#) Woid hozzászólása Jún 14, 2007 /
 
Üdv. Én a képen szereplő dolgot szeretném összerakni. Kérdésem csak annyi lenne hogy az 1 és 13-25 lábak az X1 csatlakozón földre kössem vagy csak "lógjanak a levegőben?

4d.gif
    
(#) tibi0531 válasza PLaci hozzászólására (») Jún 14, 2007 /
 
Én is hasonlóan jártam a Mega8-al. Találtam a neten egy ParProg nevü sw-t:
http://www.e-lab.de/downloads/diverse/ParProg2.zip ami emulálja a párhuzamos programozót, és a fuse biteket alaphelyzetbe állítja
Ezt írtam át basic-re és egy 8515-re töltöttem le, és működött. Csak nézd meg, hogy aznos módon kell-e a tiny2313-at páhuzamosan programozni.
(#) zb válasza Woid hozzászólására (») Jún 14, 2007 /
 
Szia!
Gondolom ez egy párhuzamos portra köthető valami. Ez esetben azok csak lógjanak!
(#) PLaci válasza zeusz7 hozzászólására (») Jún 14, 2007 /
 
Szia!
Nem akarok túl nagy hülyeséget mondani, de nem lehet hogy a GIMSK 7. bitjét (INT1) is be kell billenteni ahhoz, hogy legyen IRQ-d a RB.0-RB.2 változásakor?
(#) Woid válasza zb hozzászólására (») Jún 14, 2007 /
 
Ez egy stk200 lenne. Namármost, én ezt úgy szeretném összerakni hogy nem a céláramkörben programozni, hanem mint egy önálló "égető", IC foglalattal, saját táppal. Ehhez nincs valakinek elvi rajza? Végülis csak ezt az stk200-at kellene átalakitni. Tud valaki segiteni?
(#) PLaci válasza Woid hozzászólására (») Jún 14, 2007 /
 
Ez nálam is így működik ahogy leírtad. Az STK-200 10 polusú csatlakozóját rádugom egy másik kis panelre amin van egy 5V-os stabkocka, és egy 20 lábú foglalat. Ha extrát akarsz tehetsz rá még egy 40 lábút is. Mellette még van egy 4 Mhz-s quarc a 4-es 5-ös lábon, illetve még egy oszci egy 74HCT14-es Smidth trigger 2 kapujából (így kell írni?) Amit egy jumperrel tudok rárakni az 5-ös lábra.
(Ki is zártam magam már vele 2 prociból) de a többi fut
(#) zb hozzászólása Jún 14, 2007 /
 
Az én programozóm meg egy kettévágott printerkábel végére forasztott 5 pólusú tüskesor, és az összes procit tudom progizni.
(#) zeusz7 válasza PLaci hozzászólására (») Jún 14, 2007 /
 
Én úgy látom, hogy az int1 és a pcint különálló interruptok nincs közük egymáshoz.

Nem értem, hogy a PCMSK-ba miért nem tudok írni, azt mondja, hogy undefined symbol...

.include "2313def.inc"

.cseg
.org 0x0000
rjmp START

.def TEMP=R16
.def VALT=R17
START:
ldi TEMP, 0xDF
out SPL,TEMP

ldi TEMP, 0xff
out DDRB,TEMP

sei
ldi VALT, 0b00100000
out GIMSK,VALT

ldi VALT, 0b10000000
out PCMSK,VALT

GO: ldi TEMP,0b00001111
out PORTB,TEMP
rjmp GO

PCINT:
clr TEMP
out PORTB,TEMP

(#) PLaci válasza zeusz7 hozzászólására (») Jún 15, 2007 /
 
Szia! csak villámgyorsan mert mennem kell.
Ha az include filebe a tn2313.inc-et adod meg, akkor gond nélkül lefordul az AVRstudio assemblere alatt. Ez az include az ATtiny includéje, még a másik az a AT90S2313-é. Ott kicsit másként nevezik a regisztert. Sok sikert! (nálam lefutott hiba nélkül)
(#) zeusz7 válasza PLaci hozzászólására (») Jún 15, 2007 /
 
köszönöm :worship:
életben rá nem jöttem volna és így tényleg működik
(#) szucs_g hozzászólása Jún 17, 2007 /
 
Sziasztok! Vettem FT245R-t. Összeforrasztottam, ahogy kell, a pöce fel is ismerte. Csak az az egyetlen bajom, hogy nekem LPT port kellett volna ez meg csupán com akárhánynak ismeri fel. Van hozzá olyan driver, ami lpt-portot produkál vagy miként lehet megoldani?

A hócipőm kivan, hogy nem lehet egy valódi cuccost összehozni...
(#) potyo válasza szucs_g hozzászólására (») Jún 17, 2007 /
 
Az FT245 az COM portként jelenik meg, ez benne van az adatlapjában is. Amit a COM portra küldesz, az kimegy a párhuzamos lábakra, ugyanígy ha valami ír a párhuzamos portra, akkor az neked mint soros adatbevitel jelenik meg a kezelőprogramban. Mihez kellett volna?
(#) PLaci hozzászólása Jún 18, 2007 /
 
Sziasztok!
Már megint én. Már látszik az alagút végén a fény...
Kaptam egy kapcsolást egy ATMega8-al ami default (gyári) állapotba hozná az ATTiny2313-t Végül is egy párhuzamos programozó, de csak a config biteket állítja alaphelyzetbe. Az a gondom, hogy a hozzá valo firmware Pascal nyelven íródott, és nekem kicsit bele kell nyúlnom, ha az ATTinyt akarom alapállapotba hozni. Van valakinek olyan programja ami befordítja a Pascal nyelven írt forrást gépi kódba? (már az assembler is elég lenne). A neten találtam egy pasavr.exe-t, fel is mászott a gépre de fordításkor azt mondja, nem regisztrált, és így az én forrásom túl nagy neki.
Ha valaki tudna segíteni írjon, és már küldöm is a pascal forrást.
Ha összejön a projekt természetesen közkincsé teszem
Tudom, rajtam kívül is van akinek hever a fiókba elrontott ATTiny
(#) PLaci hozzászólása Jún 19, 2007 /
 
Sziasztok!
Senki nem tud pascal fordítót AVR-re?
Sajna én amiket kerestem azok gigászi méretűek és millió olyan kérdést tesznek fel amiről fogalmam nincs.
Aki ért hozzá kérem segítsen egy fordítás erejéig. Már ha asm-be lenne a fordítás azzal is boldog lennék. (nem tudok pascalul)
(#) robosanyi hozzászólása Jún 20, 2007 /
 
Sziasztok!

A segítségeteket szeretném kérni.
Van egy MR-C 3024-es robotvezérlőm amiben egy ATMega128-as mikrokontroller van.Ez a Robonova-1 robotnak az agya.
Van hozzá gyári cd,visualbasic-es programozófelület.
Viszont sehol nem találok egyszerű könyvet vagy leírást a visual basicről,
(magyar nyelven,józan paraszti ésszel felfoghatót)
amiből megtanulhatnám programozni.

A másik kérdésem, hogy mivel kicsi a memóriája, de RS-232-ről folyamatosan is működtethető, szeretnék a PC és a robot közé egy-egy gyufásdoboznál nem nagyobb rádiós átvitelt, hogy ne legyen útban a kábel, mint a köldökzsinór.
Ami a PC-n van, az lehet bármekkora, de ami a roboton van ott nem sok a hely.(a roboton 6V-os táp van)

Minden segítséget szivesen fogadok, az adó-vevőre ötletet, esetleg kivitelezőt

Előre is köszi

robosanyi@emailstudio.hu
06-20-436-8000
(#) gtk válasza robosanyi hozzászólására (») Jún 20, 2007 /
 
Idézet:
„Van hozzá gyári cd,visualbasic-es programozófelület”

1. En nem tudok rola hogy visual basicben lehetne AVR-t programozni,arrol viszont tudok hogy bascom-ban lehet,errol meg olvashatsz a http://avr.tavir.hu oldalon.

2. Nezz szet a kapcsolasok kozott, pontosabban:
Idézet:
„RF áramkörök, rádió technika”
fejezetnel.
(#) robosanyi válasza gtk hozzászólására (») Jún 20, 2007 /
 
Az ATmega128 hoz adtak egy jogtiszta RoboBasic (bonyásabb programfelület),
egy RoboScript (egyszerű programfelület),
és egy RoboRemocon (távirányító install) progit.

Azlehet hogy az AVR-t nem lehet, de az ATMega meg az AVR ha jól tudom nem azonos tulajdonságokkal bír.
(ha bár én elég keveset konyítok hozzá)
Következő: »»   24 / 839
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