Hallo Vitis,
anbei mein Code, der geht bis 255. Bei 256 ist Schluß !?
Code:
$regfile = "m8def.dat"
$crystal = 8000000
$baud = 250000
Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 2 , Databits = 8
On Timer2 Ontimer2
Tccr2 = &B00000010
Timsk.toie2 = 1
Config Portb.5 = Output
Config Portb.4 = Output
Portb.4 = 0
Kanal1 Alias Portb.4
Dim Tick As Byte
Dim Range As Byte
Range = 100
Dim X As Byte
Dim Buffer(514)as Byte
Dim Kanal As Word
Dim Adresse As Word
On Urxc Empfang
Enable Urxc
Enable Interrupts
Adresse = 255 '255 geht noch 256 nicht mehr!!!!!
Do
Loop
Empfang:
X = Udr 'das muss erst abgeholt werden, sonst geht nix 'Die Interruptroutine verheizt 10,875µs bei 16MHz der vorhandenen Framezeit von 44µs
If Ucsra.fe = 1 Then
Kanal = 0
Ucsra.fe = 0 'damit verbleiben 33,125µs für die Mainloop pro Frame
Else
Incr Kanal
Buffer(kanal) = X
End If
Return
Ontimer2:
Tick = Tick + 1
Timer2 = 50
If Tick >= Range Then Tick = 0
If Tick < Buffer(adresse) Then
Kanal1 = 1
Else
Kanal1 = 0
End If
Return
Günter
Lesezeichen