PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wert einer Var



NRicola
01.08.2005, 18:57
Hallo,

gibt's ne andere Möglichkeit die dezimale Null (oder anderen Wert) einer Variablen abzufragen, als jedes einzelne Bit zu überprüfen?
Danke für eure Antworten.
GGruß

NRicola

gunzelg
01.08.2005, 19:48
Du willst wissen, ob die ganze zahl Null ist, bzw einen bestimmten Wert hat ? Dann kommts auf den PIC an. Die PIC18 haben ein compare: CPFSEQ z.B. Die PIC16 haben das nicht, da muß man eine Rechenoperation ausführen: z.B. SUBLW, das beeinflußt das Z-Flag in Status register.

Gerhard

02.08.2005, 13:23
Hallo

Nach jeder Rechenoperation (logisch, sub, add, dec, inc) prueft jeder PIC, ob das Ergebnis, das in W steht Null ist, wenn ja, wird das C-Flag gesetzt. Das kann man dann abfragen:
Um irgendein Register zu testen auch z.B so:

movf REGISTER, W
btfss STATUS, C
goto nichtnull:
null: ...


nichtnull: ...


mfg
Felix

02.08.2005, 13:24
Sorry
Meinte natuerlich das Z-Flag, nicht das Carry-Flag (Code ist anzupassen) ...

NRicola
02.08.2005, 14:50
vielen Dank für Eure Antworten - sie haben weitergeholfen!
Grüß

NRicola