mollyman
30.05.2013, 12:09
Hallo zusammen
ich habe ein für mich sehr ehrgeiziges Projekt vor.
Es geht darum ich möchte eine Anzeige Bauen, die mir für ein Fahrerfeld von 10 Fahrzeugen anzeigt, welche Startnummer auf Platz 1 ist, welche auf Platz 2 ist usw. Einige werden so etwas von den amerikanischen Rennen her kennen.
Die Daten werden von einer Software generiert und per RS485 im RMonitor Timing Protocol (http://www.imsatiming.com/software/Protocols/AMB%20RMonitor%20Timing%20Protocol.pdf) gesendet.
Es werden aber nicht alle Funktionen benötigt, die, das Protokoll hergibt.
Angezeigt werden soll:
Uhrzeit
Restliche Rennzeit
Flaggenstatus ( grün, gelb, rot, finish)
Die Startnummer der Fahrer auf den Plätzen 1-10 ( die Platzierung ist unveränderlich auf der Tafel, es ändert sich nur die Startnummer zu der Platzierung .)
Demnach würde ich ja nur folgende Telegramme auswerten müssen
$F – Heartbeat message
hierbei wird aer nur benötigt:
Time to go
Time of day
Flag status
$I – Init record.
Time of day
$G – Race information.
Position
Registration number
$H – Practice/qualifying information.
Position
Registration number
wobei die Registration Number= Startnummer zwar 8 Stellig übertragen wird, aber nur die beiden letzten Stellen angezeigt werden sollen
Die Verbindung besteht direkt zwischen PC und der Anzeige, es gibt keine weiteren Adressaten, somit kann ja per RS485 also ohne weiteres Übertragungs-Protokoll ja die Daten direkt gesendet werden.
Sehe ich das richtig, dass ich die Übertragungsgeschwindigkeit dabei fest definieren muss ? Wenn ja wie kann ich das machen ?
Ich hatte mir das so grundsätzlich so gedacht:
ich wollte dieses über einen Interrupt machen, wenn also ein Telegramm kommt, soll eine If-Schleife angestoßen werden, die aussortiert, was es für eines ist und was damit gemacht werden soll.
Ich habe aber leider keine Idee, wie ich die Telegramme auswerten kann, da diese ja auch noch unterschiedliche längen haben.
Sie haben zwar einen Trenner und ein Zeichen um zwischen Integer und Text zu unterscheiden, aber wie kann ich das auswerten.
Hat dazu einer eine Idee.
Eines noch kurz zu mir, ich habe leider wenig Erfahrung bei der Bascom Programmierung und bin deshalb wahrscheinlich auf viel Hilfe von Euch angewiesen, wofür ich mich schon jetzt bedanken möchte.
Gruß Martin
Nachtrag , hatte ich noch vergesse
Ich hatte gedacht dass ich eine Atmega 8 oder 16 verwende.
Die 10 2 Stelligen Anzeigen werden jeweils über einen Output port seriell in eine Schieberegister ausgegeben
Die Uhrzeit und Rennzeit wolle ich ebenfalls über eine Output Port in ein Schieberegister bringen
Die Flaggenzuständen sollen jeweils über einen Output Port mit einer Treiberstufe dahinter die entsprechenden Lampen steuern.
ich habe ein für mich sehr ehrgeiziges Projekt vor.
Es geht darum ich möchte eine Anzeige Bauen, die mir für ein Fahrerfeld von 10 Fahrzeugen anzeigt, welche Startnummer auf Platz 1 ist, welche auf Platz 2 ist usw. Einige werden so etwas von den amerikanischen Rennen her kennen.
Die Daten werden von einer Software generiert und per RS485 im RMonitor Timing Protocol (http://www.imsatiming.com/software/Protocols/AMB%20RMonitor%20Timing%20Protocol.pdf) gesendet.
Es werden aber nicht alle Funktionen benötigt, die, das Protokoll hergibt.
Angezeigt werden soll:
Uhrzeit
Restliche Rennzeit
Flaggenstatus ( grün, gelb, rot, finish)
Die Startnummer der Fahrer auf den Plätzen 1-10 ( die Platzierung ist unveränderlich auf der Tafel, es ändert sich nur die Startnummer zu der Platzierung .)
Demnach würde ich ja nur folgende Telegramme auswerten müssen
$F – Heartbeat message
hierbei wird aer nur benötigt:
Time to go
Time of day
Flag status
$I – Init record.
Time of day
$G – Race information.
Position
Registration number
$H – Practice/qualifying information.
Position
Registration number
wobei die Registration Number= Startnummer zwar 8 Stellig übertragen wird, aber nur die beiden letzten Stellen angezeigt werden sollen
Die Verbindung besteht direkt zwischen PC und der Anzeige, es gibt keine weiteren Adressaten, somit kann ja per RS485 also ohne weiteres Übertragungs-Protokoll ja die Daten direkt gesendet werden.
Sehe ich das richtig, dass ich die Übertragungsgeschwindigkeit dabei fest definieren muss ? Wenn ja wie kann ich das machen ?
Ich hatte mir das so grundsätzlich so gedacht:
ich wollte dieses über einen Interrupt machen, wenn also ein Telegramm kommt, soll eine If-Schleife angestoßen werden, die aussortiert, was es für eines ist und was damit gemacht werden soll.
Ich habe aber leider keine Idee, wie ich die Telegramme auswerten kann, da diese ja auch noch unterschiedliche längen haben.
Sie haben zwar einen Trenner und ein Zeichen um zwischen Integer und Text zu unterscheiden, aber wie kann ich das auswerten.
Hat dazu einer eine Idee.
Eines noch kurz zu mir, ich habe leider wenig Erfahrung bei der Bascom Programmierung und bin deshalb wahrscheinlich auf viel Hilfe von Euch angewiesen, wofür ich mich schon jetzt bedanken möchte.
Gruß Martin
Nachtrag , hatte ich noch vergesse
Ich hatte gedacht dass ich eine Atmega 8 oder 16 verwende.
Die 10 2 Stelligen Anzeigen werden jeweils über einen Output port seriell in eine Schieberegister ausgegeben
Die Uhrzeit und Rennzeit wolle ich ebenfalls über eine Output Port in ein Schieberegister bringen
Die Flaggenzuständen sollen jeweils über einen Output Port mit einer Treiberstufe dahinter die entsprechenden Lampen steuern.