Forum: Mikrocontroller und Digitale Elektronik Zeitverhalten


von Student (Gast)


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?

von Alex (Gast)


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.

von Student (Gast)


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?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.