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
Hat keiner ein bisschen Zeit mein Programm zu beäugen? Danke im voraus Michael
hi praezise fragen.....moeglicherweise.....praezise antworten. nicht so! : mach den mist fuer mich !
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
Hat wirklich keiner Zeit mein Programm einmal zu beäugen? Danke im voraus, Michael
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.