PD = PA i en ATMega32, C

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
monstrum
Inlägg: 620
Blev medlem: 13 januari 2005, 05:38:32
Ort: Göteborg

Inlägg av monstrum »

Hatten motsvarar den bitvisa logiska operationen XOR. Alltså, om en bit i båda operanderna är lika så blir resultatet 0.

Denna är ganska märklig att använda som evaluerande funktion i en if-sats eftersom det kommer att medföra att påstående i princip är sant av andra anledning än den tänkta.

Varför? Jo för om nu hela PIND inte är helt identisk med _BV(PD1) (som är lika med talet 0x02), så blir resultatet av XOR:en något skilt från noll, vilket gör att if satsen alltid körs.

Jag skulle rekommendera att du kollar efter pulserna i två steg, ett där du väntar på att pulsen skall gå hög, och ett där du väntar på att den går låg igen.[/code]
Virr3
Inlägg: 840
Blev medlem: 25 juli 2004, 23:05:59
Ort: Göteborg

Inlägg av Virr3 »

Okej. Tack så mycket.
Får göra de imorgon. Nu är de dax att sova.
Skriv svar