$regfile = "m16def.dat" $crystal = 8000000 $baud = 9600 Print "Startup..." Ddra = &B11111111 Ddrb = &B11111111 Ddrc = &B11111111 Red01 Alias Porta.0 Red02 Alias Porta.1 Red03 Alias Porta.2 Red04 Alias Porta.3 Red05 Alias Porta.4 Red06 Alias Porta.5 Red07 Alias Porta.6 Red08 Alias Porta.7 Green01 Alias Portb.0 Green02 Alias Portb.1 Green03 Alias Portb.2 Green04 Alias Portb.3 Green05 Alias Portb.4 Green06 Alias Portb.5 Green07 Alias Portb.6 Green08 Alias Portb.7 Blue01 Alias Portc.0 Blue02 Alias Portc.1 Blue03 Alias Portc.2 Blue04 Alias Portc.3 Blue05 Alias Portc.4 Blue06 Alias Portc.5 Blue07 Alias Portc.6 Blue08 Alias Portc.7 Dim Inputstr As String * 4 Dim Key As Integer , Flag As Integer , Dim Zaehler As Byte , Pwm_red(8) As Byte , Pwm_green(8) As Byte , Pwm_blue(8) As Byte Const False = 0 Const True = 1 Config Timer0 = Timer , Prescale = 1 On Urxc Urxc_isr On Timer0 Timer0_isr Flag = False : Inputstr = "" 'Testvalues for PWM Pwm_red(01) = 10 pwm_red(02) = 20 pwm_red(03) = 40 pwm_red(04) = 80 pwm_red(05) = 100 pwm_red(06) = 150 pwm_red(07) = 200 pwm_red(08) = 255 Pwm_green(01) = 10 Pwm_green(02) = 20 Pwm_green(03) = 40 Pwm_green(04) = 80 Pwm_green(05) = 100 Pwm_green(06) = 150 Pwm_green(07) = 200 Pwm_green(08) = 255 Pwm_blue(01) = 10 Pwm_blue(02) = 20 Pwm_blue(03) = 40 Pwm_blue(04) = 80 Pwm_blue(05) = 100 Pwm_blue(06) = 150 Pwm_blue(07) = 200 Pwm_blue(08) = 255 Enable Urxc Enable Timer0 Enable Interrupts Main: Do If Flag = True Then Print Inputstr '... Inputstr = "" : Flag = False End If Loop End Urxc_isr: Key = Inkey() Print Chr(key) Inputstr = Inputstr + Chr(key) If Len(inputstr) = 4 Then Flag = True Return Timer0_isr: Zaehler = Zaehler + 1 If pwm_red(1) > Zaehler Then red01 = 1 Else red01 = 0 End If If pwm_red(2) > Zaehler Then red02 = 1 Else red02 = 0 End If If pwm_red(3) > Zaehler Then red03 = 1 Else red03 = 0 End If If pwm_red(4) > Zaehler Then red04 = 1 Else red04 = 0 End If If pwm_red(5) > Zaehler Then red05 = 1 Else red05 = 0 End If If pwm_red(6) > Zaehler Then red06 = 1 Else red06 = 0 End If If pwm_red(7) > Zaehler Then red07 = 1 Else red07 = 0 End If If pwm_red(8) > Zaehler Then red08 = 1 Else red08 = 0 End If If pwm_green(1) > Zaehler Then green01 = 1 Else green01 = 0 End If If pwm_green(2) > Zaehler Then green02 = 1 Else green02 = 0 End If If pwm_green(3) > Zaehler Then green03 = 1 Else green03 = 0 End If If pwm_green(4) > Zaehler Then green04 = 1 Else green04 = 0 End If If pwm_green(5) > Zaehler Then green05 = 1 Else green05 = 0 End If If pwm_green(6) > Zaehler Then green06 = 1 Else green06 = 0 End If If pwm_green(7) > Zaehler Then green07 = 1 Else green07 = 0 End If If pwm_green(8) > Zaehler Then green08 = 1 Else green08 = 0 End If If pwm_blue(1) > Zaehler Then blue01 = 1 Else blue01 = 0 End If If pwm_blue(2) > Zaehler Then blue02 = 1 Else blue02 = 0 End If If pwm_blue(3) > Zaehler Then blue03 = 1 Else blue03 = 0 End If If pwm_blue(4) > Zaehler Then blue04 = 1 Else blue04 = 0 End If If pwm_blue(5) > Zaehler Then blue05 = 1 Else blue05 = 0 End If If pwm_blue(6) > Zaehler Then blue06 = 1 Else blue06 = 0 End If If pwm_blue(7) > Zaehler Then blue07 = 1 Else blue07 = 0 End If If pwm_blue(8) > Zaehler Then blue08 = 1 Else blue08 = 0 End If Return