Gast
#363405
Hallo zusammen, ich Programmiere derzeit etwas mit WINAVR und einem ATMEGA32 rum. Aber um konkrete Steuerfunktionen mit dem Controller ausführen zu können, braucht man ja mehrere Zeitfunktionen und Timer. Also ähnlich wie bei einer SPS, wo ich duzende von Timern mit verschiedener Funktion also z.B. einschaltverzögert, verlängerter Impuls usw. haben kann. Ich frage mich also, wie man so etwas am besten mit den zwei vorhandenen ATMEGA-Timern zustande bringt. Die Timerfunktionen müßen auch die delay_ms und delay_us Funktionen aus der onewire.c ersetzen können. Es sollte halt der Zyklus des Controllers nicht unnötig unterbrochen bzw. im Leerlauf sein. Ich hatte schon überlegt, ob ich den Timer laufen lasse und dann alle 10ms oder so, mehrere Register in der ISR des Timers hochzählen lasse. Auf diese Register greife ich dann aus einer Funktion heraus darauf zu. Z.B Timer(Timer1, TE, Wert). Allerdings ist das dauernde und sehr häufige hochzählen ja sehr Zeitintensiv. Weis jemand wie das eine SPS intern regelt, bzw. wie es dort ausprogrammiert ist (ich meine jetzt natürlich nicht in AWL,FUP,KOP). Was sagt ihr zu dem Problem? Hättet ihr irgendwelche Vorschläge? Gruß, Chris