Hallo! was ist das Status.C von einem PIC controller? bei arithmetischen Operationen wo 0 rauskommt wird ein anderes Bit gesetzt. Was aber ist status.c(nennt sich Carry Bit) in dem datasheet steht folgendes: 1 = A carry-out from the Most Significant bit of the result occurred HÄH?!? Danke im Voraus für Antwort
folgende situation: CODE: (alles sind 8 bit char variablen) prox_count_high = prox_count_low - prox_count_high; prox_count_low += 2; if(STATUS.0 != 0) {.....} die abfrage des carry flags sagt mir dann was?
>CODE: (alles sind 8 bit char variablen) >prox_count_high = prox_count_low - prox_count_high; >prox_count_low += 2; > if(STATUS.0 != 0) {.....} > die abfrage des carry flags sagt mir dann was? Dass bei der Addition prox_count_low += 2; das Ergebnis nicht in 'prox_count_low' passt (grösser als 255). Aber wieso programmierst du in 'C' und fragst dabei das Statusregister ab???
praxissemester assembler programm war vorgegeben, soll es in c aufbauen, hab es also analog umgeschrieben(Kapazitive sensoren abfragen, ladepulse zählen)
In C kanns auch einen overflow geben, oder nicht? Wie oben schon geschrieben wurde: Wenn du eine Variable aufaddierst und das Ergebnis größer als 255 werden würde, dann gibts nen overflow, die Variable beginnt wieder bei 0 und das Carry-Bit wird gesetzt. Das braucht man z.B., wenn man von Hand mit einer Variable mit mehr als 8 Bit rechnet.
Ach ja: falls es in deiner Anwendung gerade um eine in ASM angelegte 16 oder 32 Bit Variable geht, dann kannst dir das ganze sparen und gleich in C eine solche Variable anlegen. Der Compiler macht dann den Rest selbst.
Und bei den Rotationsbefehlen ist das neue Bit (welches rein geschoben wird) immer das CARRY-BIT und das Bit welches rausgeschoben wird landet auch in CARRY. Damit hast du als ASM-Programmierer die Möglichkeit auf diese Bits zuzugreifen, bevor sie verloren gehen.
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.