ok, feines gerät. dann betrachte ich folgende beobachtung mal als problemchen.
bei D0 kommt es manchmal beim setzen auf low zu einer verzögerung. wenn sie auftaucht, ist sie scheinbar konstant.
dann könntest du vielleicht auch mal versuchen, ob du ein weiteres problem nachstellen kannst.das werd ich am Wochenende mal prüfen.
manchmal bleibt der rhs "hängen", wenn die zustandsänderungen der 3 schalter zu schnell aufeinander folgen:
a) eine änderung der 3 taster am MSP430 wird dann nicht mehr registriert/gemeldet.
b) die led bleibt bei zustandsänderung dann dunkel oder reagiert anders.
c) der configtaster erzeugt aber weiterhin eine anlernmessage und orangenes blinken.
d) vermutlich bleibt wegen c) nur der MSP430 hängen oder wacht nicht mehr auf.
im normalen einsatz passiert es eigentlich nur, wenn man den fenstergriff in einem zug um 2 positionen ändert.
am besten reproduzieren kann ich es mit dem batteriedeckelkontakt, indem ich den geöffneten deckel schnell schliesse und wieder öffne. ein reboot (batterie raus/rein) löst natürlich das problem.
oder einfach komplett aus dem if/else komplex entfernen und grundsätzlich für die ersten 25 durchläufe als erstes nach dem "//WAIT WHILE H" ausführen.Dann müsste das _delay_us wohl auch nach jedem PORTC &= ~_BV(PC3); kommen.