Zitat Zitat von killma$ter
... Ausgänge in bestimmten Zeitabständen ... 30ms oder ähnlich ... Timer/Counter ... aber viele sind ja in den kleinen Megas nicht verfügbar ...
Also: Millisekunden sind bei den Controllern ne halbe Ewigkeit. Es reicht da EIN Timer der eine interne Uhr betreibt - ich habe bei einem 20 MHz-Quarz einen 50 µs-Timer. Damit zähle ich in der zugehörigen ISR bis 20000 (zwanzigtausend) und fange dann neu an zu zählen - sprich alle Sekunde. Es ist mit uint16_t möglich bis 60000 zu zählen, drei Sekunden.

Im übergeordneten Programm kann ich mich auf diese Boardzeit berufen. Allenfalls ist es sinnvoll, neben der Timer-Zeit für den jeweils aktuellen Fall noch "altzeit" und "neuzeit" festzuhalten (oder andere Variante), um den Überlauf von einer auf die andere Sekunde mitzukriegen.