PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bei EncoderInit() leuchten die Backleds mit, Odometrie ...



sucuk67
17.02.2011, 10:50
Beim aufruf der Funtion Encoderinit() leuchten die Backleds mit die Odometrie-Sensoren fuktionieren nicht.

Hallo zusammen,

habe schon allerhand an meinem asuro rumgetestet, nun wollte ich um die Funktionen Go und Turn nutzen zu können, die Odemetrie-Sensorik mit "AsuroSensoren" (V200) von Sternthaler auslesen und kallibrieren.

Nun zu meinem Problem:

Während des Tests bleiben die Werte der Odometrie auf 120 (Wert für hell und Dunkel!!!) stehen. Dazu leuchten die Backleds, was mich doch wundert, da man in verschiedenen Beiträgen liest, daß sie bei der Nutzung der Odometrie nicht leuchten dürfen?! Wenn ich die Funktionen selbst ausprobiere, dreht sich Asuro eigentlich nur auf der stelle, das Abschirmen der Odometriesensoren hab ich auch schon versucht, bringt keine Verbesserung.

Kann es sein, daß irgendetwas mit den Ports des Microcontrollers durcheinander ist? Oder sind einfach die FotoLeds oder die Fototransistoren im Eimer? Bringt die Funktion EncoderInit() auch die Backleds zum leuchten?

Vielen Dank für eure Hilfe!
Grüße
Sucuk67

Valen
17.02.2011, 16:42
Die Backleds sollten nicht leuchten durch anruf von EncoderInit. Vielleicht hast du die BackLEDS im falsche richtung eingelötet. Die BackLEDs haben ein flache Seite die ubereinstimmen soll mit den Abbildung auf den Platine.

Kannst du auch mit ein handycamera sehen ob die OdometrieLEDS leuchten nach anruffen von EncoderInit?

sucuk67
24.02.2011, 19:05
Hallo,

habe die Leds überprüft (mit Digitalkammera), sie haben dabeiu nicht geleuchtet.
Habe sie ausgetauscht wieder überprüft, sie leuchten immer noch nicht.
Hab keine Ahnung was es sein könnte? [-(

radbruch
24.02.2011, 19:53
Hallo

Wenn du von Go und Turn schreibst gehe ich davon aus, dass du die aktuelle Lib verwendest. Da ich die nicht verwende, kann ich nicht sagen, wie und was die Funktion EncoderInit() alles macht. Erster Verdacht: Du hast Init() nicht aufgerufen und die Ports sind deshalb nicht richtig eingestellt.

Hintergrund: Die BackLeds und die OdoLeds teilen sich den gemeinsamen Pin PD7 des Mega8. PD7 auf low schaltet die BackLeds ein (zusammen mit einem High auf PC0/1), ein High an PD7 hingegen schaltet die OdoLeds an. Deshalb kann man BackLeds und Odometrie nur bedingt zusammen verwenden. Wenn PD7 ein Eingang ist, glimmen die BackLeds wie beim Selbsttest. Um die OdoLeds sicher einzuschalten könnte man folgenden Code verwenden:

DDRD |= 0b10000000; // PD7 ist Ausgang
PORTD |= 0b10000000; // und high
while(1); // und halten ;)

Dann sollten die OdoLeds mit der Digicam erkennbar sein.

Gruß

mic

sucuk67
25.02.2011, 14:02
Hallo Radbruch,

habs gerade mit deinem Code versucht, funktioniert leider auch nicht!
Bin nicht ganz sicher ob ich ´s richtig verstanden habe:

Deine Programmierung für die Ports muss ich im mein bestehendes Program einfügen?! Wenn ja, an welcher Stelle?

Vielen Dank für deine/eure Hilfe.

Grüße

radbruch
25.02.2011, 16:21
Hallo

Ein guter Platz wäre direkt nach Init(); oder gleich ein eigenes Testprogramm:

// OdoLeds einschalten

#include "asuro.h"

int main(void)
{
Init();

DDRD |= 0b10000000; // PD7 ist Ausgang
PORTD |= 0b10000000; // und high
while(1); // und halten ;)

// alles was jetzt noch kommt wird nicht ausgeführt
return 0;
}

Ich kann's eben leider grad nicht selbst testen, vielleicht könnte das mal jemand mit orginalem und funktionierendem asuro verifizieren.

Gruß

mic

sucuk67
02.03.2011, 18:50
Hallo Radbruch

Hab' s mit dem kleinen Testprogramm ausprobiert, aber auch dann leucht en die Odometrie-LEDs nicht.

Grüße