Gast
#165360
Hallo.. Versuche schon den ganzen Tag den Wert eines Pins abzufragen. Mega8515 Sprache: ASM Pin D6 <Wenn Pin D6 auf Masse dann> ldi temp, 254 <wenn nicht dann> ldi temp, 0 bitte helft mir. Danke, Markus
|
Anzeige
|
Einzelner Pin
Gast
#165360
Hallo.. Versuche schon den ganzen Tag den Wert eines Pins abzufragen. Mega8515 Sprache: ASM Pin D6 <Wenn Pin D6 auf Masse dann> ldi temp, 254 <wenn nicht dann> ldi temp, 0 bitte helft mir. Danke, Markus
Gast
#165361
SBIS PIND, 6 ldi temp, 254 SBIC PIND, 6 ldi temp, 0 dave
Gast
#165362
Hallo Dave... hmm, mit SBis habe ich es auch schon getestet aber bin nicht darauf gekommen dann noch sbic zu machen. Vielen Dank........ lg, markus
Gast
#165363
Besser: ldi temp, 254 SBIC PIND, 6 ldi temp, 0
Gast
#165364
Danke.. und wie löse ich es wenn mehrer Pin's abgefragt werden soll ? zb.: sbis PinC, <pin0 und pin1 und pin2> ldi temp, 100 vielen dank, markus
Gast
#165365
z.B.: in temp1,pinc ;gesamten Port einlesen cpi temp1,0b00000111 ;mit Konstante vergleichen (Bit 0, 1 und 2) brne stimmtnicht ;wegspringen, wenns nicht überein stimmt ldi temp,100 ;was tun, wenns stimmt stimmtnicht: ;Sprungziel (Label) ... ;irgendwas anderes auswerten oder tun... ...
Gast
#165366
@AK: Ja gut ;) aber manchmal isses andersrum auch nich verkehrt. IN temp1, pinc ANDI temp1, 0b0000 0111 BRNE stimmtnicht LDI temp, 100 ; if, then RJMP ende_gelaende stimmtnicht: LDI temp, 123 ; else.. ende_gelaende: NOP NOP ;.. Meistens brauchts ein ANDI vorher, weil sonst würde das Ergebnis des Vergleichs von anderen PINs verändert werden. Und für das ELSE musst du noch mit RJMPs arbeiten. dave
Gast
#165367
ok. vielen dank. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|