Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

Jaka literatura do nauki programowania AVR

Miro
-
-
Posty:7
Rejestracja:12 mar 2004, o 14:04
Jaka literatura do nauki programowania AVR

Postautor: Miro » 25 mar 2004, o 13:18

Czy mógłby mnie ktoś poinformować o jakiejś dobrej literaturze do nauki programowania AVR w Asemblerze?? Muszę zaprogramować taki układ jak AT90S2313. Mile widziane przykładowe programiki napisane w Asemblerze na ten mikrokontroler :)

tomek_j
-
-
Posty:264
Rejestracja:14 sty 2004, o 09:06

Postautor: tomek_j » 25 mar 2004, o 14:17


Miro
-
-
Posty:7
Rejestracja:12 mar 2004, o 14:04

Postautor: Miro » 25 mar 2004, o 15:30

ok dzieki za stronke ale tą Ksiąrzke już mam tylko że w niej głuwnie jest opisane programowanie w C a nie w asemblerze i nie ma w niej przykładowych aplikacji napisanych w asemblerze :(

Awatar użytkownika
gawel
-
-
Posty:683
Rejestracja:24 lis 2003, o 11:19
Lokalizacja:Białystok

Postautor: gawel » 25 mar 2004, o 17:15

A co dokładnie cię interesuje. Mogę udostępnić ci w formie PDF swoje notatki o znacznie lepszej wartości niż książka pana J.D.

Miro
-
-
Posty:7
Rejestracja:12 mar 2004, o 14:04

Postautor: Miro » 27 mar 2004, o 14:03

Muszę zaprogramować układ AVR AT90S2313 tak, aby sterował układem (modemem radiowym, kit AVT 563). Byłbym wdzięczny za wszelkie przykładowe programy napisane w asemblerze dotyczące tego układu. Chodzi mi głównie o prowadzenie transmisji danych za pomocą powyższego układu.

Miro
-
-
Posty:7
Rejestracja:12 mar 2004, o 14:04

Postautor: Miro » 27 mar 2004, o 14:04

Mój adres e-mail to: gras14@wp.pl

Miro
-
-
Posty:7
Rejestracja:12 mar 2004, o 14:04

Postautor: Miro » 29 mar 2004, o 20:50

dzieki za materiały dla Gawła :)

Awatar użytkownika
g.matras
-
-
Posty:37
Rejestracja:11 maja 2003, o 22:33

Postautor: g.matras » 30 mar 2004, o 14:10

Cześć Gawel
Czy ja też moge prosić o te materiały :D
z góry dzieki
grzesiek
g.matras@interia.pl

Awatar użytkownika
Wojtek
-
-
Posty:868
Rejestracja:21 lut 2003, o 18:21

Postautor: Wojtek » 30 mar 2004, o 19:12

Materiały które udostępni gawel w ciągu 2 dni pojawia sie u mnie w archiwum. Jak już będą podam odnośnik.

Awatar użytkownika
Wojtek
-
-
Posty:868
Rejestracja:21 lut 2003, o 18:21

Postautor: Wojtek » 1 kwie 2004, o 09:50

Można już ciągnąć, oto link: www.elektronika.qs.pl/arch.html#asm

JacekR
-
-
Posty:52
Rejestracja:2 kwie 2004, o 18:43
Lokalizacja:PL

Postautor: JacekR » 6 kwie 2004, o 19:08

Powiem krotko :)

Jestem zainteresowany dalszymi czesciami ksiazki :)
pomogla mi zrozumiec wiele rzeczy z asm a jestem poczatkujacy
Brakuje takiej pozycji na runku (to moje zdanie)

P.S.
Czy istnieje mozliwosc udostepnienia rozdzialu omawiajacego przerwania w AVR ? oraz przykladowy programik lub ki ???

Awatar użytkownika
Wojtek
-
-
Posty:868
Rejestracja:21 lut 2003, o 18:21

Postautor: Wojtek » 6 kwie 2004, o 19:36

Powiem krotko :)

Jestem zainteresowany dalszymi czesciami ksiazki :)
pomogla mi zrozumiec wiele rzeczy z asm a jestem poczatkujacy
Brakuje takiej pozycji na runku (to moje zdanie)

P.S.
Czy istnieje mozliwosc udostepnienia rozdzialu omawiajacego przerwania w AVR ? oraz przykladowy programik lub ki ???
Myślę, że i tak jest już dużo materiałów udostępnionych, zostawmy trochę do publikacji w postaci książki :)

Awatar użytkownika
gawel
-
-
Posty:683
Rejestracja:24 lis 2003, o 11:19
Lokalizacja:Białystok

Postautor: gawel » 7 kwie 2004, o 08:01

Prosty programik do przerwań od timer 0

