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.
Gruß FrankCode:$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







Zitieren

Lesezeichen