strunz
10.09.2007, 08:44
Hallo Leute,
ich bin zZ an einem Projekt, bei dem ich Daten vom Rechner zum Controller schicken will.
Ich will jetzt zB die Zahl 2378 an den Controller senden, dieser soll die Zahl dann als 2,378 sek interpretieren.
Das senden und empfangen funktioniert soweit, aber der Controller "sieht" nur die "8" und speichert mir auch nur die acht in einer Variablen alles andere was davor kam überschreibt er einfach.
Wie kann ich die ganze Zahl abspeichern, bzw jede Zahl in einer extra Variablen (also 2in die Variable "a", 3 in "b", 7 in "c" und die 8 in "d").
Anbei mein jetziger Code:
$regfile = "m32def.dat"
$crystal = 4000000
$baud = 9600 ' use baud rate
$hwstack = 32 ' default use 32 for the hardware stack
$swstack = 10 ' default use 10 for the SW stack
$framesize = 40 ' default use 40 for the frame space
'####Initialisierung############################## ##############################
Config Lcdpin = Pin , Db4 = Porta.3 , Db5 = Porta.4 , Db6 = Porta.5 , Db7 = Porta.6 , E = Porta.2 , Rs = Porta.1
Config Lcd = 16 * 2
Initlcd 'LCD initialisieren
Cursor On Blink 'Cursor an blinkend
Dim I As Byte
Dim K As Byte
Config Servos = 1 , Servo1 = Portb.0 , Reload = 10 'Servo-Funktion von Bascom konfigurieren
On Urxc Onrxd 'Interrupt-Routine setzen
Cls
Locate 1 , 1
Lcd "Warte auf"
Locate 2 , 1
Lcd "LabView..."
'####StartHP####################
Startt:
Do
Enable Urxc 'Interrupt URXC einschalten
Enable Interrupts 'Interrupts global zulassen
Loop
'####Lesen Interrupt wurde ausgelöst####
Onrxd:
I = Udr 'Byte aus der UART lesen und in I ablegen
Enable Urxc
Enable Interrupts
'####Empfangenes Byte#####################
Cls
Locate 1 , 1
Lcd "Empfangen:"
Locate 2 , 1
Lcd I
Waitms 500
Gosub Startt
End
Achja, ich er speichert mir die Zahlen im ASCII Format (Also anstatt der "0" die "48")
ich bin zZ an einem Projekt, bei dem ich Daten vom Rechner zum Controller schicken will.
Ich will jetzt zB die Zahl 2378 an den Controller senden, dieser soll die Zahl dann als 2,378 sek interpretieren.
Das senden und empfangen funktioniert soweit, aber der Controller "sieht" nur die "8" und speichert mir auch nur die acht in einer Variablen alles andere was davor kam überschreibt er einfach.
Wie kann ich die ganze Zahl abspeichern, bzw jede Zahl in einer extra Variablen (also 2in die Variable "a", 3 in "b", 7 in "c" und die 8 in "d").
Anbei mein jetziger Code:
$regfile = "m32def.dat"
$crystal = 4000000
$baud = 9600 ' use baud rate
$hwstack = 32 ' default use 32 for the hardware stack
$swstack = 10 ' default use 10 for the SW stack
$framesize = 40 ' default use 40 for the frame space
'####Initialisierung############################## ##############################
Config Lcdpin = Pin , Db4 = Porta.3 , Db5 = Porta.4 , Db6 = Porta.5 , Db7 = Porta.6 , E = Porta.2 , Rs = Porta.1
Config Lcd = 16 * 2
Initlcd 'LCD initialisieren
Cursor On Blink 'Cursor an blinkend
Dim I As Byte
Dim K As Byte
Config Servos = 1 , Servo1 = Portb.0 , Reload = 10 'Servo-Funktion von Bascom konfigurieren
On Urxc Onrxd 'Interrupt-Routine setzen
Cls
Locate 1 , 1
Lcd "Warte auf"
Locate 2 , 1
Lcd "LabView..."
'####StartHP####################
Startt:
Do
Enable Urxc 'Interrupt URXC einschalten
Enable Interrupts 'Interrupts global zulassen
Loop
'####Lesen Interrupt wurde ausgelöst####
Onrxd:
I = Udr 'Byte aus der UART lesen und in I ablegen
Enable Urxc
Enable Interrupts
'####Empfangenes Byte#####################
Cls
Locate 1 , 1
Lcd "Empfangen:"
Locate 2 , 1
Lcd I
Waitms 500
Gosub Startt
End
Achja, ich er speichert mir die Zahlen im ASCII Format (Also anstatt der "0" die "48")