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 ' #############################################################







Zitieren

Lesezeichen