Hallo, habe hier den Code der die Spannung anzeigen soll. Der Code ist von der Seite, sollte bis auf das zwischen den Sternen also korrekt sein! URL: http://rafb.net/p/0Osrkr99.html Nun hab ich bei den Sternen ein Subtraktion eingefügt, die funktioniert so weit und danach eine Multiplikation. Da kommt dann ein falsches Ergebnis raus. Weiß jemand, was ich falsch gemacht habe?
Vermutlich ist nach der Multiplikation dein temp1..4 verändert? Sieh dir mal der Reihe nach an, was das Programm jetzt macht:
1 | ;*********************************************** |
2 | subi temp1, Low(10000000) X |
3 | sbci temp2, byte2(10000000) X hier wird was mit temp berechnet |
4 | sbci temp3, byte3(10000000) X |
5 | sbci temp4, byte4(10000000) X |
6 | |
7 | push temp5 |
8 | push temp6 |
9 | ldi temp5,low(20000000) |
10 | ldi temp6,high(20000000) |
11 | |
12 | mul_16x16: |
13 | push zeichen |
14 | clr temp1 X |
15 | clr temp2 X und hier wirds wieder gelöscht. |
16 | clr temp3 X |
17 | clr temp4 X |
Jetzt alles klar? Ich möchte ernsthaft bezweifeln, dass du weißt, was du gerade machst. Was ist denn vor der Subtraktion in temp1..4? Macht es irgendeinen Sinn, von diesen Werten etwas abzuziehen?
Hallo, ups. Danke erstmal >Was ist denn vor der Subtraktion in temp1..4? >Macht es irgendeinen Sinn, von diesen Werten etwas abzuziehen? Vor der Subtraktion repräsentiert die Zahl in temp1-4 die Spannung in V. Davon möchte ich erst was abziehen, und dann multiplizieren. >Macht es irgendeinen Sinn, von diesen Werten etwas abzuziehen? Ja, das brauch ich unbedingt. Ich wollte ein Differenz ermitteln und diese dann multiplizieren. Wie auch immer, habe eben gesehen, dass die Routine ja eigentlich nur für eine 16Bit Zahl geht, und temp1..4 ja eine 32Bit Zahl ist. Gibt es da auch eine Routine, mit der man ein 16bit mit einer 32Bit Zahl multiplizieren kann? Würd mich echt freuen, wenn die jemand hätte :-)
HI Wenn es dir hilft. 'result','arg1','arg2' sind ensprechend breite Puffer im Ram. MfG Spess
THX Spess :-) Allerdings hab ich nun doch einfach vor der multipl. subtrahiert ;) Ist deutlich einfacher dann.
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.