Свежие обсуждения
Микроконтроллеры

помогите разобраться с attiny25

1 2

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 погонять?

 

К сожалению, ничего не подскажу Я обычно отлаживаюсь на живом девайсе.

 
1 2