как правильно выключить таймер ( asm )
Добавлено: Сб дек 24, 2016 21:17:03
Всех приветствую
Всех с Наступающим
Задался вопросом:
А правильно ли я выключаю таймер ( в принципе, тут не только таймер, в обще переинициализация чего либо )
пример:
Завожу ШИМ на таймер_0
А затем приспичило мне отключить этот ШИИ
И делаю вот так
А правильно ли это?
В обще можно ли так "(0<<cs02)" делать?
Я к чему спрашиваю - Обычно делают так "(1<<cs02)", а в остальные биты компилятор сам вставляет нули....
Ну и естественно, если я делаю не правильно то покажите пожалуйста свои варианты. ( как вернуть регистр к значениям по умолчанию? )
Я вижу еще один вариант:
Всех с Наступающим
Задался вопросом:
А правильно ли я выключаю таймер ( в принципе, тут не только таймер, в обще переинициализация чего либо )
пример:
Завожу ШИМ на таймер_0
Код: Выделить всё
; Таймер_0 ( 8 бит )
ldi Temp, (1<<COM0A1)|(1<<WGM01)|(1<<WGM00)
out TCCR0A, Temp
ldi Temp, (1<<cs02)|(1<<cs00)
out TCCR0B, Temp
ldi Temp, 0x1E
out OCR0A, Temp
И делаю вот так
Код: Выделить всё
; глушим ШИМ вентилятора, что-бы мотор не "гудел"
ldi Temp, (0<<cs02)|(0<<cs01)|(0<<cs00)
out TCCR0B, Temp
В обще можно ли так "(0<<cs02)" делать?
Я к чему спрашиваю - Обычно делают так "(1<<cs02)", а в остальные биты компилятор сам вставляет нули....
Ну и естественно, если я делаю не правильно то покажите пожалуйста свои варианты. ( как вернуть регистр к значениям по умолчанию? )
Я вижу еще один вариант:
Код: Выделить всё
; глушим ШИМ вентилятора, что-бы мотор не "гудел"
ldi Temp, 0
out TCCR0B, Temp