Oh mann - wie ich doch neben mir gestanden hab - man sollte doch nie in Eile was posten.
Danke für den Hinweis Kampi!
Hier wird der Code nachgereicht:
Code:
' #############################################################
' #### USB-IO-plus
' #### by Jonathan Lorenz $PROG &H00,&H00,&H00,&H00' generated. Take care that the chip supports all fuse bytes.$PROG &H00,&H00,&H00,&H00' generated. Take care that the chip supports all fuse bytes.$PROG &H00,&H00,&H00,&H00' generated. Take care that the chip supports all fuse bytes.$PROG &H00,&H00,&H00,&H00' generated. Take care that the chip supports all fuse bytes.
' #### USBtoUART -> AVR
' #### Interface: GPIO, ADC, PWM, I2C, etc. (->Datasheet AVR)
' #############################################################
' #### empfange Anweisungen vom PC über USBtoUART
' #### setzen oder lesen der Pins
' #### Steuerung der Schnittstellen
' #############################################################
' #### getting instructions from PC over USBtoUART
' #### writing or reading the pins
' #### driving the Interfaces
' #############################################################
' #### Bascom-AVR IDE [1.11.9.8]
' #############################################################
$regfile = "M8def.dat" '.dat-file ATmega8'
$crystal = 8000000 'Taktfrequenz 8MHz'
$hwstack = 350 'Größe Hardwarestack'
$swstack = 350 'Größe Softwarestack'
$framesize = 200 'Größe Frame'
$baud = 19200 'Baudrate UART
'Tccr1a = &B10100010 'initialisieren der PWM-Frequenz 30,52 Hz bei 9 Bit
'Tccr1b = &B10000010 'initialisieren der PWM-Frequenz 30,52 Hz bei 9 Bit
Declare Sub Empfang()
Declare Sub Verarbeitung()
Declare Sub Setzen()
'Config Adc = Single , Prescaler = Auto , Reference = Avcc
'Start Adc
Config Lcdpin = Pin , Db4 = Portb.1 , Db5 = Portb.2 , Db6 = Portd.5 , Db7 = Portb.7 , E = Portd.3 , Rs = Portd.2
Config Lcd = 16 * 2
Config Portd.6 = Output
Config Portd.7 = Output
Config Portb.0 = Output
Dim I as Byte ' Splitting der Hauptschleife
Dim Empfang_string As String * 10
Dim Port As String * 10
Dim Wert As String * 10
Dim B_port As Byte
Dim B_wert As Byte
Dim Zaehler As Byte
Portd.6 = 0
Portd.7 = 0
Portb.0 = 0
Zaehler = 0
'On Urxc Onrxd 'Interrupt-Routine setzen
'Enable Urxc 'Interrupt URXC einschalten
'Enable Interrupts 'Interrupts global zulassen
Cls
Cursor On Blink
Lcd "USB-IO_plus"
Waitms 150
Locate 2 , 1
Lcd "."
Waitms 150
Locate 2 , 2
Lcd "."
Waitms 150
Locate 2 , 3
Lcd "."
Waitms 150
Locate 2 , 4
Lcd "initialisiert"
' #############################################################
' #### Hauptprogramm
' #############################################################
Do
Toggle Portb.0 'Blinkende LED zur Kontrolle des Programmdurchlaufes
For I = 0 To 200
Waitms 1
Next I
Empfang
Verarbeitung
Setzen
Loop
End 'end program
' #############################################################
' #### UART Empfang
' #############################################################
Sub Empfang()
If Ischarwaiting() = 1 Then
Input Empfang_string
If Zaehler < 3 Then
Incr Zaehler
Else
Zaehler = 0
End If
Else
!nop
End If
End Sub
' #############################################################
' #### Datenverarbeitung
' #############################################################
Sub Verarbeitung()
Port = Left(empfang_string , 2) 'Byte 1 und 2 extrahieren
Wert = Mid(empfang_string , 3 , 2) 'Byte 3 und 4 extrahieren
B_port = Val(port) 'String zu Wert konvertieren
B_wert = Val(wert) 'String zu Wert konvertieren
End Sub
' #############################################################
' #### Ausgänge setzen
' #############################################################
Sub Setzen()
Select Case B_port 'zu setzenden Pin auswählen
Case 50 : If B_wert = 49 Then '50=2 | 49=1
Portd.6 = 1
Elseif B_wert = 50 Then ' | 50=2
Portd.6 = 0
End If
Case 51 : If B_wert = 49 Then '51=3 | 49=1
Portd.7 = 1
Elseif B_wert = 50 Then ' | 50=2
Portd.7 = 0
End If
Case Else : !nop
End Select
End Sub
' #############################################################
' #### UART Interrupt
' #############################################################
'Onrxd:
' I = Udr 'Byte aus der UART auslesen
'Return
' #############################################################
' #### Stand 16|12|2011
' #############################################################
Lesezeichen