Doch, ich finde schon, dass das das unterschiedliche Verhalten erklärt:
- read() gibt den entprellten Signalwert, also immer true wenn das signal immer HIGH ist.
- fell() und rose() geben nur einmal true, wenn eine Flanke erkannt wurde, sonst immer false.
Mich wundert nur das eine true am Anfang.