- posted
20 years ago
Do znawcow TMS 320C50
- Vote on answer
- posted
20 years ago
Ten PORT to taki skró myślowy. W rzeczywistości C50 nie ma portów. W ogóle procesory DSP nie miewają (a na pewno nie miewały jeszcze niedawno) takich zbędnych dla obliczeń dodatków. C50 ma specjalne wyjście typu /Strobe adresujące przestrzeń nazwaną przestrzenią I/O. To działa dokładnie tak jak pamięć, tylko strobowanie jest sygnałem /IS. Aby odczytać z portu cokolwiek, użyj instrukcji IN (OUT dla zapisu). To kwestia programowa. Żeby jednak utworzyć port musisz do procesora połączyć bufor 16-bit (np. 2x
245 lub 541) i jego linię strobującą (DIR lub /EN) podłączyć do sygnału będącego funkcją logiczną sygnału /RD i /IS tak, by stany niskie na /RD i /IS wyprowadzały bufor zew stanu HiZ czyli podawały sygnał na magistralę danych. Polecam literaturę, czyli Users Guide do C50 i opisy scalaków TTL.- Vote on answer
- posted
20 years ago
- Vote on answer
- posted
20 years ago
Na pewno w instrukcji: SACH temp1,1 jest coś nie tak - nie możesz zdejmować starszego słowa z akumulatora, bo jest ono puste i nie zawiera interesującego cię starszego bajtu. Akumulator jest w koncu dwusłowowy z zapasem. Shift też nie jest potrzebny. Sekwencja powinna raczej wyglądać tak: LACL temp,8 ; ładowanie z shiftem i czyszczenie starszego słowa Acc SACL temp1 I dalej już raczej w porządku
A co do znaku... Czy znak nie zrobi się sam ?
- Vote on answer
- posted
20 years ago
Coś mnie tknęło. Oczywiście, że: SACH temp1 jest właściwa - interesująca nas zawartość w tej chwili rzeczywiście jest w starzym wordzie. Tylko shift tu jest zbędny. Liczba ta nie ma jednak rozszerzonego na 16-bit znaku. Stą operacje: SACH temp1 LACL temp1 AND ... ADD... Druga miała rozszerzony znak już wcześniej. Po rozszerzeniu znaku można spokojnie dodawać dwie zmienne 16-bit typu signed