TobiasBlome
19.02.2008, 20:52
Hallo,
ich möchte eine Variable (Integer) mit einem µC senden und mit einem anderen empfangen und wieder in eine Variable (Integer) schreiben:
Der Empänger macht mir etwas probleme:
Das was der Empänger empfängt, sendet er an den PC zum testen weiter. Wenn also zB. 12345 ankommen müsste bekomme ich auf dem PC alles untereinander geschrieben:
1
2
3
4
5
Könnte es daran liegen, dass jedes Zeichen für sich empfangen wird?
Gibt es eine andere Möglichkeit? - oder kann man bis zum CR (Carriage Return) alles in eine Integer Variable schreiben?
Tobias
'Konfiguration µC:
$regfile = "m8def.dat" 'AT-Mega8
$crystal = 3686400 'Quarz: 3.6864 MHz
$baud = 9600
Dim A As Integer
Dim I As Integer
Config Pind.0 = Input
Config Pind.3 = Output
Print "ok"
Do
If Usr.rxc = 1 Then 'Wenn Zeichen ankommt
I = Udr 'UART auslesen
Print Chr(i)
'A = Chr(i) 'WIE MUSS DAS RICHTIG HEISSEN?
'Print A
End If
Und noch der sender (nur Print Variable über Timer)
'Variable "A" wird zum testen hochgezählt und über die serielle Schittstelle gesendet
'Funktion getestet ok
'-------------------------------------------------------------------------------
'Konfiguration µC:
$regfile = "ATtiny2313.dat" 'ATtiny2313-Deklaration
$crystal = 18432000 '18,432MHz
$baud = 9600
'-------------------------------------------------------------------------------
'16Bit Timer:
Config Timer1 = Timer , Prescale = 1024
On Timer1 Timer_irq
Const Timervorgabe = 47535 'also 1 mal pro Sekunde!!!
Enable Timer1
Enable Interrupts
'-------------------------------------------------------------------------------
'Ein- Ausgänge:
Config Pinb.0 = Output
Config Pind.6 = Output
Led Alias Portd.6
Led2 Alias Portb.0
'-------------------------------------------------------------------------------
'Variablen
Dim Led_z As Byte
Dim A As Integer
'-------------------------------------------------------------------------------
'Programm
A = 12345
Led = 0
Do
If A => 32767 Then
A = 12345
End If
Loop
'................................................. ..............................
Timer_irq:
Timer1 = Timervorgabe
Incr A
Print A
Toggle Led
Return
ich möchte eine Variable (Integer) mit einem µC senden und mit einem anderen empfangen und wieder in eine Variable (Integer) schreiben:
Der Empänger macht mir etwas probleme:
Das was der Empänger empfängt, sendet er an den PC zum testen weiter. Wenn also zB. 12345 ankommen müsste bekomme ich auf dem PC alles untereinander geschrieben:
1
2
3
4
5
Könnte es daran liegen, dass jedes Zeichen für sich empfangen wird?
Gibt es eine andere Möglichkeit? - oder kann man bis zum CR (Carriage Return) alles in eine Integer Variable schreiben?
Tobias
'Konfiguration µC:
$regfile = "m8def.dat" 'AT-Mega8
$crystal = 3686400 'Quarz: 3.6864 MHz
$baud = 9600
Dim A As Integer
Dim I As Integer
Config Pind.0 = Input
Config Pind.3 = Output
Print "ok"
Do
If Usr.rxc = 1 Then 'Wenn Zeichen ankommt
I = Udr 'UART auslesen
Print Chr(i)
'A = Chr(i) 'WIE MUSS DAS RICHTIG HEISSEN?
'Print A
End If
Und noch der sender (nur Print Variable über Timer)
'Variable "A" wird zum testen hochgezählt und über die serielle Schittstelle gesendet
'Funktion getestet ok
'-------------------------------------------------------------------------------
'Konfiguration µC:
$regfile = "ATtiny2313.dat" 'ATtiny2313-Deklaration
$crystal = 18432000 '18,432MHz
$baud = 9600
'-------------------------------------------------------------------------------
'16Bit Timer:
Config Timer1 = Timer , Prescale = 1024
On Timer1 Timer_irq
Const Timervorgabe = 47535 'also 1 mal pro Sekunde!!!
Enable Timer1
Enable Interrupts
'-------------------------------------------------------------------------------
'Ein- Ausgänge:
Config Pinb.0 = Output
Config Pind.6 = Output
Led Alias Portd.6
Led2 Alias Portb.0
'-------------------------------------------------------------------------------
'Variablen
Dim Led_z As Byte
Dim A As Integer
'-------------------------------------------------------------------------------
'Programm
A = 12345
Led = 0
Do
If A => 32767 Then
A = 12345
End If
Loop
'................................................. ..............................
Timer_irq:
Timer1 = Timervorgabe
Incr A
Print A
Toggle Led
Return