Hallo Zusammen,
so der Servo läuft jetzt, hier der Code.
Bestimmt nicht der stein der weisen, aber der Servo dreht damit,
für den Anfang geht´s aber. Die Baudrate sollte auch noch mit 57600
laufen.
Code:
$regfile = "m644pdef.dat" 'ATMEGA16
$crystal = 16000000 'Quarz: 16MHz
$baud = 57142
$baud1 = 9600
Dim S As Byte
Dim I As Long
Dim Zeichen_com1 As Byte
Dim Empf_com1 As Byte
Dim Empf_com2 As Byte
Dim Empf_string As String * 10
Dim Ausgabe_com1 As String * 10
Dim Ausgabe_com2 As String * 10
Dim Zeichen As Byte
Dim Durchlauf As Byte
Dim Status As Byte
Ddrd = &B11110000 'Pin PD7,6,5,4 als Ausgang konfigurieren
Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
Config Com2 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
Open "COM2:" For Binary As #1
Enable Interrupts 'Interrupts global
Enable Urxc
Enable Urxc1
On Urxc Empfangen_com1 ' isr rxd ( com0 )
On Urxc1 Empfangen_com2 ' isr rxd ( com1 )
Ausgabe_com1 = ""
Do
Incr I
If I = 250000 Then
Ucsr0a.txc0 = 1
Portd.7 = 1 ' 485 Modul auf schreiben setzen
Wait 2
If Durchlauf = 1 Then
S = &HFF
Print Chr(s);
S = &HFF
Print Chr(s);
S = &H01
Print Chr(s);
S = &H07
Print Chr(s);
S = &H03
Print Chr(s);
S = &H1E
Print Chr(s);
S = &H00
Print Chr(s);
S = &H02
Print Chr(s);
S = &H00
Print Chr(s);
S = &H01
Print Chr(s);
S = &HD3
Print Chr(s);
Durchlauf = 0
Else
S = &HFF
Print Chr(s);
S = &HFF
Print Chr(s);
S = &H01
Print Chr(s);
S = &H07
Print Chr(s);
S = &H03
Print Chr(s);
S = &H1E
Print Chr(s);
S = &H00
Print Chr(s);
S = &H00
Print Chr(s);
S = &H00
Print Chr(s);
S = &H01
Print Chr(s);
S = &HD5
Print Chr(s);
Durchlauf = 1
End If
Sendbuffer:
If Ucsr0a.txc0 = 0 Then Goto Sendbuffer ' warten bis Ausgabepuffer leer ist
Portd.7 = 0
Waitms 1
Empf_com1 = 1
I = 0
If Empf_com1 = 1 Then
Toggle Portd.5 'Kontroll LED
Print #1 , Ausgabe_com1;
Ausgabe_com1 = ""
Empf_com1 = 0
End If
If Empf_com2 = 1 Then
Print #1 , Ausgabe_com2;
Ausgabe_com2 = ""
Empf_com2 = 0
End If
End If
Loop
End
Close #1
Empfangen_com1:
Toggle Portd.4 ' Kontroll LED
Ausgabe_com1 = Ausgabe_com1 + Chr(udr)
Empf_com1 = 1
Return
Empfangen_com2:
Ausgabe_com2 = Ausgabe_com2 + Chr(udr1)
Empf_com2 = 1
Return
Gruß Frank
Lesezeichen