out OCR1AL, temp
out OCR1AH, temp
1. Читаем правила обращения к 16 разрядным регистрам таймер-счетчиков.neoneon писал(а):Доброго времени сутокНебольшая загвоздка с таймером1 в меге8
Значит, установил режим СТС, разрешил прерывания таймера по совпадению с OCR1A, загрузил числа в OCR1A. По прерыванию инвертируем состояние портаB. В avrstudio4 работает нормально, в протеусе и железе - почему-то частота инвертирования порта не зависит от OCR1AH, т.е. все происходит только по младшему регистру.
![]()
...
Что-то может быть "не так", если, например, счетчик тактируется с большим делителем, а сразу после установки режима записать значение OCR1A?BOB51 писал(а):2. загрузка начального значения OCR1A должна производится ДО установки режима работы таймера
Код: Выделить всё
;таймер
ser temp ; устанавливаем числа, с которыми будет сравниваться таймер
out OCR1AH, temp
out OCR1AL, temp
; out OCR1AH, temp
clr temp
out TCCR1A, temp ; ОС1А отключен
ldi temp, (1<<OCIE1A)
out TIMSK, temp ; разрешаем прерывания по совпадению
out TIFR, temp ; Cброс флага OCF1A
ldi temp, 0b00001001
out TCCR1B, temp ; режим СТС :1
seiЯ к тому, что при больших делителях это некритично; таймер не успеет единичку отсчитать, а у нас уже записано верное значение OCR1A.BOB51 писал(а):Старт режима будет с предшествующим произвольным значением содержимого регистров.
Да, флаг не устанавливается, если нет предистории. Если она есть и связана с другими режимами работы Т1, сбрасывать обязательно. Например, генерация 1 секунды без сброса флага И генерация того же ,но со сбросом флагаStarichok51 писал(а):...флаг в TIFR не устанавливается, поэтому и сбрасывать его не надо.
простите не понял вопрос.trofim2 писал(а):А какая точность установки частоты 128 кГц?
...trofim2 писал(а):Изучай матчасть.