Hi,
die Funktionen, die du in deinem Code benutzt, kenne ich nicht.
Ich vermute, dass Msleep (1000) den Controler 5 sek. lang mit nichts beschäftigt und dann den Motor abschaltet. So, diese Funktion löscht du jetzt einfach und löscht danach den Papierkorb, damit sie nicht wieder raus krabbeln kann.
Code:
volatile unit8_t uiMotorAus = 0;
void InitTimer (){
WichtigeRegister |= InterruptAn|5SekEinstellen;
}
ISR (TIMERn_Dein_vector)
{
uiMotorAus = 1;
}
int main(void)
{
InitTimer ();
sei();
while(1)
{
if (Taster_ist_gedrückt){
StartTimer();
StartMotor();
}
if (uiMotorAus == 1){
StopMotor();
StopTimer();
uiMotorAus = 0;
}
if (StopTasterIstGedrückt){
uiMotorAus = 1;
}
return 0;
}
Vermutlich meinte FoFe ein Programm nach diesem Gerüst. Ob der Ablauf jetzt genau das ist was du meist, weiß ich nicht.
Das schöne daran ist, der Controller kann noch diverse andere Sachen neben der Motorsteuerung erledigen.
Gruß
Jens
ps. Bitte die Codetags in deinen Postings verwenden.
Lesezeichen