habe leider keinen pic zum testen da und in letzter zeit eher pc software gebastelt, deshalb ohne gewähr (bei den atmegas fragt man PINB ab). ich habe angenommen, dass Taster während der "messung" = 0 ist und seinen zustand auch innerhalb der funktion ändern kann (sonst läuft die funktion, bis ein flankenwechsel erfasst wird).
Code:
int check()
{
  int state=PINB&0b00001000;
  while(Taster==0&&(PINB&0b00001000==state);
  if(Taster==0)return 1;
  else return 0;
}
gruesse