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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.