PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Daten vom Asuro über USB IR-Transceiver empfangen



godi22
26.07.2010, 15:55
Hallo!

Ich möchte Daten von meinem Asuro über den USB IR-Transceiver Adapter empfangen.

Dazu sende ich mit zb: SerWrite("Hallo!", 6) die Daten.
Mit dem Programm HTerm http://www.der-hammer.info/terminal/ versuche ich die Daten auszulesen.
Ich sehe zwar das Daten von meinem Asuro gesendet werden aber ich Empfange immer 0.

Hat jemand eine Idee warum das so ist?

godi

Ezalo
26.07.2010, 16:11
Wie? DU willst eine Antwort auf dein Hallo?

godi22
26.07.2010, 16:24
Wie? DU willst eine Antwort auf dein Hallo?

Nein.
Ich will einfach das der Asuro "Hallo" sendet und ich das am PC mit dem Programm HTerm (kann auch ein anderes sein...) empfangen kann.
Momentan empfängt aber HTerm nur 00 (Hex).
Aber es werden auf jeden Fall Daten vom Asuro gesendet weil wenn ich den Adapter weiter wegbewege dann werden weniger Daten empfangen bis zum vollkommenen Verbindungsabbruch.

Ezalo
26.07.2010, 16:36
Wie sieht denn der Komplette Code aus?

godi22
26.07.2010, 16:39
#include "asuro.h"

int main (void) {
while(1) {
SerWrite("Hallo!", 6);
}

}


Mehr habe ich nicht gemacht.
Sollte ja reichen oder?

Ezalo
26.07.2010, 16:44
Mach mal:


#include "asuro.h"

int main (void){
Init();
while(1){
SerWrite("Hallo!",6);
Msleep(500);
}
return(0);
}

Der Befehl "Init();" sollte immer mit vorkommen ;o)

godi22
26.07.2010, 17:31
Für was ist denn Init() genau?
Habe ich mich schon vorher mal gefragt.

Bei Msleep meldet der Compiler: undefined reference to 'Msleep'

Aber ich habe gerade ein ganz anderes Problem und zwar lässt sich der Asuro nicht mehr Flashen.
Asuro Flash (v1.53) meldet jedesmal bei connecting to asuro -> timeout

markusj
26.07.2010, 17:36
Msleep ist Teil der (hier) weiterentwickelten Asurolib, bezüglich Init() verweise ich dich auf Seite 66 des Asuro-Handbuchs.

mfG
Markus

Ezalo
26.07.2010, 17:40
Msleep liegt daran das du wohl keine neue lib hast ^^

Msleep(500) = 500ms warten.

Du hast also nur Sleep zur Verfügung und müsstest es dann wie folgt schreiben:


for (i = 0; i < 143; i++){
Sleep(255); //entspricht 3,5ms: 500ms/3,5ms ca. 143
}


Init(); <- Asuro wird initialisiert

Timeoutproblem: Entfernung zwischen Asuro und Transciver verändern.
Sonst weiß ich es leider nicht.

godi22
26.07.2010, 18:37
So mit viel herumprobieren habe ich jetzt meine Probleme gelöst :)
Danke an euch!

Damit ich den richtigen Text im HTerm empfangen kann muss ich die Baudrate auf 2400 einstellen.

Ja und das Flashen funktioniert auch wieder. Habe mir nocheinmal das Flashprogramm downgeloadet und nochmal versucht. Da hat er mir low Battery bei connect ausgegeben. -> neue Batterien in meinen Asuro und jetzt funktioniert wieder alles. :)

Ezalo
26.07.2010, 18:39
Schön das jetzt alles so geht wie es soll ^^