Jak napisać program dodający dwie 8-bitowe liczby na TMS 320C50 z wykorzystaniem PORT?

Do znawcow TMS 320C50





Poprzedni Następny
Wiadomość
Spis treści
From: "CodeBoy" <codeboy1_at_nospam_wp.pl>
Subject: Do znawcow TMS 320C50
Date: Fri, 16 Jan 2004 21:28:06 +0100


Mam pytanko jak sie do tego zabrac ?
Napisac program dodajacy dwie 8 bitowe liczby calkowite ze znakiem zapisne
na 8 młodszych i 8 starszych bitach portu wejsciowego PORT i umieszczac w
Suma


--
Pozdrawiam
Zdzisław Landowski
vel CodeBoy
emial: codeboy_at_nospam_pf.pl
Im wiecej wiesz, tym mniej zarabiasz



=======

Poprzedni Następny
Wiadomość
Spis treści
From: JoeBack <joebackBEZTEGO_at_nospam_poczta.wp.pl>
Subject: Re: Do znawcow TMS 320C50
Date: Sat, 17 Jan 2004 15:21:08 +0100


On Fri, 16 Jan 2004 21:28:06 +0100, CodeBoy wrote:

Mam pytanko jak sie do tego zabrac ?
Napisac program dodajacy dwie 8 bitowe liczby calkowite ze znakiem zapisne
na 8 młodszych i 8 starszych bitach portu wejsciowego PORT i umieszczac w
Suma

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.
--
Pozdrawiam JoeBack

========
Path: news-archive.icm.edu.pl!news.rmf.pl!news.ipartners.pl!news2.icm.edu.pl!news.atman.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: "CodeBoy" <codeboy1_at_nospam_wp.pl>
Subject: Re: Do znawcow TMS 320C50
Date: Sat, 17 Jan 2004 18:29:39 +0100



Użytkownik "JoeBack" <joebackBEZTEGO_at_nospam_poczta.wp.pl> napisał w wiadomości
news:55gcxsj8syp.s0tq8gsfax2t$.dlg_at_nospam_40tude.net...
On Fri, 16 Jan 2004 21:28:06 +0100, CodeBoy wrote:

Mam pytanko jak sie do tego zabrac ?
Napisac program dodajacy dwie 8 bitowe liczby calkowite ze znakiem
zapisne
na 8 młodszych i 8 starszych bitach portu wejsciowego PORT i umieszczac
w
Suma

Ten PORT to taki skró myślowy. W rzeczywistości C50 nie ma portów. W ogóle

zalozmy ze to juz jest zrobiony starter kit
zrobilem taki sobie program

mmregs
.include dsk.h
.sect "vectors"

RESET B START
INT2 RETE
NOP
INT3 RETE
NOP
TINT RETE
NOP
RINT RETE
NOP
XINT RETE
NOP
TRNT RETE
NOP
TXNT RETE
NOP
INT4 RETE
NOP

.data
PORT .set 1000h
.bss suma,1
.bss temp,1
.bss temp1,1
.text

*Program glowny

START
SETC SXM
LDP #0
IN temp,PORT
LACC temp,8
SACH temp1,1
LACC temp
AND #000FFh
ADD #0FF00h
ADD temp1
SACL suma
RETE

.end

ale brakuje mi jeszcze detekcji znaku
moze teraz bedzie latwiej ?



========
Path: news-archive.icm.edu.pl!news.rmf.pl!news.ipartners.pl!newsfeed.gazeta.pl!news.dialog.net.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: JoeBack <joebackBEZTEGO_at_nospam_poczta.wp.pl>
Subject: Re: Do znawcow TMS 320C50
Date: Sun, 18 Jan 2004 21:02:18 +0100


On Sat, 17 Jan 2004 18:29:39 +0100, CodeBoy wrote:


Użytkownik "JoeBack" <joebackBEZTEGO_at_nospam_poczta.wp.pl> napisał w wiadomości
news:55gcxsj8syp.s0tq8gsfax2t$.dlg_at_nospam_40tude.net...
On Fri, 16 Jan 2004 21:28:06 +0100, CodeBoy wrote:

Mam pytanko jak sie do tego zabrac ?
Napisac program dodajacy dwie 8 bitowe liczby calkowite ze znakiem
zapisne
na 8 młodszych i 8 starszych bitach portu wejsciowego PORT i umieszczac
w
Suma

Ten PORT to taki skró myślowy. W rzeczywistości C50 nie ma portów. W ogóle

zalozmy ze to juz jest zrobiony starter kit
zrobilem taki sobie program

mmregs
.include dsk.h
.sect "vectors"

RESET B START
INT2 RETE
NOP
INT3 RETE
NOP
TINT RETE
NOP
RINT RETE
NOP
XINT RETE
NOP
TRNT RETE
NOP
TXNT RETE
NOP
INT4 RETE
NOP

.data
PORT .set 1000h
.bss suma,1
.bss temp,1
.bss temp1,1
.text

*Program glowny

START
SETC SXM
LDP #0
IN temp,PORT
LACC temp,8
SACH temp1,1
LACC temp
AND #000FFh
ADD #0FF00h
ADD temp1
SACL suma
RETE

.end

ale brakuje mi jeszcze detekcji znaku
moze teraz bedzie latwiej ?

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 ?

--
Pozdrawiam JoeBack

========
Path: news-archive.icm.edu.pl!news.rmf.pl!news.ipartners.pl!newsfeed.gazeta.pl!news.dialog.net.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: JoeBack <joebackBEZTEGO_at_nospam_poczta.wp.pl>
Subject: Re: Do znawcow TMS 320C50
Date: Sun, 18 Jan 2004 22:03:00 +0100


On Sun, 18 Jan 2004 21:02:18 +0100, JoeBack wrote:

On Sat, 17 Jan 2004 18:29:39 +0100, CodeBoy wrote:



Na pewno w instrukcji:
SACH temp1,1
jest coś nie tak - nie możesz zdejmować starszego słowa z akumulatora, bo

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

--
Pozdrawiam JoeBack

========
Path: news-archive.icm.edu.pl!news.rmf.pl!news.ipartners.pl!newsfeed.gazeta.pl!news.gazeta.pl!not-for-mai