Meine erste Idee wäre folgendes:
- Du schaltest den Taster auf einen Interrupt.
- Wird der Interrupt ausgelöst, schaust Du, wie der jetzige Status des PINs ist.
- Ist er HIGH (damit meine ich gedrückt), dann hältst Du die aktuelle Zeit fest, d.h. liest eine Zählervariable aus, die in einem Timer hochgezählt wird.
- Ist er aber LOW, so bildest Du die Differenz aus altem gespeichertem Zeitwert und dem jetzigen und hast die Drückdauer ermittelt.

Nachteil: Das funktioniert erst, wenn man den Taster loslässt.
Interessanter wäre es, wenn er nach 6 Sekunden gedrückthalten autom. anfängt, ohne dass man loslassen muss. Da fällt mir auch schon der passende Code für ein. Aber diese Ausarbeitung überlasse ich dem geneigten Leser.