mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Multiplizieren und Dividieren mit dem 80C517


Autor: Michael Balsiger (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich versuche in meinem Programm einen Wert aus dem 10Bit AD-Wandler zu
lesen, ihn mal 32 zu multiplizieren und dann mit 150 zu dividieren.
Schau Dir doch bitte einmal mein Programm an und korrigiere die wo was
nicht stimmt, vielen Dank. Michael

Autor: Stefan Kleinwort (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aber bitte nicht als Doc-Datei ...

Stefan

Autor: Michael Balsiger (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Dann als bak-Datei...

Michael

Autor: Michael Balsiger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat keiner ein bisschen Zeit mein Programm zu beäugen?
Danke im voraus
Michael

Autor: spinner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi

praezise fragen.....moeglicherweise.....praezise antworten.

nicht so! :  mach den mist fuer mich !

Autor: Stefan Kleinwort (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich habe mal Dein Programm angeschaut. Wenn Du es als das postest,
was es ist, nämlich als .asm Datei, dann schauen sicher mehr Leute
rein. .doc macht doch kein Mensch freiwillig auf, und bei .bak weiss
man von aussen auch nicht, ob es asm oder C ist.

Die Parameterübergabe an das interne Rechenwerk sieht recht merkwürdig
aus, den einen Parameter übergibst Du als 16-Bit-Wert, aber den
anderen??

multi:    mov  r2, #020h  ; R2 mit Multiplikator 32d laden
    mov  r3, #020h  ; R3 mit Multiplikator 32d laden

    mov    MD0, R0     ; Arithmetik-Register laden
              mov    MD4, R1    ;
              mov    MD1, R2    ;
              mov    MD5, R3    ;
                                 ; Start der Multiplikation
              nop               ; 4 Takte warten
              nop               ;
              nop               ;
              nop               ;
                                 ;
              mov  R4, MD0     ; Ergebnis auslesen
              mov    R5, MD1     ;
              mov    R6, MD2     ;
              mov    R7, MD3     ;

              ret               ;

Dass in R2 und R3 dieselbe Konstante drinstehen muss, kann ich mir fast
nicht vorstellen. Im High-Byte muss doch eher NULL sein? Ich habe aber
keine Doku zu der CPU mehr, habe ich früher mal benutzt, ist schon ne
Weile her.

Beim Dvidieren hast Du noch 20h statt 150 drinstehen.

Zum Testen solltest Du statt Deinen Messwerten erstmal feste Werte
nehmen, bei denen Du weisst, was rauskommen soll. Dann kannst Du Deine
Rechnung besser verifizieren.

Stefan

Autor: Michael Balsiger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat wirklich keiner Zeit mein Programm einmal zu beäugen?

Danke im voraus, Michael

Autor: spinny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,
hier gibt es fertige routinen.

http://www.8052.com/codelib.phtml


bediene dich.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.