Hi inka,
Demo und HEX sind auf dem Weg zu dir!
Hi inka,
Demo und HEX sind auf dem Weg zu dir!
Gruß
Dirk
hi Dirk,
danke für die files, beide von dir kompilierten hex funktionieren bei mir...
das mit der anzeige der accuspannung habe ich auch geschafft...
meine kompilierung der 05_05 funktioniert nach wie vor nicht, absturz an der bekannten stelle - normalize im magnetometerabschnitt...
was hälst du denn davon? das passiert auch bei deiner, von dir kompilierten, 05_04, bei der 05_05 nicht...wenn ich den RP6 neu einschalte (nicht start mit dem startbutton, sondern S1) werden beim ersten druck des button 1 die gyrowerte 4stellig, also nicht normalisiert angezeigt. Beim zweiten druck auf button 1, kommen sie nur noch 2stellig. Womit wird das verursacht?
frage: lassen sich die funktionierenden werte (also ohne den magnetometer) nicht - wie bei der HDMM - auch in gradzahlen und heading umrechnen?
Geändert von inka (14.07.2013 um 16:32 Uhr)
gruß inka
Hi inka,
1.:
Die 05_04 ist nicht ok, weil multiio_init() [und orientation_init()] VOR dem Befehl I2CTWI_initMaster(100) stehen.
Das geht nicht, weil die init-Funktionen den I2C-Bus brauchen,- also muss der I2C-Bus VOR den inits gestartet werden.
Daher kannst du die 05_04 vergessen.
2.:
Dass du die 05_05 immer noch nicht selbst funktionsfähig kompilieren kannst (obwohl sie ja von mir kompiliert funktioniert!), verstehe ich weiterhin nicht. Was damit die Funktion normalizeLSM303DLHC_M() zu tun hat, weiß ich auch nicht.
Du könntest aber versuchen, es herauszufinden:
Im 1. Schritt kommentiere mal in der Funktion die Zeilen:
x_axism += OFFSET_X_M;
y_axism += OFFSET_Y_M;
z_axism += OFFSET_Z_M;
... aus.
Funktioniert die Demo bei dir neu kompiliert (und Hilfsdateien gelöscht!) damit?
Im 2. Schritt ersetz mal die Zeilen:
xm = (x_axism - MIN_X_M) / (MAX_X_M - MIN_X_M) * 2 - 1;
ym = (y_axism - MIN_Y_M) / (MAX_Y_M - MIN_Y_M) * 2 - 1;
zm = (z_axism - MIN_Z_M) / (MAX_Z_M - MIN_Z_M) * 2 - 1;
... durch:
xm = (double) x_axism;
ym = (double) y_axism;
zm = (double) z_axism;
Funktioniert die Demo bei dir neu kompiliert (und Hilfsdateien gelöscht!) damit?
Der HDMM01 ist ja auch ein Magnetometer!?? Für die Himmelsrichtung braucht man das ja auch,- bei der minIMU ist das dann der Magnetometer im LSM303DLHC. Man kommt also nicht ohne den aus, wenn man die Himmelsrichtung braucht. Oder was meinst du?frage: lassen sich die funktionierenden werte (also ohne den magnetometer) nicht - wie bei der HDMM - auch in gradzahlen und heading umrechnen?
Gruß
Dirk
nein, absturz in case3...
die im schritt 1 auskommentierten zeile blieben im schritt 2 auskommentiert, zusätzlich ersatz der anderen 3 zeilen, demo stürzt in case3 ab...Anschliessen habe ich die funktion in den originalzustand versetzt...
ich meine, wir versuchen hier den magnetometer zum laufen zu bekommen. Ich hatte früher ein wenig mit kreiseln zu tun. Mechanisch, mit ein paar spulen, schnell drehenden bürstenllosen motoren mit schwungmasse und etwas auswertungselektronik (transistoren!). Damals war noch kein rede von strap down, schon garnicht von elektronischen gyros auf 5mm² fläche...
Was ich nicht begreife ist, weiso ich einen magnetometer brauche, wenn ich einen gyro und beschlenigungsmesser habe? Aber die erklärung würde hier vermutlich zu weit führen. testen wir also weiter...
Ich kann verstehen, dass dir das langsam auf den keks geht, aber du bist etztendlich der einziger hier der mir da weiterhelfen kann...
gruß inka
Fragen:
Nur zur Sicherheit:absturz in case3...
1. Ist das genau die Art "Absturz", die auch vorher so schon passiert ist?
2. Woher weißt du, WO der Absturz erfolgt?
Immerhin wissen wir jetzt, dass es wohl nicht an der normalizeLSM303DLHC_M() Funktion liegt, weil der Inhalt nach der Änderung völlig "harmlos" ist.
Letztlich kommen wir so auch nicht weiter.
Ich müßte wohl Code:Blocks installieren und alles in deiner Entwicklungsumgebung nachvollziehen ... Uff ...
Wenn du Lust hast, schick mir doch den ganzen Kram einschließlich deiner Demos, Libs und Code:Blocks. Am besten auch eine kurze Hilfe, wie ich das alles installieren sollte (damit es genau so ist, wie bei dir...).
Natürlich kann man mit Gyro und Beschleunigungssensor in gewissen Grenzen eine Richtung halten, hat aber letztlich keine Hinweise darauf, welche (Himmels-) Richtung das ist.Was ich nicht begreife ist, weiso ich einen magnetometer brauche, wenn ich einen gyro und beschlenigungsmesser habe? Aber die erklärung würde hier vermutlich zu weit führen.
Gruß
Dirk
1- genauso wie vorher, programm wird beendet, nach dem zweiten druck auf den startbutton startet es neu
2. absturz erfolgt unmittelbar nach dem druck auf button 3 = case 3 in der 05_05...
seltsam, dass die auskommentierung der funktion den absturz verhindert...
können wir überhaupt sicher sagen, dass es an der software bzw. entwicklungsumgebung liegt? Schliesst Du hardwareproblem völlig aus?
nette idee, aber ich arbeite mit linux (ubuntu), weiss inzwischen welche verzeichnisse die daten und welche die konfiguration beinhalten - aber wie ist es bei Dir? Windows?
bedeutet ich hätte z.b. eine anzeige von 270° aber nicht die dazugehörige himmelsrichtung, also "W" (wenn so die zuordnung stimmt)?
gruß inka
Lesezeichen