Tech_stevens
23.06.2009, 20:51
Hallo zusammen,
ich bin hier im Forum so neu wie in der Programmierung mit C :-) und habe auch gleich ein großes Problem!
Ich bekomme keine saubere Kommunikation zwischen zwei Atmegas hin.
Die Aufgabe ist eigentlich einfach.
Ein Controller misst Abstände über drei Ultraschallsensoren (SRF04) und sendet die Messergebnisse (Differenz aus Timer-Startwert und Timerzählstand bei Interrupt) an den Slave-Controller, der ein Fahrwerk steuert. Ist der gemessene Abstand kleiner 6cm, sollen die Maschinen stoppen, ansonsten starten.
Kurz zur Konfiguration:
Mastercontroller (Steuerung.c)
================
PA0 bis PA2 --> Triggerausgänge Ultraschallsensoren
PC5 bis PC7 --> Echoeingänge Ultraschallsensoren
Slavecontroller (Fahrwerk.c)
===============
PB3 --> PWM-Ausgang Maschine 1
PD7 --> PWM-Ausgang Maschine 2
Beide Controller sind über SPI miteinander verbunden.
Das Problem:
Aus einem mir nicht verständlichen Grund kommen die gesendeten Bytes auf
dem Slavecontroller teilweise in einer anderen Reihenfolge an. Ich
vermute, dass Bytes "verschluckt" werden, also verloren gehen.
Den Grund dafür habe ich nicht gefunden. Und weiter weiss ich leider
auch nicht mehr.
Mache ich da offensichtlich was verkehrt, oder steckt der Teufel im Detail?
Ich hoffe, mir kann jemand helfen!
Danke für jeden Hinweis!!!!
Dennis
ich bin hier im Forum so neu wie in der Programmierung mit C :-) und habe auch gleich ein großes Problem!
Ich bekomme keine saubere Kommunikation zwischen zwei Atmegas hin.
Die Aufgabe ist eigentlich einfach.
Ein Controller misst Abstände über drei Ultraschallsensoren (SRF04) und sendet die Messergebnisse (Differenz aus Timer-Startwert und Timerzählstand bei Interrupt) an den Slave-Controller, der ein Fahrwerk steuert. Ist der gemessene Abstand kleiner 6cm, sollen die Maschinen stoppen, ansonsten starten.
Kurz zur Konfiguration:
Mastercontroller (Steuerung.c)
================
PA0 bis PA2 --> Triggerausgänge Ultraschallsensoren
PC5 bis PC7 --> Echoeingänge Ultraschallsensoren
Slavecontroller (Fahrwerk.c)
===============
PB3 --> PWM-Ausgang Maschine 1
PD7 --> PWM-Ausgang Maschine 2
Beide Controller sind über SPI miteinander verbunden.
Das Problem:
Aus einem mir nicht verständlichen Grund kommen die gesendeten Bytes auf
dem Slavecontroller teilweise in einer anderen Reihenfolge an. Ich
vermute, dass Bytes "verschluckt" werden, also verloren gehen.
Den Grund dafür habe ich nicht gefunden. Und weiter weiss ich leider
auch nicht mehr.
Mache ich da offensichtlich was verkehrt, oder steckt der Teufel im Detail?
Ich hoffe, mir kann jemand helfen!
Danke für jeden Hinweis!!!!
Dennis