PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit IR-Fernsteuerung



adrisch
17.03.2007, 13:35
HAllo, ich hab grad ein Problem.
Ich versuche gerade eine Fernsteuerung für meinen Asuro zu programmiieren. d.h. er soll vorwärts, rückwärts, links und rechts fahren können. das ganze soll über serread funktionieren. was ich hingekriegt habe sieht man ein stück weiter unten, aber funktionieren tuts nich.

#include "asuro.h"

int main(void)
{
Init();
char daten[1]; //Speicher bereitstellen
Init();

while(1){
SerRead(daten,1,0);
if (daten[0]='a'){
MotorSpeed(170,170);
}
else if(daten[0]='b'){
MotorSpeed(0,0);
}
else if(daten[0]='c'){
MotorSpeed(255,170);
}
else if(daten[0]='d'){
MotorSpeed(170,255);
}
}
while(1);
return 0;
}


empfangen tut der asuro sicher zeichen, denn er fährt los, wenn ich irgendeine taste drücke. auch bei b,c und d.
PS: Die fernsteurerung erfolgt dann über ein VB2005-Programm, das bei einem klick auf bestimmte tasten a,b,c oder d sendet. ich habs zur sicherheit auch schon mit dem hyperterminal audprobiert.
Falls ihr es mal mein Fernsteuerungsprogrogramm versuchen wollt, könnt ihr es hier (http://www.adrian-schneider.de/Asuro1.exe) downloaden.

radbruch
17.03.2007, 15:59
...
SerRead(daten,1,0);
SerWrite(daten[0],1);
if (daten[0]='a'){
...

Schon das versucht?

btw: ich würde NIEMALS eine .exe starten aus solch einer ungewissen quelle!

adrisch
17.03.2007, 16:18
Und was hätte das für einen Sinn?
Dann würde der Roboter mir halt den Buchstaben zurücksenden, aber was soll ich dann im hyperterminal damit anfangen?
Außerdem: Das Programm war nur zum ausprobieren für euch gedacht. falls du willst kann ich auch die VB-Projekt-Dateien zum download anbieten. die würden euch bloß warscheinlich nichts bringen, wenn ihr kein VB2005 habt.

radbruch
17.03.2007, 16:52
Entschuldige bitte, es hätte den Sinn zu prüfen, ob dein asuro auch das empfängt was du erwartest.

Vermutlich ist hier dein Problem versteckt:

if (daten[0]='a'){

sollte besser

if (daten[0]=='a'){

usw. heisen.

damaltor
17.03.2007, 18:55
MUSS sogar. ein einzelnes = ist eine zuweisung. daten[0] ist also nach der ersten "prüfung" immer ein "a", da es hier zugewiesen wird.