ATmega 8 transmisja szeregowa

Komputer wraz z oprogramowaniem wspomagającym projektowanie stał się częścią życia elektronika.
radio-fm
Raczkujący użytkownik 1
Raczkujący użytkownik 1
Posty: 3
Rejestracja: czw 22 cze 2006, 22:28
Kontaktowanie:

ATmega 8 transmisja szeregowa

Postautor: radio-fm » śr 13 gru 2006, 16:58

Witam i prosze o pomoc, asembler (narazie mam nadzieje) jest dla mnie czarną magią

jak by najprosciej , nie wiem -moze korzystajac z SPI wyslac konkretne 24 bity szeregowo do syntezera PLL

jest to prosta transmisja ,ktora powinna odbyc sie przy wykorzystaniu 3 lini, zegar wewnetrzny 1MHz,szybkosc transmisji raczej niema znaczenia, aczkolwiek nie powinna przwdopodobnie przekraczac 100khz:
po jednorazowym wyslaniu procesor powinien przejsc w tryb uspienia

-CIP ENABLE (w czasie wysylania przyjmowac powinien stan wysoki)
-zegar
-data (dane wpisywane sa do rejestrow wejsciowych syntezera przy narastajacym zboczu zegara

czy ktos bylby mi w stanie podac przykladowy kod w ktorym wmiare potrzeb mialbym mozliwosc edycji-zdefiniowania kazdego z 24 bitow na stan wysoki lub niski ktory bylby wyslany szeregowopo zapomoca SPI (bo tak bylo by prawdopodobnie najprosciej)

ewentualnie
PD5 jako Data
PD6 jako Clock
PD7 jako Cip Enable

czy jest ktos w stanie mi w tym pomoc ?
dziekuje i pozdrawiam
Załączniki
transmisja.jpg

movzx
Aktywny użytkownik 3
Aktywny użytkownik 3
Posty: 642
Rejestracja: ndz 07 sie 2005, 23:38
Lokalizacja: Wrocław
Kontaktowanie:

Postautor: movzx » czw 14 gru 2006, 1:26

Hmm... szczerze mowiac, taka transmisja to jest standardowa aplikacja SPI, nawet przykladowy kod jest podany w dokumentacji do Mega8.
Ale coz, jesli nie uda sie tego znalezc, to jak bede mniej spiacy, postaram sie jutro cos nasmarowac... Ale na poczatek odsylam do pdfa - rev. 2486J-AVR-02/03, strona 124.
Pozdr.

radio-fm
Raczkujący użytkownik 1
Raczkujący użytkownik 1
Posty: 3
Rejestracja: czw 22 cze 2006, 22:28
Kontaktowanie:

Postautor: radio-fm » czw 14 gru 2006, 11:20

dziekuje kolego za zainteresowanie tematem, czyli tym moim problemem,
posiadam kod zrodlowy w Bascomie, ale do innego syntezera ktory sterowany jest identycznie - z taka roznica ze zadowala sie 16stoma bitami zamiast 24 ,
pierwsze z tych 12 bitow jest takie samo , 4 bity sa w innej kolejnosci, a w sumie -dodatkowo jest ich osiem
do celow experymentalnych -zanim dotrze do mnie zamowiona literatura o programowaniu w asemblezre(co prawda jakos narazie kompletnie nic z tego nie rozumiem-wiec i z nauką moze byc ciezko :( )
tu jest wersja na elementach dyskretnychtakiego sendera transmisji szeregowej , z tym ze takze do wspomnianego syntezera sterowanego 16ma bitami- a ja musze wyslac 24 zdefiniowane bity
-pozdrawiam i dziekuje !!!
--------------------------------------------------------------------------------
wlasnie mamjescze taka prosbe , jessli pomog by mi ktos w przeanalizowaniu tego ponizszego fragmetu kodu -i dodanie komentarzy
-------------------------------------------------------------------------------
Sub to IC-PLL
local seriellword as Word
local lauf as Byte
seriellword = frequ
seriellword.11 = stereo.0
seriellword.14 = driver.0
'locate 2 , 1
'lcd bin(seriellword )
chipena = 1 'Chip selektieren
for lauf = 1 to 16
datas = seriellword.0 'Datenbit 0 anlegen
clock = 1 'und übergeben
waitus 250
clock = 0
shift seriellword , RIGHT 'nächstes Bit in Position 0 schieben
next lauf 'Chip deselektieren
chipena = 0
end SUB
Załączniki
nadajnik 16bit.jpg

radio-fm
Raczkujący użytkownik 1
Raczkujący użytkownik 1
Posty: 3
Rejestracja: czw 22 cze 2006, 22:28
Kontaktowanie:

Postautor: radio-fm » czw 14 gru 2006, 12:09

radio-fm pisze:dziekuje kolego za zainteresowanie tematem, czyli tym moim problemem,
posiadam kod zrodlowy w Bascomie, ale do innego syntezera ktory sterowany jest identycznie - z taka roznica ze zadowala sie 16stoma bitami zamiast 24 ,
pierwsze z tych 12 bitow jest takie samo , 4 bity sa w innej kolejnosci, a w sumie -dodatkowo jest ich osiem
do celow experymentalnych -zanim dotrze do mnie zamowiona literatura o programowaniu w asemblezre(co prawda jakos narazie kompletnie nic z tego nie rozumiem-wiec i z nauką moze byc ciezko :( )
tu jest wersja na elementach dyskretnych takiego sendera transmisji szeregowej , z tym ze takze do wspomnianego syntezera sterowanego 16ma bitami- a ja musze wyslac 24 zdefiniowane bity
-pozdrawiam i dziekuje !!!
--------------------------------------------------------------------------------
wlasnie mam jescze taka prosbe , jesli ktos byłby mogł mi pomóc w przeanalizowaniu tego ponizszego fragmetu kodu -i dodanie komentarzy
-------------------------------------------------------------------------------
Sub to IC-PLL
local seriellword as Word
local lauf as Byte
seriellword = frequ
seriellword.11 = stereo.0
seriellword.14 = driver.0
'locate 2 , 1
'lcd bin(seriellword )
chipena = 1 'Chip selektieren
for lauf = 1 to 16
datas = seriellword.0 'Datenbit 0 anlegen
clock = 1 'und übergeben
waitus 250
clock = 0
shift seriellword , RIGHT 'nächstes Bit in Position 0 schieben
next lauf 'Chip deselektieren
chipena = 0
end SUB

movzx
Aktywny użytkownik 3
Aktywny użytkownik 3
Posty: 642
Rejestracja: ndz 07 sie 2005, 23:38
Lokalizacja: Wrocław
Kontaktowanie:

Postautor: movzx » czw 14 gru 2006, 12:42

"Literatura" o programowaniu w avr assemblerze jest dostepna na stronie Atmela - po co wyrzucac pieniadze.
Jest "command list" ze spisem wszystkich rozkazow, sa przykladowe kawalki kodu (nawet tu, na EleNocie), jest rowniez calkiem sensowne srodowisko (avr studio) - i to wszystko za darmo, mi sie udalo nauczyc w kilka tygodni - mysle ze to nie skomplikowanie jezyka, a kwestia psychologicznego podejscia "uuuu, asembler jest truuudny" psuje cala robote.

Za to niestety bascom jest dla mnie zupelnie niezrozumialym (zarowno skladniowo jak i "ideologicznie") jezykiem, domyslam sie tylko ze nalezy zmienic "16" na "24"...
Pozdr.


Wróć do „Oprogramowanie wspomagające projektowanie”

Kto jest online

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

cron