Hier das Prog, ich bin allerdings sicher, dass das einfacher geht.
Code:
Const True = 1
Const False = 0
Dim Hi As Byte
Dim Lo As Byte
Dim A As Byte
Dim Phase As Bit
Dim Pattern As Byte ' Bit pattern for display
Pwm Alias Portb.0 ' Modulated Pin
Config Timer0 = Timer , Prescale = 64 ' Rate 244 Hz at 4 MHz Clock
On Timer0 Timer0_isr ' Jump to Timer1 ISR
Config Portb = Output
Enable Timer0 ' Enable the timer interrupt
Enable Interrupts ' Enable Global Interrupt
Lo = 128 ' Initial value for PWM
Phase = True
Do
A = Pind ' Ask for Key
Select Case A
Case &B11111110 : Lo = 0 ' Lo Time short, Hi Time long
Case &B11111101 : Lo = 32
Case &B11111011 : Lo = 64
Case &B11110111 : Lo = 96
Case &B11101111 : Lo = 128
Case &B11011111 : Lo = 160
Case &B10111111 : Lo = 192
Case &B01111111 : Lo = 255 ' Lo Time long. Hi Time short
End Select
Hi = 255 - Lo
Incr Pattern ' Change Bit Pattern
Waitms 100 ' Wait 100 ms
Loop
End
Timer0_isr:
If Phase = True Then
Portb = &HFF ' LED off
Timer0 = Lo ' Reload Timer0
Phase = False
Else
Portb = Not Pattern ' LED on
Timer0 = Hi ' Reload Timer0
Phase = True
End If
Return
Lesezeichen