Jak zrealizować mnożenie w mikrokontrolerze AT90S2313 bez instrukcji MUL?
mul w AT90S2313
From: "demolka" <demolqa_at_nospam_poczta.wp.pl>
Subject: mul w AT90S2313
Date: Thu, 2 Nov 2000 18:56:44 +0100
Czesc
Chodze (oczywiscie tylko chodze, bo niczego tam nie ucza)
do technikum elektrycznego na el. ogolna do 4klasy.
wiec postanowilem samemu zajac sie czyms z elektroniki.
Gluwnie prockami, "wybralem" AVRy,
bawie sie nimi juz jakies pare miesiecyi dopiero pare dni temu
zauwarzylem ze 2313 niema instrukcji mnozenia (dopiero teraz,
poniewaz wlasciwie do tego czasu mi nie byla potrzebna).
Posiadam ksiazke Arkadiusza Krysiaka
w ktorej jest ten rozkaz opisany, chociaz w rzeczywistosci "on"go chyba
nie posiada.
Oczywiscie monzenie mozna zrealizowac np.2*3 zastapic 2+2+2 i na to samo
wyjdzie , ale przy wiekszych liczbach to zerzre duzo czasu.
MOZE ktos mialby jakis inny pomysl na mnozenie w 2313,o ile w ogole jest
(8535 tez niema MUL...).
Apropos az 118 instrukcji i wtym niema mnozenia , a co niekture instrukcje
da sie zastapic podobnymi (mam na mysli ustawianie wskaznikow w SREG,
np.2 zamiast 16).
Takich przykladow jest wiecej?!?!?!?!?!?!?
SORY ze tak duzo , ale...
demolka
From: jfox_at_nospam_friko6.onet.pl (J.F.)
Subject: Re: mul w AT90S2313
Date: 2 Nov 2000 18:46:45 GMT
On Thu, 2 Nov 2000 18:56:44 +0100, demolka <demolqa_at_nospam_poczta.wp.pl> wrote:
Apropos az 118 instrukcji i wtym niema mnozenia , a co niekture instrukcje
da sie zastapic podobnymi (mam na mysli ustawianie wskaznikow w SREG,
np.2 zamiast 16).
Takich przykladow jest wiecej?!?!?!?!?!?!?
Mnozenie jest "kosztowne" w sensie ilosci tranzystorow, albo czasu dzialania
microkodu potrzebnego do realizacji jednej instrukcji. To w koncu 8
sumatorow - czyli dosc sporo jak na reszte. W dodatku
jego uzytecznosc w niewielkich procesorkach jest taka sobie -
albo trzeba mnozyc przez stala, albo sie okaze ze 8 bit to za malo.
8080, Z80, 6502 nie mialy, 6800 za wyjatkiem 6809 tez nie.
J.
From: "Arek Karas" <karas_at_nospam_hbury.com>
Subject: Re: mul w AT90S2313
Date: Thu, 2 Nov 2000 23:32:01 +0100
Poszukaj w aplikacjach na stronie Atmela - sa procedury do mnozenia liczb 8,
16 i 32 bitowych ze znakiem i bez.
Co do tej duzej liczby instrukcji to rzeczywiscie duzo z nich sie pokrywa,
ale jest to zamierzone - ich kody sa identyczne - zatem jest to tylko inna
nazwa rozkazu, z ktorej kompilator i tak zrobi ten sam kod rozkazu.
Mnozenie jest tylko w procesorze ATmega161/3 - nie wiem czy sa one juz
dostepne, ale sa bardzo ciekawe - dwa UARTy, Bootloader, 16 kB Flash, 1kB
Ram - i rozkazy mnozenia sprzetowego - w sumie kilka wariantow mnozenia.
Co da ksiazek do AVR polecam orginalne pdf-y, w tych polskich jest troche
bledow i niejasnosci.
Jesli bys chcial wiecej informacji lub mial jakies pytania odnosnie AVR-ow
to pisz na priva, troche programow juz na nie napisalem.
Pozdrawiam
AK
"J.F." <jfox_at_nospam_friko6.onet.pl> wrote in message
news:slrn903dkm.i1r.jfox_at_nospam_mars.planconsult.com.pl...
On Thu, 2 Nov 2000 18:56:44 +0100, demolka <demolqa_at_nospam_poczta.wp.pl> wrote:
Apropos az 118 instrukcji i wtym niema mnozenia , a co niekture
instrukcje
da sie zastapic podobnymi (mam na mysli ustawianie wskaznikow w SREG,
np.2 zamiast 16).
Takich przykladow jest wiecej?!?!?!?!?!?!?
Mnozenie jest "kosztowne" w sensie ilosci tranzystorow, albo czasu
dzialania
microkodu potrzebnego do realizacji jednej instrukcji. To w koncu 8
sumatorow - czyli dosc sporo jak na reszte. W dodatku
jego uzytecznosc w niewielkich procesorkach jest taka sobie -
albo trzeba mnozyc przez stala, albo sie okaze ze 8 bit to za malo.
8080, Z80, 6502 nie mialy, 6800 za wyjatkiem 6809 tez nie.
J.
From: "demolka" <demolqa_at_nospam_poczta.wp.pl>
Subject: Re: mul w AT90S2313
Date: Fri, 3 Nov 2000 18:40:28 +0100
Hej
Wiesz może gdzie, na połdniu, (OPOLE) mieliby duży wybór AVRów
i niskie ceny ??????
demolka
From: Milosz Skowyra <mewash_at_nospam_bet.po.opole.pl>
Subject: Re: mul w AT90S2313
Date: Fri, 03 Nov 2000 19:55:26 +0100
demolka wrote:
Wiesz może gdzie, na połdniu, (OPOLE) mieliby duży wybór AVRów
i niskie ceny ??????
We Wroclawiu... Niestety Opole jest tak strasznym elektronicznie zdupiem
ze nie mozna tu kupic ani kawalka potrzebnej rzeczy, chyba ze na
zamowienie ci sporowadza. :-(((
Tak nawiasem mowiac to czekam w jednym ze sklepow od czerwca na
AT90S4414 i czekam dalej, juz dawno kupilem we Wroclawiu teraz czekam
zeby im odpowiedziec ze juz go nie chce...
--
Regards.
|-----------------------------------------------------|
| Milosz Skowyra |
| miloszek_at_nospam_fidonet.org.pl 2:484/2.47 on fidonet |
| GSM Mobile +48608888899 |
|-----------------------------------------------------|
From: "demolka" <demolqa_at_nospam_poczta.wp.pl>
Subject: Re: mul w AT90S2313
Date: Sat, 4 Nov 2000 11:21:06 +0100
FAKT!
W Multi-elektroniku kiedyś zamuwilem 2313 a przysłali 2323.
No ale to tak poza programem.
demolka
Użytkownik Milosz Skowyra <mewash_at_nospam_bet.po.opole.pl> w wiadomości do grup
dyskusyjnych napisał:3A030A1E.3E2946C2_at_nospam_bet.po.opole.pl...
demolka wrote:
Wiesz może gdzie, na połdniu, (OPOLE) mieliby duży wybór AVRów
i niskie ceny ??????
We Wroclawiu... Niestety Opole jest tak strasznym elektronicznie zdupiem
ze nie mozna tu kupic ani kawalka potrzebnej rzeczy, chyba ze na
zamowienie ci sporowadza. :-(((
Tak nawiasem mowiac to czekam w jednym ze sklepow od czerwca na
AT90S4414 i czekam dalej, juz dawno kupilem we Wroclawiu teraz czekam
zeby im odpowiedziec ze juz go nie chce...
--
> Regards.
> |-----------------------------------------------------|
> | Milosz Skowyra |
> | miloszek_at_nospam_fidonet.org.pl 2:484/2.47 on fidonet |
> | GSM Mobile +48608888899 |
> |-----------------------------------------------------|
From: Milosz Skowyra <mewash_at_nospam_bet.po.opole.pl>
Subject: Re: mul w AT90S2313
Date: Sat, 04 Nov 2000 13:01:17 +0100
demolka wrote:
FAKT!
W Multi-elektroniku kiedyś zamuwilem 2313 a przysłali 2323.
No ale to tak poza programem.
Fajno by bylo jakbys cial cytaty i odpowiadal pod postem.
--
Regards.
|-----------------------------------------------------|
| Milosz Skowyra |
| miloszek_at_nospam_fidonet.org.pl 2:484/2.47 on fidonet |
| GSM Mobile +48608888899 |
|-----------------------------------------------------|
From: Marek Michalkiewicz <marekm_at_nospam_linux.org.pl>
Subject: Re: mul w AT90S2313
Date: Sat, 04 Nov 2000 11:01:59 +0100
Arek Karas wrote:
Poszukaj w aplikacjach na stronie Atmela - sa procedury do mnozenia liczb 8,
16 i 32 bitowych ze znakiem i bez.
Albo gcc/config/avr/libgcc.S - chyba nawet lepiej zoptymalizowane :-).
__mulqi3 - 8 bitow
__mulhi3 - 16 bitow
__mulsi3 - 32 bity
(obie mnozone liczby maja tyle bitow co wynik - mozliwe przepelnienie,
ale za to mamy ten sam wynik dla liczb ze znakiem i bez). Jest tam tez
dzielenie (to juz niestety bardzo wolne, lepiej unikac jesli sie da).
Co do tej duzej liczby instrukcji to rzeczywiscie duzo z nich sie pokrywa,
ale jest to zamierzone - ich kody sa identyczne - zatem jest to tylko inna
nazwa rozkazu, z ktorej kompilator i tak zrobi ten sam kod rozkazu.
Tak, to chyba ze wzgledow marketingowych by na poczatku PDF-a mogli
pisac ze ma az 118 rozkazow :-). (Inne firmy za to chwala sie ze
tylko 35 co ma niby byc latwiejsze do nauczenia sie...)
Mnozenie jest tylko w procesorze ATmega161/3 - nie wiem czy sa one juz
dostepne, ale sa bardzo ciekawe - dwa UARTy, Bootloader, 16 kB Flash, 1kB
Ram - i rozkazy mnozenia sprzetowego - w sumie kilka wariantow mnozenia.
Sa ciekawe ale niedostepne :-(. ATmega161 to w ogole w przyszlym roku.
ATmega163 niby juz jest (http://www.atmel.com/atmel/acrobat/doc0031.pdf -
"Product Guide" - podaje ze ATmega163 jest "Now") ale co z tego, pytalem
o probki pod avr_at_nospam_atmel.com, odsylaja do lokalnego dystrybutora, niestety
lokalny dystrybutor nie ma... (moze w styczniu ale nic pewnego)
Moze ktos ma jakichs znajomych pracujacych u Atmela ktorzy mogliby
zalatwic/wyniesc pare probek? :-) AVR-GCC juz potrafi skorzystac z MUL
i MOVW, ale nie ma na czym tego przetestowac... (Poza tym mam aplikacje
na AT90S8535 gdzie przydaloby sie wiecej pamieci programu.)
ATmega163 ma tylko jednego UARTa, za to ma taki "2-przewodowy interfejs
szeregowy" ktory (mimo ze nigdzie tego wprost nie pisza) jakos bardzo
przypomina I2C :-).
Co da ksiazek do AVR polecam orginalne pdf-y, w tych polskich jest troche
bledow i niejasnosci.
Zdecydowanie, choc nawet w oryginalnych pdf-ach zdarzaja sie
niejasnosci. O pewnych rzeczach nie pisza wprost mimo ze wiadomo od
dawna - np. odblokowanie przerwan ("sei" albo "out SREG,...") jest
z opoznieniem o jeden rozkaz. Czyli np. r29:r28 do wskaznika stosu
mozna wpisac tak:
in r0,SREG ; zapamietaj stan bitu I
cli
out SPH,r29
out SREG,r0 ; odtworz I - o jeden rozkaz wczesniej!
out SPL,r28
; dopiero tutaj moze przyjsc przerwanie
(przerwania zablokowane na najkrotszy mozliwy czas - w niektorych
aplikacjach moze to miec znaczenie). GCC tak robi, Atmel potwierdza
jak sie ich o to spyta, ale w pdf-ach wprost tego nie podaja.
(Podaja nie wprost - ze RETI wraca do glownego programu i zawsze
wykonuje jeden rozkaz przed przyjeciem nastepnego przerwania.
Naprawde jednak dotyczy to nie tylko RETI, lecz kazdego rozkazu
ktory odblokowuje przerwania.)
pozdrawiam
Marek
From: "Michał Smolnik" <smolnik_news_at_nospam_go2.pl>
Subject: Re: mul w AT90S2313
Date: Thu, 2 Nov 2000 21:15:55 +0100
Użytkownik demolka <demolqa_at_nospam_poczta.wp.pl> w wiadomości do grup dyskusyjnych
napisał:8ts9rh$koj$1_at_nospam_news.tpi.pl...
Chodze (oczywiscie tylko chodze, bo niczego tam nie ucza)
A ortografii uczą?
From: "demolka" <demolqa_at_nospam_poczta.wp.pl>
Subject: Re: mul w AT90S2313
Date: Fri, 3 Nov 2000 21:33:50 +0100
nieeeee
Użytkownik Michał Smolnik <smolnik_news_at_nospam_go2.pl> w wiadomości do grup
dyskusyjnych napisał:8tv4kr$amu$1_at_nospam_news.tpi.pl...
Użytkownik demolka <demolqa_at_nospam_poczta.wp.pl> w wiadomości do grup
dyskusyjnych
napisał:8ts9rh$koj$1_at_nospam_news.tpi.pl...
Chodze (oczywiscie tylko chodze, bo niczego tam nie ucza)
A ortografii uczą?
From: "peters" <peters_at_nospam_poczta.onet.pl>
Subject: Re: mul w AT90S2313 (OT)
Date: Fri, 10 Nov 2000 18:43:57 +0100
A ortografii uczą?
nieeeee
No wlasnie, podobno zwracanie komus uwagi, ze sadzi okropne bledy jest
sporym naruszeniem netykiety, ale co robic kiedy czasem to az glowa boli
(choc sam jestem bardzo slaby w ortografii) jak sie czyta niektore posty.
..a wystarczy wlaczyc w outlooku sprawdzanie pisowni :))
P.S. Odpowiadaj pod postem. Nie badz jak ten niereformowalny Konik Bujany na
grupie o Delphi, co pisze w HTMLu :))
--
pozdrawiam, peters
peters_at_nospam_poczta.onet.pl
http://peters.republika.pl (strona Petersa dla elektronikow. Aktualizacja:
05.11.2000)
From: "demolka" <demolqa_at_nospam_poczta.wp.pl>
Subject: Re: mul w AT90S2313 (OT)
Date: Sat, 11 Nov 2000 15:00:53 +0100
Użytkownik peters <peters_at_nospam_poczta.onet.pl> w wiadomości do grup dyskusyjnych
napisał:8uhc31$580$1_at_nospam_news.tpi.pl...
A ortografii uczą?
nieeeee
No wlasnie, podobno zwracanie komus uwagi, ze sadzi okropne bledy jest
sporym naruszeniem netykiety, ale co robic kiedy czasem to az glowa boli
(choc sam jestem bardzo slaby w ortografii) jak sie czyta niektore posty.
..a wystarczy wlaczyc w outlooku sprawdzanie pisowni :))
P.S. Odpowiadaj pod postem. Nie badz jak ten niereformowalny Konik Bujany
na
grupie o Delphi, co pisze w HTMLu :))
--
> pozdrawiam, peters
> peters_at_nospam_poczta.onet.pl
> http://peters.republika.pl (strona Petersa dla elektronikow. Aktualizacja:
> 05.11.2000)
Teraz lepiej
A bledow robie czsami dosyc (np. piszac duzo jako dozo),
zreszta kazdemu sie zdarza.
demolka