Hallo Leute,

habe heute zum ersten mal per RS232 mit dem Pc kommuniziert und ein 9stellen langer String übertragen.

per timer-einstellung sollte der string alle 200ms übertragen werden, aber nichts ist, ca 2 sek dauert es.

ist ein mega8 mit 4mhz-quarz angeschlossen und ausser per print zu senden macht er nichts.

an den timer einstellungen kann es nicht liegen, bei anderen dingen funktioniert es tadellos.

gibt es etwas zu beachten, was das senden per RS232 angeht?
irgendwelche einstellungen?

erhöhe ich nämlich die zeit, also all 100ms senden, dann bleibt der chip stehen. erniedrige ich die zeit, also ca alle 400ms, dann dauert es 4 sekunden. irgendwo ist der wurm drin.

vielen dank

hier der code:


'd1
'd0
'234
'b5
$regfile = "M8def.dat"
$crystal = 4000000
$baud = 9600


$hwstack = 68
$swstack = 32
$framesize = 32

Const Ticks0 = 63
Config Debounce = 70

Config Timer0 = Timer , Prescale = 64 '
On Timer0 Timer0_isr

Enable Timer0
Enable Interrupts

Dim H As Integer
Dim H_flag As Bit
Dim S As String * 10

Config Portc.6 = Input
Portc.6 = 1

Config Portb.7 = Output 'LED
Portb.7 = 1
Config Portd.5 = Input 'F3
Portd.5 = 1
Config Portd.6 = Input 'F2
Portd.6 = 1
Config Portd.7 = Input 'F1
Portd.7 = 0
Config Portb.0 = Input 'F0
Portb.0 = 0


Config Portb.1 = Output
Portb.1 = 1
Config Portb.2 = Output
Portb.2 = 1
Config Portb.3 = Output
Portb.3 = 1
Config Portb.4 = Output
Portb.4 = 1
Config Portb.5 = Output
Portb.5 = 1


'Config Portc.5 = Output 'LED
'Portc.5 = 1
'Config Portc.4 = Input 'F3
'Portc.4 = 0
'Config Portc.3 = Input 'F2
'Portc.3 = 0
'Config Portc.2 = Input 'F1
'Portc.2 = 0


Sreg.7 = 1
H_flag = 0



Do
Cls

If H_flag = 1 Then
Incr H
H_flag = 0
End If


If H = 400 Then
S = "A1234B4321"

Print S
H = 0
End If 'h

Loop


Timer0_isr:
Load Timer0 , Ticks0
H_flag = 1 '0,01sek


Return