Zitat Zitat von SprinterSB
Haupsache es geht mal.
Den C und den R solltest du eigentlich nicht brauchen...

Zu deinem Code:
  • Falls du GCC optimieren lässt, wird er die Warteschleife komplett in die Tonne kloppen, weil sie nix macht. Also zB ein k = PORTB oder ein _NOP(); (gibts mit #include <avr/ina90.h>)
  • Die 2.Warteschleife ist zu viel, so wartest du 2x.
  • Die Warteschleife besser ans Ende der Interrupt-Routine, vor das GIFR=...
  • Falls während der Routine der Taster flackert, wird ja wieder das INTF1 Flag gesetzt, das du versuchst zurück zu setzen. Das geht, indem man eine 1 hin schreibt (keine 0):
    GIFR = _BV(INTF1); // reset INT1 Flag
  • INT1 so initialisieren, daß er flankengetriggert ist, also nur bei Änderung anspricht; nicht levelgetriggert, sonst landest du auch dauernd im Interrupt solange der Taster noch gedrückt ist.


Falls dein Prog sonst nix maches soll, ist's ok. Aber wenn sonst noch Zeug zu erledigen ist, muss dir klar sein, daß zu ziemlich lange im Interrupt rumschnarchst...
Hallo und schönen guten Abend...
Vielen Dank für diese Tipps...
Die Sache mit der prellenden Taste habe ich dann doch hardwaremäßig gelöst.
Ich habe den 100nF gegen einen 1uF Tantal Kondensator ausgetauscht. Der Widerstand ist bei 10kOhm geblieben. Erreiche hiermit eine Zeit von ca. 11ms wodurch das Problem mit dem prellenden Taster aus der Welt geschaffen ist.
Sicherlich ist es angenehmer die Sache softwaremäßig zu lösen, doch für einen Neuling wird es schwierig, auch noch den Timer zu implementieren.

Ach ja, INT1 ist auf fallende Flanke initialisiert.

So langsam habe ich den gesamten Code, dank eurer Hilfe zusammen...

Heute Abend bin ich noch an den Kommentaren usw. dran...

Im großen Ganzen verstehe ich auch das, was ich geschrieben habe. Doch es gibt bestimmte Stellen, wo ich nicht ganz schlüssig werde.

Würde mich freuen, wenn ich noch einige Verständnisfragen stellen dürfte (falls notwendig )

Hier schon die erste...

GIFR = _BV(INTF1);
was bedeutet hier das _BV?

Nochmals aber vielen Dank für die tolle Unterstützung... =D>