;
;*******************************************************
.include "8515def.inc"
;*******************************************************
.list
.listmac
;-----------------------------------------------------------------------------
.macro ldz
ldi zl,low(@0)
ldi zh,high(@0)
.endm
;-----------------------------------------------------------------------------
.macro pushz
push zl
push zh
.endm
;-----------------------------------------------------------------------------
.macro popz
pop zh
pop zl
.endm
;-----------------------------------------------------------------------------
.macro pushf
push acc
in acc,sreg
push acc
.endm
;-----------------------------------------------------------------------------
.macro popf
pop acc
out sreg,acc
pop acc
.endm
;-----------------------------------------------------------------------------
.def acc = r16
;-----------------------------------------------------------------------------
.equ StatusLED = 0
.equ TimerData = 0xC0
.equ DivideConst = 50
;-----------------------------------------------------------------------------
.equ Stand_GIMSK = 0b00000000
.equ Stand_TIMSK = 0b00000010
.equ Stand_MCUCR = 0b00000000
.equ Stand_TCCR0 = 0b00000001
.equ Stand_TCCR1A = 0b00000000
.equ Stand_TCCR1B = 0b00000000
.equ Stand_UCR = 0b00000000
.equ Stand_UBBR = 47
.equ Stand_PADir = 0b11111111
.equ Stand_PAData = 0b11111111
.equ Stand_PBDir = 0b00000000
.equ Stand_PBData = 0b11111111
.equ Stand_PCDir = 0b11111111
.equ Stand_PCData = 0b11111111
.equ Stand_PDDir = 0b11111111
.equ Stand_PDData = 0b11111111
;-----------------------------------------------------------------------------
.dseg
;*******************************************************
;*******************************************************
;** **
;** DATA SEGMENT **
;** **
;*******************************************************
;*******************************************************
TimeDivider : .byte 1 ; TimeDivider : BYTE ;
Status : .byte 1 ; Status : BYTE ;
;-----------------------------------------------------------------------------
.cseg
;*******************************************************
;*******************************************************
;** **
;** CODE SEGMENT **
;** **
;*******************************************************
;*******************************************************
.org 0
rjmp ResetProcessor ;
;-----------------------------------------------------------------------------
.org INT0addr ;External Interrupt0 Vector Address
reti ;
;-----------------------------------------------------------------------------
.org INT1addr ;External Interrupt1 Vector Address
reti ;
;-----------------------------------------------------------------------------
.org ICP1addr ;Input Capture1 Interrupt Vector Address
reti ;
;-----------------------------------------------------------------------------
.org OC1Aaddr ;Output Compare1A Interrupt Vector Address
reti ;
;-----------------------------------------------------------------------------
.org OC1Baddr ;Output Compare1B Interrupt Vector Address
reti ;
;-----------------------------------------------------------------------------
.org OVF1addr ;Overflow1 Interrupt Vector Address
reti ;
;-----------------------------------------------------------------------------
.org OVF0addr ;Overflow0 Interrupt Vector Address
rjmp TC0OvfInterrupt ;
;-----------------------------------------------------------------------------
.org SPIaddr ;SPI Interrupt Vector Address
reti ;
;-----------------------------------------------------------------------------
.org URXCaddr ;UART Receive Complete Interrupt Vector Address
reti ;
;-----------------------------------------------------------------------------
.org UDREaddr ;UART Data Register Empty Interrupt Vector Address
reti ;
;-----------------------------------------------------------------------------
.org UTXCaddr ;UART Transmit Complete Interrupt Vector Address
reti ;
;-----------------------------------------------------------------------------
.org ACIaddr ;Analog Comparator Interrupt Vector Address
reti ;
;-----------------------------------------------------------------------------
HardwareInit : ;
;**************** ;
ldi acc,Stand_GIMSK ;
out GIMSK,acc ;
ldi acc,Stand_TIMSK ;
out TIMSK,acc ;
ldi acc,Stand_MCUCR ;
out MCUCR,acc ;
ldi acc,Stand_TCCR0 ;
out TCCR0,acc ;
ldi acc,Stand_TCCR1A ;
out TCCR1A,acc ;
ldi acc,Stand_TCCR1B ;
out TCCR1B,acc ;
ldi acc,Stand_UCR ;
out UCR,acc ;
ldi acc,Stand_UBBR ;
out UBRR,acc ;
ret ;
;-----------------------------------------------------------------------------
EnvirInit : ;
;**************** ;
ldi acc,Stand_PADir ;
out DDRA,Acc ;
ldi acc,Stand_PAData ;
out PORTA,acc ;
ldi acc,Stand_PBDir ;
out DDRB,Acc ;
ldi acc,Stand_PBData ;
out PORTB,acc ;
ldi acc,Stand_PCDir ;
out DDRC,Acc ;
ldi acc,Stand_PCData ;
out PORTC,acc ;
ldi acc,Stand_PDDir ;
out DDRD,Acc ;
ldi acc,Stand_PDData ;
out PORTD,acc ;
ret ;
;-----------------------------------------------------------------------------
SoftwareInit : ;
;**************** ;
ldi acc,0 ;
sts TimeDivider,acc ;
sts Status,acc ;
ret ;
;-----------------------------------------------------------------------------
TC0OvfInterrupt : ;
;**************** ;
pushf ;
pushz ;
ldz TimeDivider ;
ld acc,Z ;
inc acc ;
st Z,acc ;
cpi acc,DivideConst ;
brne TC0OV_0 ;
ldi acc,0 ;
st Z,acc ;
ldz Status ;
ld acc,Z ;
inc acc ;
st Z,acc ;
neg acc ;
out PORTB,acc ;
TC0OV_0 : ;
ldi acc,TimerData ;
out TCNT0,acc ;
popz ;
popf ;
reti ;
;-----------------------------------------------------------------------------
ClearRegs : ;
;**************** ;
clr R0 ;
ldz 0x1D ;
ClrR_0 : ;
st Z,R0 ;
dec Zl ;
brne ClrR_0 ;
ret ;
;-----------------------------------------------------------------------------
ClearRAM : ;
;*************** ;
ldz RAMEND-1 ;
clr acc ;
CleRA_0 : ;
st -Z,acc ;
;
cpi ZH,0 ;
brne CleRA_2 ;
cpi ZL,0x60 ;
brne CleRA_2 ;
rjmp CleRA_1 ;
CleRA_2 : ;
rjmp CleRA_0 ;
CleRA_1 : ;
ret ;
;-----------------------------------------------------------------------------
ResetProcessor : ;
cli ;
ldi acc,HIGH(RAMEND) ;
out SPH,acc ;
ldi acc,LOW(RAMEND) ;
out SPL,acc ;
;
rcall ClearRAM ;
rcall ClearRegs ;
rcall HardwareInit ;
rcall EnvirInit ;
rcall SoftwareInit ;
sei ;
Main_0 : ;
rjmp Main_0 ;
;
;-----------------------------------------------------------------------------
.exit

