Jetzt ncohmal Kurz zu dem PWM. ICh hab hier ein Code gefunden, der mir sehr kompliziert wirkt. Ich würde einfach gerne einen Wert z.B. aus einer Variablen namens Wert an einem beliebigen Pin ausgeben. Was kann ich dann alles weglassen?

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
Allerdings verstehe ich das alles nciht so ganz.
Was gibt Prescale an?
Warum 244 Hz?
Warum gebe ich dann einen WErt von 0 bis 255 an?
Ich vermute, dass der Timer0 nach der gesetzten Zeit Timer0 = ... einen Interrupt auslöst und dann den Wert wechselt.

Richtig?/ Falsch?

MFg Moritz