|
|
|
|
1. Логика, в принципе, правильная. 2. Экономичней, безусловно, когда микроконтроллер работает только по прерываниям, а все остальное время находится в останове.
|
|
|
все остальное время находится в останове Прошу обратить внимание. Т.е. МК необходимо перевести с Sleep-режим. Если этого не делать, то разницы в энергопотреблении не будет никакой. |
|
|
Подскажите пожалуйста, что я делаю не так? //настройка таймера1 LDI temp,(1<PWM1A)|(1CS10)|(1CS11)|(1CS12); Инициализация PWM OUTI TCCR1,temp LDI temp,50 OUTI OCR1A,temp LDI temp,100 OUTI OCR1C,temp // Timer(s)/Counter(s) Interrupt(s) initialization LDI temp,0x44 OUTI TIMSK,temp sei i: rjmp i ;____________ОБРАБОТЧИКИ ПРЕРЫВАНИЙ ________________ Timer1_compA: LDI temp,0b100 OUTI PORTB,temp reti Timer1_OVF: LDI temp,0b1 OUTI PORTB,temp reti Протеус на изменение OCR1A реагирует, а на OCR1C нет img src="/smile/sad.gif" width="15" height="15" alt="" /> |
|
|
А что хотели получить? Смотрел код, но, честно говоря, не понял ваших ожиданий  |
|
|
А.В., крутил барабан, но не дошёл ход  |
|
|
Извиняюсь    Хочется менять частоту  длительность импульса (OCR1A) меняется(руками, пока), а частота (OCR1С) нет  ну будет примерно так: //настройка таймера1 LDI temp,(1PWM1A)|(1CS10)|(1CS11)|(1CS12); Инициализация PWM OUT TCCR1,temp LDI temp,t1 OUT OCR1A,temp LDI temp,t2 OUT OCR1C,temp // Timer(s)/Counter(s) Interrupt(s) initialization LDI temp,0x44 OUT TIMSK,temp sei i: rjmp i ;____________ОБРАБОТЧИКИ ПРЕРЫВАНИЙ ________________ Timer1_compA: LDI temp,0b100 OUT PORTB,temp reti Timer1_OVF: rcall RAND // здесь генерится случ. число и изменяются t1, t2 LDI temp,t1 OUT OCR1A,temp LDI temp,t2 OUT OCR1C,temp LDI temp,0b1 OUT PORTB,temp reti |
|
|
Такое ощущение, что, кроме PWM1A, нужно взвести в TCCR1 еще и CTC1. Даташит как-то невнятно об этом говорит - типа, "понимай как знаешь". Попробуйте И еще последите, чтобы OCR1A всегда был меньше OCR1C. В вашем варианте такое вполне может произойти.
|
|
|
chav1961: Спасибо.
И еще последите, чтобы OCR1A всегда был меньше OCR1C. не произойдет, грубо говоря OCR1A 50+-10, а OCR1C 150+-20 |
|
|
блин, протеус симулировать перестал  В чем еще можно tiny25 погонять? |
|
|
К сожалению, ничего не подскажу Я обычно отлаживаюсь на живом девайсе. |
|
|
|
|