Zeitverhalten

Gast #174177
Lesenswert?

Hi,

ich soll einen Analogwert per AD-Wandler wandeln, per CAN übertragen (8
Bit) und per PWM wieder ausgeben.
Jetzt ist meine Frage, wie das zeitlich aussieht.
Nach jeder abgeschlossenen Wandlung löst der AD-Wandler einen Interrupt
aus. In der ISR kann ich den Wert dann per CAN-Message abschicken. Wenn
der Empfänger die Nachricht korrekt empfangen hat löst dieser auch
einen Interrupt aus, in dieser ISR verwende ich den Wert dann zur PWM.
Soweit meine geplante Theorie.

Aber lässt sich das zeitlich so verwirklichen? Die CAN-Übertragung
läuft mit 125kBaud.
Die Übertragung müsste ja dann schneller sein als der AD-Wandler, oder?
Aber wie schnell arbeitet der Wandler?
Und die PWM sollte etwa gleich schnell sein wie der AD-Wandler?

Lässt sich das so verwirklichen? Es handelt sich um einen C515c.

Auf einen Ringpuffer würde ich gerne verzichten wenn möglich. Geht das
auf diese Art?
Gast #174178
Lesenswert?

Bau es doch einfach in einer Endlosschleife wie beschrieben auf. Du
kannst auch alles im Polling machen und sparst dir die Interrupts.

1. AD-Wandlung auslösen
2. Wenn fertig CAN-Message senden
3. Wenn fertig PWM-Wert berechnen und ausgeben
4. Springe zu 1.
Gast #174179
Lesenswert?

Dss Problem an der Endlosschleife ist, dass der Empfänger dem Sender
nicht mitteilen kann wenn er fertig ist mit der PWM.

Sender und Empfänger laufen ja völlig getrennt voneinander ab.

Ich könnte höchstens noch über den CAN Transmit Interrupt abfragen ob
die Message korrekt gesendet wurde, und erst dann eine neue Wandlung
starten.

Im Handbuch steht eine Wandlungszeit von 13us. Wie lange dauert die
Übertragung von 8 Bit bei 125kBaud? Ich kann mit dem Begriff Baud grad
nicht so viel anfangen. Sind das 125000 Bits/s? Weil das wären ja dann
schon 8 us pro Bit?! Also wäre die Übertragung zu langsam?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren