Krzy$
Guest
Mon Mar 29, 2004 9:00 am
Witam!
Stawiam pierwsze kroki w programowaniu Avr'ow.Obecnie bawie sie ATMega8 ,
mam rowniez pamiec flash z interfejsem szeregowym, ale w zwiazku z tym mam
pytanko.
Czy moglby ktos napisac kawalek procedurki wysylajacej bajt na wyjscie
szeregowo
Robilem to kiedys na zajeciach na 8051 ale tutaj cos nie mam pomyslu.
Z gory dzieki & Pozdrawiam!
Krzysiek
Krzy$
Guest
Mon Mar 29, 2004 9:08 am
Zapomnialem dodac, ze prosilbym o procedurke w asemblerze.
Pzdr!
Krzy$
Guest
Mon Mar 29, 2004 11:07 am
Udalo mi sie napisac cos takiego:
ldi r18,0xaa ;bajt do wyslania
wyslij_bajt:
ldi r19,8 ;bedzie 8bitow
wyslij:
ror R18 ;obroc przez flage przeniesienia
brcc bit_zero ;skocz jesli flaga wyzerowana
sbi portb,pb0 ;wyslij 1 jesli flaga=1 (wyjsciem jest pb0)
rjmp kon
bit_zero:
cbi portb,pb0 ;wyslij 0
kon:
dec R19
brne wyslij ;powtorz jesli nie wszystkie 8 bitow wyslane
ret
Czy to powinno dzialac prawidlowo-bo symulujac w AVRStudio wyglada ok???
Jest moze jakis krotszy sposob na wyslanie bajtu szeregowo?
Pozdrawiam!
Andy
Guest
Mon Mar 29, 2004 11:12 am
Użytkownik "Krzy$" <kchrisk1@poczta.onet.pl> napisał w wiadomości
news:c48s42$etr$1@news.onet.pl...
Quote:
Witam!
Stawiam pierwsze kroki w programowaniu Avr'ow.Obecnie bawie sie ATMega8 ,
mam rowniez pamiec flash z interfejsem szeregowym, ale w zwiazku z tym mam
pytanko.
Czy moglby ktos napisac kawalek procedurki wysylajacej bajt na wyjscie
szeregowo
data flash ? np z serii AT45xxx ?
najlepiej uzyc sprzetowego SPI
rzucam kilka hasel:
SPCR - konfiguracja SPI
SPSR - status
SPDR - zapis/odczyt bajtu do wyslania /odebranego
poczytaj w pdf'ie do ATMega 8
zobacz tez na
www.avrfreaks.net
moze sa gotowe procedurki
--
Andrzej
Andy
Guest
Mon Mar 29, 2004 11:20 am
Użytkownik "Krzy$" <kchrisk1@poczta.onet.pl> napisał w wiadomości
news:c493h7$78g$1@news.onet.pl...
Quote:
Udalo mi sie napisac cos takiego:
ldi r18,0xaa ;bajt do wyslania
wyslij_bajt:
ldi r19,8 ;bedzie 8bitow
wyslij:
ror R18 ;obroc przez flage przeniesienia
brcc bit_zero ;skocz jesli flaga wyzerowana
sbi portb,pb0 ;wyslij 1 jesli flaga=1 (wyjsciem jest pb0)
rjmp kon
bit_zero:
cbi portb,pb0 ;wyslij 0
kon:
dec R19
brne wyslij ;powtorz jesli nie wszystkie 8 bitow wyslane
ret
wszytko OK tylko brak sygnalu CLOCK
jesli chcesz wysylac programowo
to po wystawieniu kazdego bitu danej musz dac impuls zegara
np. na PB1
---
sbi portb,pb1
nop ; opoznienie, niekonieczne jesli urzadznie odbierajace
; jest wystarczjaco szybkie
cbi portb,pb1
---
albo odwrotnie
---
cbi portb,pb1
nop
sbi portb,pb1
---
zalezy z czym sie komunikujesz
--
Andrzej
Krzy$
Guest
Mon Mar 29, 2004 12:33 pm
A jak moglaby wygladac procedura zapisu 8 bitow danych otrzymanych szeregowo
na port?? (w asemblerze)
Pzdr!!
Krzysiek