Ути блин, и чего ж там "вкусного" то?
А что, простейший код в 20 строчек уже и написать не можем, всё за аппаратной реализацией бежим? Может, еще и на С++ писать будем?
В 320-м дохренищи наворотов, но из всего этого ничегошеньки, акромя ADC, не требуется. Не поверишь, вот даже таймера то не нужно - счет в пользовательских регистрах идет.
Код:
|
Work:
movlw .8
movwf PRETIMER
decfsz PRETIMER
goto $-1
bsf ADCON0, GO
btfsc ADCON0, NOT_DONE
goto $-1
movf ADRES, W
movwf PWM_TIMER
btfsc STATUS, Z
sleep
bsf GPIO, 1
PWM:
clrwdt
decfsz PWM_TIMER
goto $+2
bcf GPIO, 1
decfsz COMMON_TIMER
goto $+3
bcf GPIO, 1
goto Work
goto PWM |
Это ВЕСЬ код ШИМа, управляемого напряжением со входа (без инициализации). Больше ничего не нужно.