Patrick wrote:
> Kann mir
> vielleicht jemand sagen, wie die Zustände der Ports sein müsssen, damit
> ich LAMP_MAIN zurück bekomme?
PA6 low und PA5 high...
Step by step:
1 | stat = PINA & ((1 << PA5) | (1 << PA6));
|
In stat wird der ausmaskierte Zustand von PA6 und PA5 abgelegt, die
Bits 7 und 4...0 sind 0.
1 | if (stat == ((1 << PA5) | (1 << PA6))) return LAMP_ERROR;
|
Wenn stat (also der Zustand von PA6 und PA5) gleich der Maske aus PA6
und PA5 ist (also wenn beide Pins High-Pegel haben), dann wird
LAMP_ERROR zurückgegeben.
1 | else if (stat == 0) return LAMP_NONE;
|
Wenn beide Pins Low-Pegel haben, dann ist stat 0 und es wird LAMP_NONE
zurückgegeben.
1 | else if (stat == (1 << PA5)) return LAMP_MAIN;
|
Wenn die beiden vorherige Bedingungen nicht erfüllt waren (also wenn
weder beide ausgewerteten Pins High-Pegel noch beide Low-Pegel haben)
und nur PA5 High-Pegel hat, dann LAMP_MAIN zurückgeben.