Moin! Ich habe mal wieder eine Frage zu dem TMS320F2808... :-) Und zwar will ich das Register ST0 auslesen, um herauszufinden ob die Addition von zwei _iq (oder long) Werten einen Überlauf produziert oder nicht. Ich programmiere in C und meine Assembler Kenntnisse sind bescheiden. Anscheinend ist es in C nicht möglich auf das Register zuzugreifen (oder mir ist nur der name nicht bekannt). Wie sieht der assembler-Code in C aus, mit dem ich den Register-Wert in eine Variable schreiben kann? Gibt es vielleicht eine andere (bessere) Variante mit der ich bei einer Addition auf Überlauft Testen kann? MfG Alex
Ich kann dir leider nicht wirklich weiterhelfen. Es sieht so aus als sei kein "richtiger" Zugriff auf ST0 möglich. Es gibt in der TI-Knowledge-Base einen Artikel wie das beim C5000 mittels Pointer erledigt werden kann, dort ist ST0 memory mapped. Beim C2000 ist dies aber leider nicht der Fall...
Moin, Nachdem man nichts darüber findet hatte ich so etwas hatte schon befürchtet ;-). Ich bin in der Zwischenzeit auf das OVM bit gestoßen. Wenn man das setzt, dann passieren keine Überläufe bei Additionen, sondern das Ergebnis wird auf das Min/Maximum begrenzt. Code in C um das Bit zu setzten/löschen:
1 | asm (" setc OVM") |
2 | asm (" clrc OVM") |
MfG Alex
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.