Probleme mit Rechnung und Carry 8051

Gast #1240176
Hi,

vielleicht kann ich den ein oder anderen noch an nem Freitag mit nem 
kleinen Problem von mir quälen. Folgendes Problem:
Ich hab hier nen gemessenen Wert im Akku der zwischen 0 und 102 
schwankt, es soll aber nicht über die 99 gehen von daher subtrahiere ich 
R0( R0=99) vom Akku clear vorher noch den Akku, dass auch genau 99 und 
nicht 100 Subtrahiert wird. Wenn der Wert im Akku kleiner als 99 ist, 
wird Carry gesetzt und rausgesprungen, wenn er größer wird Carry gesetzt 
und Sprung wird ausgeführt,  automatisches setzten des Wertes 99.

Funktioniert aber irgendwie nicht :/ weiss jemand warum???

1
UEBERLAUF:    MOV A, R7
2
              CLR C
3
              SUBB A, R0
4
              JNC UEBER
5
              RET
6

7
UEBER:        MOV A, #99d
8
              RET


Na ja, lassts euch gut gehn... kann das Bierchen heute Abend kaum 
erwarten
Gast #1240949
>Funktioniert aber irgendwie nicht

Erklärmal das irgendwie genauer.

So wie ich das sehe funktioniert deine Routine.
Mit der Ergänzung Skua funzt sie besser.
#1241017
Dokumentier mal Deine Funktion, damit Du auch selber durchsiehst, z.B.
1
;function: if R7 > 99 then R7 = 0
2
;input; R7 = 0..255
3
;output: R7 = 0..99
4
lim_99:
5
  cjne r7, #100, _lim_1
6
_lim_1:
7
  jc _lim_2
8
  mov r7, #0
9
_lim_2:
10
  ret


Peter

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.