Вот пытаюсь настроить таймер0 на шим
Config Timer0 = Pwm , Pwm = On , Compare Pwm = Clear Up , Prescale = 1
Не работает. Не в железе, не в симуляции в протеусе.
Код: Выделить всё
$regfile = "attiny85.dat"
$crystal = 8000000
Config Timer0 = Pwm , Compare A Pwm = Clear Down , Prescale = 1
Do
Ocr0a = 127
Loop
Код: Выделить всё
Config Timer0 = Pwm , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 1
Config Timer1 = Pwm , Compare A Pwm = Disconnect , Compare B Pwm = Clear Down
Tccr1.cs10 = 0
Tccr1.cs11 = 1
Tccr1.cs12 = 0
Tccr1.cs13 = 0
Gtccr.pwm1b = 1
Do
Ocr0a = 127
Ocr0b = 127
Ocr1b = 127
Ocr1c = 255
Loop
Не-не, 8 мегу только для RGB совсем как-то не фонтан. Да и разобраться в любом случае интересно.TRIOD писал(а):Мне просто нужно три канала ШИМ для управления RGB диодом. Есть вариант использовать 8мегу, но както её жалко на это переводить.
А чтото предётся отключать. Фактически не четыре канала, а три.edm2007 писал(а):Ага. Интересно. Я вот тоже пока завести не могу таймер первый. Считаем до OCR1C, это понятно, но что-то я вот заблудился в прямых-инверсных выходах.... Там же при совпадении со счетным регистром изменяются состояния на ногах. А как же тогда с OC0A, например? На ней же и OC1A инверсный...
Ну это разумеется.TRIOD писал(а):А чтото предётся отключать. Фактически не четыре канала, а три.
Код: Выделить всё
'------------------------------------------------------------------------------
Config Portb.0 = Output ' OC0A
Config Portb.1 = Output ' OC0B
Config Portb.4 = Output ' OC1B
'------------------------------------------------------------------------------
Tccr0a = &B10100011 ' Т0 - Fast PWM, управление выводами OC0A/OC0B
Tccr0b = &B00000001 ' T0 - прескалер = 1
Tccr1 = &B00000001 ' T1 - прескалер = 1
Gtccr = &B01100000 ' T1 - Разрешаем PWM1B,отключаем инверсные выходы
'------------------------------------------------------------------------------
Do
Ocr0a = 50
Ocr0b = 200
Ocr1b = 127
Loop
'-----------------------------------------------------------------------------Код: Выделить всё
$regfile = "attiny85.dat "
$crystal = 8000000
Config Portb.0 = Output
Config Portb.1 = Output
Config Portb.4 = Output
'-------------------------------------
Tccr0a = &HA3
Tccr0b = &H01
Tcnt0 = &H00
'-------------------------------------
Pllcsr = &H00
Tccr1 = &H41
Gtccr = &H50
Tcnt1 = &H00
Ocr1c = &HFF
'-----------------------------------
Do
Ocr0a = 127
Ocr0b = 127
Ocr1b = 127
Loop