Heyho,
ich wollte den Thread mal ein wenig Updaten.....die letzten freien Tage habe ich mal wieder dazu genutzt um an dem Bus weiter zu arbeiten (wird auch demnächst auf meiner Homepage aktualisiert usw.).
Herausgekommen ist, dass ich das Programm etwas umdesignt habe. Außerdem habe ich noch ein kleines Userinterface für eine einfache Konsole entwickelt (der UART soll später über Interrupts arbeiten.....nicht wie in der aktuellen Version über "Input". Damit wird das ganze Programm Interruptgesteuert und ich habe die Mainloop frei):
Bild hier
Die Befehle die das Interface verwendet, wollte ich dann (irgendwann) auch für eine PC-Software verwenden.
Im Gegensatz zu meinem ersten Programmentwurf ist dieses Programm etwas variabler, sprich durch den Aufruf der "Data" Funktion werden nicht wie beim ersten Entwurf permanent 8 Byte gesendet sondern dies ist unterschiedlich (je nachdem wie viel gesendet werden soll).
Ein Wechsel des Controllers in den "Loopback" Modus + Senden und Empfangen von Daten sieht dann z.B. so aus:
Bild hier
Der Befehl "Data,7,8,15,7,12,78,16,1,144,179" ist dabei wie folgt aufgebaut:
1. Data -> Wählt die Funktion zum Senden von Daten aus
2. 7 -> der Identifier (0-2047)
3. 8 -> Anzahl der zu übertragenden Bytes
4. Die 8 Werte die übertragen werden soll.
Eine ähnliche Funktion gibt es für den Remoteframe. Hier jetzt im Nomalmode und als Antwort kommen 8 Bytes von einem zweiten Knoten zurück wo ein LM75 angeschlossen ist, der die Temperatur meines Wohnzimmers ausgibt (der Knoten hat noch die aller erste Softwareversion drauf, deswegen 8 Bytes die gesendet werden obwohl er nur ein Wert ermittelt):
Bild hier
An der Funktion zum einstellen der Filter arbeite ich noch....irgendwie verwirft der Controller die Einstellungen beim verlassen des Unterprogramms.....
Ebenso Suche ich noch einen Weg einen Mega32 als I²C Slave zu betreiben.....ich habe gesehen, dass es da sogar eine Bascomfunktion für gibt aber die ist bei mir wohl irgendwie nicht drin, sprich ich muss es händisch machen.
Im Anhang ist mal der (aktuelle) Quellcode. Falls irgendjemand was dazu sagen möchte....nur zu
Posten tue ich den mal nicht, weil das über 1000 Zeilen sind und das ist glaube ich zuviel für einen Beitrag.
Lesezeichen