Awatar użytkownika
gawel
-
-
Posty:683
Rejestracja:24 lis 2003, o 11:19
Lokalizacja:Białystok

Postautor: gawel » 7 kwie 2004, o 08:05

Jak widać, formatowanie słabo działa i z tego mało widać. Może Wojtek to udostępni na swojej witrynie.
Programik ma pokazywać na LED przyłączonych do portu B kolejne liczby.

Adaptacja na inny model mikrokontrolera polega na innym wypełnieniu tabeli wektorów przerwań.

JacekR
-
-
Posty:52
Rejestracja:2 kwie 2004, o 18:43
Lokalizacja:PL

Postautor: JacekR » 7 kwie 2004, o 15:41

Witam
BUUUUUUUUUUU :( ale to jest jeszcze czarna magia (niestety)
ja mam podstawy przerwan tylko z bascoma :(
Myslalem o krotkiej teori typu co z czym kiedy i dlaczego :(
ale nic sprobuje to rozgryzc

Awatar użytkownika
Wojtek
-
-
Posty:868
Rejestracja:21 lut 2003, o 18:21

Postautor: Wojtek » 7 kwie 2004, o 15:59

Jak widać, formatowanie słabo działa i z tego mało widać. Może Wojtek to udostępni na swojej witrynie.
(...)
Już udostępnione, można ściągać http://www.elektronika.qs.pl/arch.html#asm

Awatar użytkownika
gawel
-
-
Posty:683
Rejestracja:24 lis 2003, o 11:19
Lokalizacja:Białystok

Postautor: gawel » 8 kwie 2004, o 08:32

Przepraszam czytelników powyższego programu, ale wkradl się tam błąd. Wesja poprawna i sprawdzona będzie dostępna w witrynie wojtka.
JackuR, to jest cały kompletny program, który coś tam robi a nie wybrana i opisana jedna procedura.

Awatar użytkownika
Wojtek
-
-
Posty:868
Rejestracja:21 lut 2003, o 18:21

Postautor: Wojtek » 8 kwie 2004, o 15:43

Przepraszam czytelników powyższego programu, ale wkradl się tam błąd. Wesja poprawna i sprawdzona będzie dostępna w witrynie wojtka.(...)
Wersja poprawiona jest już dostępna.

Guru
-
-
Posty:250
Rejestracja:30 cze 2003, o 13:26
Lokalizacja:Kraków

Postautor: Guru » 9 kwie 2004, o 05:58

JacekR napisał:

Witam
BUUUUUUUUUUU ale to jest jeszcze czarna magia (niestety)
ja mam podstawy przerwan tylko z bascoma
Myslalem o krotkiej teori typu co z czym kiedy i dlaczego
ale nic sprobuje to rozgryzc



Właśnie nawyki z bascoma
Program pod bascomem obsługujący działanie sterownika:

DZIALAJ
PRZERWANIE
NIE_DZIALAJ
KONIEC

Oczywiście był to żart :D :D :D :D :D
Program tego typu w bascomie wyprodukować może przy dobrych wiatrach 1MB kodu i spowodować przepełnienie stosu. :D :D

Awatar użytkownika
gawel
-
-
Posty:683
Rejestracja:24 lis 2003, o 11:19
Lokalizacja:Białystok

Postautor: gawel » 9 kwie 2004, o 14:02

Witam
BUUUUUUUUUUU :( ale to jest jeszcze czarna magia (niestety)
ja mam podstawy przerwan tylko z bascoma :(
Myslalem o krotkiej teori typu co z czym kiedy i dlaczego :(
ale nic sprobuje to rozgryzc
Z czym masz kłopoty?

Wróć do „AVR/AVR32”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 5 gości