Ich glaube, ich weiß was:
if (bit_is_clear(PINA,7)&&(temp==1)){
PORTC++;
temp=0;
}
else{
temp=1;
}
1 Durchgang, let's say temp=1, ok, Bedingung true ->
Rein und temp=0 setzen.
Beim nächsten Durchgang ist also temp=0, damit die Bedingung false, und
es
wird temp=1 gesetzt.
Damit rattert das Ding ständig zwischen dem TRUE- und der FALSE- Teil
durch.
besser:
if (bit_is_clear(PINA,7)&&(temp==1)){
delayms(10);
delayms(10);
delayms(10); // Entprellen
if (bit_is_clear(PINA,7) // nach Entprellung immer noch
gedrückt?
{
PORTC++;
while(bit_is_clear(PINA,7); // warten bis losgelassen
}
}
Aber:
PORTC ist eine in einem Header vordefinierte Konstante. Die kann man
doch nicht einfach so inkrementieren...?