Zitat Zitat von Holomino Beitrag anzeigen
Alles in IRQs auzulagern, während das Hauptprogramm sich bei
Main: jmp Main
in der Nase bohrt, ist auch Kappes.
Ein bischen länger darfs schon sein:
Code:
while(1) {
     sleep();
}
Bei den meisten Betriebssystemen sieht die Mainloop so aus.

Timer verwendest Du, wenn Du ein Timing (nach oben und nach unten, z.B. UART-Emulation) einhalten willst. Die Verwendung von einfachen Warteschleifen zur Einhaltung von Mindestzeiten (z.B. Tastenentprellen, I2C-Emulation,...) ist meiner Ansicht nach legal.
Alles, was der Compiler schluckt, ist legal, trotzdem gibt es einen Unterschied zwischen Lehrlingsarbeit und Meisterwerk. Die meisten Delays kann man in einem regelmäßigen Timertick abhandeln, insbesondere das Einhalten von Mindestzeiten und gerade das Entprellen von Tasten, auch mehreren gleichzeitig. Und wenn man sein System sauber analysiert und geplant hat, fällt möglicherweise das Timing für ein SW-UART for free ab.

MfG Klebwax