Hallo Leute, es sind ja schon paar Fragen im Forum zu Peter Fleury´s uart Bilbiothek gestellt worden - dennoch wollte ich nochmals um euren Rat fragen. Aufbau: Ich verwende ein Mega2560 Board (Arduino) programmiere das ganze aber ohne die Arduino IDE, sondern rein in C. Zum Flashen verwende ich AtmelStudio 7. Mit meinem Board wird ein DC- Gleichstrommotor drehzahlgeregelt. Zur Drehzahlregelung errechne ich mir alle 200 ms die Drehzahl und schicke das in einen PI-Regler. Die Solldrehzahl soll dabei vorab über den PC vorgegeben werden und an das Board geschickt werden. Darüber hinaus empfängt das Board via eines MAX232 ein Signal eines Drehmomentsensors. Nun zu meiner Frage: Ist es grundsätzlich möglich mit der Bibliothek von Peter Fleury sowohl die Drehzahldaten als auch die vom Drehmomentsensor erhaltenen Daten an den PC weiterzuleiten? Ich stelle die Frage, weil ich mir nicht sicher bin, ob man 2 Datensignale via der USB-Buchse mit der Bibliothek von Peter Fleury übermitteln kann. Bzw. wieviel Aufwand ist es so etwas einzustellen oder gibt es einfachere Lösungen? Da ich leider mit dem Senden und Empfangen über UART noch nicht so vertraut bin wäre ich über jede Hilfe dankbar.
Stefan G. schrieb: > Ist es grundsätzlich möglich mit der Bibliothek von Peter Fleury ja klar, ich nutze viele Bibliotheken, auch von Fleury die mir immer gut gefallen hatten, aber hier gabs wohl noch erweitertes besseres? Beitrag "ISR Code schneller machen?" viel Stoff und alles schön zusammenrühren, dann wird die UART Lib noch besser
@Stefan G. (steff_123) >Darüber hinaus empfängt das Board via eines MAX232 ein Signal eines >Drehmomentsensors. Also hast du 2 UARTs. >Ist es grundsätzlich möglich mit der Bibliothek von Peter Fleury sowohl >die Drehzahldaten als auch die vom Drehmomentsensor erhaltenen Daten an >den PC weiterzuleiten? Ja. >Ich stelle die Frage, weil ich mir nicht sicher bin, ob man 2 >Datensignale via der USB-Buchse mit der Bibliothek von Peter Fleury >übermitteln kann. Wieso 2 UARTs über USB? Dort hängt nur ein UART dran, der ander per MAX232. >Bzw. wieviel Aufwand ist es so etwas einzustellen Geht out of the box, denn die Lib des Herrn Fleury unterstützt 2 UARTs.
Ok ich hoffe ich hab mich nicht missverständlich ausgedrückt. Die Signalketten sind folgende: Drehzahl am PC vorgeben -> Atmega Drehmomentsensor -> Messverstärker -> über Max232 auf den Atmega -> PC Encoder vom DC-Motor -> Atmega -> PC Also sowohl Drehzahl + Drehmoment sollen via den USB-Anschluss des Boards an den PC gesendet werden. Sry wenn ich dich falsch verstanden habe bzw. ich es noch nicht ganz verstehe - aber mit den integrierten 2 UARTS von Fleury´s bib sollte es gehen?
@Stefan G. (steff_123) >Die Signalketten sind folgende: Ein Blockschaltbild wäre besser. >Also sowohl Drehzahl + Drehmoment sollen via den USB-Anschluss des >Boards an den PC gesendet werden. Schon klar, aber dazu braucht es nur EINE logische UART-Verbindung zum PC. Dort kannst du alle möglichen und unmöglichen Daten in einem Format/Protokll deiner Wahl übertragen. >Sry wenn ich dich falsch verstanden habe bzw. ich es noch nicht ganz >verstehe - aber mit den integrierten 2 UARTS von Fleury´s bib sollte es >gehen? Ja.
Stefan G. schrieb: > Sry wenn ich dich falsch verstanden habe bzw. ich es noch nicht ganz > verstehe - aber mit den integrierten 2 UARTS von Fleury´s bib sollte es > gehen? Ja, klar. Eine UART-Instanz für die Verbindung zum Drehmomentsensor und eine für die Verbindung zum PC. Bei der logischen Trennung der zwei Datenströme in Richtung AVR->PC hilft die Fleury-Lib aber natürlich nicht weiter, da musst du schon ein eigenes Protokoll drüber legen, um das zu realisieren.
Vielen Dank euch schon mal >Bei der logischen Trennung der zwei Datenströme in Richtung AVR->PC >hilft die Fleury-Lib aber natürlich nicht weiter, da musst du schon ein >eigenes Protokoll drüber legen, um das zu realisieren. Hätte da jemand einen Tipp für mich wie man das angeht bzw. wo man sich da schlau machen kann? Vielen Dank
Stefan G. schrieb: > Hätte da jemand einen Tipp für mich wie man das angeht Man denkt darüber nach und setzt das Ergebnis dieser Denkvorgänge in Quelltext um. Genau sowas nennt man "Programmieren". Natürlich: Eine völlig neue Erfahrung für Copy&Paste-Artisten...
@ Stefan G. (steff_123) >Hätte da jemand einen Tipp für mich wie man das angeht bzw. wo man sich >da schlau machen kann? Im Internet ;-) Im Ernst. Fang mal einfach an, indem du deine Daten mit ASCII durch die Gegend schickst. Dann kannst du einfach schreiben M:1234 N:5678 M ist hier meine Kodierung für das Drehmoment, N die Drehzahl. Der Phantasie sind keine Grenzen gesetzt.
Hallo, ich denke ich verstehe deine Gedanken was dich zu der Frage führte. Die serielle Übertragung ist immer Byte für Byte. Mehr macht die Serielle nicht. Es ist nicht limitiert wieviele Bytes du am Stück überträgst. Dafür baut man sich dann ein festes Protokoll was beide Seiten verstehen. Dann kann man das am Stück, eben Byte für Byte, übertragen und beide Seiten können damit etwas anfangen. Wie das Protokoll aussieht, dafür gibts tausende Möglichkeiten. In dem Link oben findest du den Code. Da ist alles enthalten. Empfang, Verarbeitung, senden. Die Struktur kannste anpassen wie du lustig bist, solange alle Teilnehmer die gleiche Struktur/Protokoll kennen bzw. nutzen. Die serielle Übertragung ist mit dem Code Langzeit getestet, funktioniert. Die Änderungen in der uart Lib wurden nur notwendig um das Servopulssignal Jitterfrei zubekommen. Das ist sehr speziell, brauchst du nicht, kannste aus meiner Sicht ignorieren. Bis auf die "serial senden flush" Änderung, die ist notwendig.
:
Bearbeitet durch User
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.