www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Compare with carry, brsh


Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi zusammen,

folgendes problem:

ldi      temp2, 0x08
ldi      temp, 0x00
cp      low, temp2
cpc      high, temp
brsh            ok

in low und high sind die am a/d wandler eingelesenen werte.
diese werden auch richtig eingelesen (lass ich mir vorm vergleich 
ausgeben)

wenn er aber den vergleich asugeführt hat, spirngt er nicht zur marke ok
liegt es daran, dass er überprüft ob das carry-flag 0 ist?

wenn ja welche andere möglichkeit gibt es, 16 bit miteinander zu 
vergleichen?
besser gesagt ich brauch nur 10 bit weil mein a/d wandler ja nicht mehr 
hergibt.

ich verwende einen tiny 26.

hab ich noch was vergessen anzugeben? hoffe net...

im voraus schon mal danke

gruß
peter

Autor: Christian Z. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wann soll denn gesprungen werden, wenn die jeweiligen Bytes deines AD 
Wandler >= der werte in den temp Registern sind? Probier mal das.
ldi     temp2, 0x08
ldi     temp, 0x00
cp      low, temp2
brlo    NICHT_OK 
cp      high, temp
brsh    OK
NICHT_OK:

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja gesprungen werden soll wenn meine ad werte größer der werte als im 
temp register sind.
sinn und zweck ist, dass weitergesprungen wird, wenn eine spannung 
anliegt.
die 0x08 dienen nur dazu, dass wenn irgendwelche restspannungen oder 
sonstige kleinere messfehler vorhanden sind den sprung nicht 
durcheinander bringen.

wenn ich deine version verwende, müsst ich ja bei nicht ok nochmal 
überprüfen, ob das highregister leer ist, denn ich hab ja einen bereich 
von:
0x0000 bis 0x03FF.

aber ich bin mir eigentlich ziemlich sicher, dass es so schonmal 
funktioniert hat :-(

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Benutze doch einfach 'brcc'. Dann erfolgt ein Sprung wenn >=8.

MfG Spess

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ziemlich viele der Sprungbefehle sind meiner Meinung nach sowieso Luxus, 
da man fast alles mit BRCC, BRCS, BRNE, BREQ machen kann.

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

@Travel Rec.   Genau!

MfG Spess

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Spess53 wrote:
> Benutze doch einfach 'brcc'. Dann erfolgt ein Sprung wenn >=8.
"brsh k" und "brcc k" sind nur andere Mnemonics für den Befehl "brbc 0, 
k". Mit anderen Worten: brsh durch brcc ersetzen bringt gar nichts. Ist 
alles exakt der selbe Befehl.

Autor: Christian Z. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stimmt, ich bin es nochmal durchgegangen
ldi     temp2, 0x08
ldi     temp, 0x00
cp      low, temp2 ;Low-0x08 wenn Low > 0x08 -> C=0
cpc     high, temp ;High-0x00-C wenn High >= 0 & C=0 -> bleibt C=0
brsh    OK ;Springe wenn C=0
Eigentlich sieht es doch so aus als ob es funktionieren sollte. Kann es 
sein das der Fehler woanders liegt?
Ich bin jetzt erst einen Monat mit der ASM Programmierung beschäftigt 
von daher Entschuldige den oben verfassten Quatsch.

Lade doch einmal manuell Werte direkt vor dem Vergleich in Low und High 
und überprüfe was passiert.

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.