Hallo
Ich hätte durchaus Lust an dem Projekt teilzunehmen. Leider wird es mir nicht möglich sein so ein Team zu gründen, da ich kurz vor meiner Abschlussprüfung zu mittleren Reife stehe.
Aber ich hab schon mal angefangen
Also, das ist der Code von meinem Programm, dass die Controller-ID im HighSpeed-Modus ausliest. Da es aber jeder verstehen soll hab ich mal nur den Ablauf selbst zusammengeschrieben:
Das ganze ist so auch aus der DEBUG-Ausgabe zu entnehmen, aber ich bin der Meinung, dass es so viel übersichtlicher ist.Code:Reset, in dem man RTS für ca. 1-2ms setzt ComPort im ASCII-Modus öffnen (Low-Speed): - 38400 Baud - keine Parität - 8 Datenbits - 1 Stopbit - RTS so setzen, dass RP6 nicht resettet Warten, bis der RP6 ein "[RP6BOOT]" gesendet hat Die Erkennungs-ID auslesen: - Ein ASCII-Zeichen mit dem Wert 072 senden - Warten, bis der RP6 9 Zeichen gesendet hat - Base-Board: 082; 080; 054; 058; 001; 001; 004; 005; 000 - M32-Board: 082; 080; 054; 058; 002; 001; 004; 003: 000 Falls Base-Board angeschlossen: Akkuspannung auslesen: - Ein ASCII-Zeichen Wert 149 senden - Wartet bis RP6 2 Zeichen gesendet hat - Spannung = (ASCII-WERT1+256*ASCII-WERT2)/100 Highspeed setzen: - Ein ASCII-Zeichen Wert 53 senden - Warten, bis RP6 ein ASCII-Zeichen Wert 70 sendet - Comport im ASCII-Modus öffnen (High-Speed): - 500000 Baud - keine Parität - 8 Datenbits - 1 Stopbit - RTS so setzen, dass RP6 nicht resettet Prüfen, ob RP6 reagiert: - Zeichenfolge senden: 170; 170; 170; 170; 170; 153 - Warten, bis RP6 170 und 086 sendet Wieder die Erkennungs-ID auslesen: - Ein ASCII-Zeichen mit dem Wert 072 senden - Warten, bis der RP6 9 Zeichen gesendet hat - Base-Board: 082; 080; 054; 058; 001; 001; 004; 005; 000 - M32-Board: 082; 080; 054; 058; 002; 001; 004; 003: 000 [[ HIER SOLL DER UPLOAD ERFOLGEN ]] ComPort im ASCII-Modus öffnen (Low-Speed): - 38400 Baud - keine Parität - 8 Datenbits - 1 Stopbit - RTS so setzen, dass RP6 nicht resettet Warten, bis der RP6 ein "[READY]" sendet
Viel Spaß damit!
MfG
-schumi-
[EDIT] NACHTRAG!!
Mir ist auch noch was eingefallen was wir impletieren könnten. (Easy zu realieren und sehr praktisch):
Die *.Hex liegt ja normalerweise im selben ordner wie der Code als *.c
Man könnte ja jetzt den Code Zeile für Zeile einlesen und dann checken ob entweder ein
#include "RP6RobotBaseLib.h"
oder ein
#include "RP6ControlLib.h"
enthalten ist. Und da der RP6/M32 beim Verbinden auch seine ID preisgibt könnte man dann kontrollieren, ob der Code auch für dieses Board geschrieben ist. Das verhindert dann das Laden von Code in den falschen Controller, was beim starten des Programms zu beschädigungen führen könnte...





 
			
			


 
					
					
					
						 Zitieren
Zitieren

Lesezeichen