Hallo,
als ich das mit den Interrupts dann wußte, dachte ich auch im ersten Moment, na Mensch, dass hätte doch mal jemand sagen können. Aber durch das rumprobieren immer mal Interrupts auskommentiert und wieder reingenommen, konnte ein fremder schlecht alles im Überblick behalten. Mach Dir keine Sorgen. ![]()
Das mit dem constexpr brauche ich wohl nicht mehr. Aber gut zu wissen das es möglich ist. Danke dafür.
Denn unsere Kumpels haben mir nochwas gezeigt. Man toggelt das Port Register einfach durch. Damit sind alle bis zum max. möglichen Takt auf die Flanke synchron und man beschäftigt nur einen Interrupt. Außerdem ist man nicht mehr auf die 3 Timer Toggle Pins beschränkt. Man kann irgendein freien Port nehmen und bis zu 8 Pins schalten lassen. Sieht dann am Ende wie ein Binärzähler aus.
Allerdings muß ich Euch nochmal fragen, denn es gibt bei näherer Betrachtung der Takte unschöne Anomalien im Takt. Immer fast genau auf eine ms genau, egal welcher Wert das Compare Match Register bekommen hat. Das Problem besteht nur wenn ich den Code Arduino gerecht schreibe. Schreibe ich das in reinen C gibt es keine erkennbaren Störungen. Nur die loop ist ja leer, wo ich nun dachte das die reinfunkt.
An den includes liegt es nicht, habs pobiert.
Timer1_hakt.ino (1.42 KB)
Timer1_laeuft_sauber.ino (1.12 KB)



