Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

asembler 8051 + AVT-2250 blad liczenia

09 Cze 2011 16:29 1663 4
  • Poziom 2  
    Witam, mam pewien problem z programem na avt-2250
    licze wyrazenie (x-3):2 = y
    x pobieram z portu rs232
    y wyswietlam na hyperterminalu oraz na wyswietlaczu 8 segmentowy avt-2250.
    Teraz sedno problemu program liczy dobrze gdy wstawie za x liczbe parzysta, w przypadku nie parzystej juz nie. Moglby ktos pomoc ? Mam jeszcze jedno pytanie , jak wyswietlic wynik w hyperterminalu w ASCII?
    pewne rzeczy zakomentowalem dla testow
    Kod: asm
    Zaloguj się, aby zobaczyć kod
  • Poziom 30  
    To nie jest cały kod i trudno powiedzieć co jest w ACC po zakończeniu procedury
    "INACCRS". Poza tym piszesz, że pobierasz 2 znaki ASCII i co dalej z nimi robisz (jak konwertujesz do jednego bajtu) - bo raczej tu masz problem.
  • Poziom 32  
    Przy dzielenie przez dwa tracisz jeden bit znaczący stąd taki sam wynik otrzymasz przy liczbei x parzystej i niepraszystej na przykład dla x=10 i x=9

    (10-3)/2=3
    (9-3)/2=3
  • Poziom 2  
    dzięki za odpowiedzi.
    procedura INACCRS
    podprogram oczekuje na 2 znaki ASCII z portu szeregowego a następnie zamienia je na bajt i umieszcza wynik w akumulatorze. Odbierane znaki muszą reprezentować cyfry kodu szesnastkowego

    czyli wystarczy jak zamiast rr A użyje powiedzmy div AB i do B wpisze 2 wczesniej?
    troszke dziwne bo samo dzialanie bez pobierania z portu liczylo dobrze, dodalem tylko pobieranie z rs232 i wynik byl zly.
    tutaj jest procedura do wysylania , czyli odwrotna, do procedury dokladnej nie mam w tej chwili dostepu
    Kod: asm
    Zaloguj się, aby zobaczyć kod
  • Poziom 30  
    Pisząc poprzedni post byłem przekonany, że utrata informacji przy zwykłym przesuwaniu jest dla Ciebie jasna. Instrukcja DIV AB wykona dzielenie "z resztą".
    Czyli 5/2=2 reszta 1 -> co oznacza 2 i 1/2
    11/10 = 1 reszta 1 -> 1 i 1/10
    Wszystko zależy do czego zmierzasz :-)