m. g. schrieb:
> Wenn ich nun den Powerplug anstecke bzw. abstecke, wird die ISR manchmal
> 2x ausgeführt obwohl ich in der ISR den PCINT und alle anderen Interupts
> für ca. 100ms sperre.
Während die ISR läuft? Glaube ich nicht. Eine ISR im C-Runtimesystem
sperrt automatisch alle Interrupts derart, dass ein zweiter
zwischenzeitlich aufgetretener Interrupt erst nach Beenden der ISR
zuschlagen kann.
Daher:
>
1 | > GIMSK &= ~(1<<PCIE0); // grober Unfug, raus!
|
2 | > cli(); // grober Unfug, raus!
|
3 | >
|
Wie Peter schon schrieb: Dein Kontakt ist nicht entprellt. Mechanische
Kontakte, die manuell geöffnet und geschlossen werden, prellen nunmal.
Dabei ist es auch eine ziemlich schlechte Idee, die Wechsel über einen
PCINT zu erfassen. Das führt meist zu einem Eigentor.
Tipp: Lektüre von Entprellung