Guten Tag,
ich bekomme vom PC einen festen Datensatz auf meinen µC gesendet mit
welchem ich arbeiten muss.
Der Datensatz kommt mit den Indexwerten 0-9 zum µC. Die Werte stehen für
die Pause in Sekunden.
Im µC werden diese dann mittels einem Timer Interrupt, der alle 100ms
kommt verglichen.
Bisher war es immer so:
1 | if ((LED_Counter100ms/10) > AktuellSignal[SignalTyp2].Pause)
|
Ich teile den Counter immer durch 10, dabei wird die "Einer"Stelle
abgeschnitten. Das ist auch ok so für den Sekunden Bereich. Jetzt will
ich aber auch den Bereich kleiner einer Sekunde bedienen. Sprich 100ms,
200ms...
Mein Gedanke ist eigentlich die Werte aus der Übertragung mal 10 zu
nehmen. Also in 100ms Paketen anzugeben und im obigen Code einfach den
Teiler wegzulassen.
Jetzt habe ich allerdings auch noch einige Altgeräte, bei denen die
Firmware nicht geändert wird. Wenn ich jetzt die Übertragung abändere
funktionieren die Geräte mit alter Firmware nicht mehr mit der neuen
Übertragung..
Irgendwelche Ideen wie das geschickt zu lösen wäre?