Обсуждаем контроллеры компании Atmel.
Ответить

Как вызвать прерывание TIMER1_COMPB_vect

Ср мар 31, 2021 15:40:56

Здравствуйте никак не получается написать код для вызова этого прерывания в режиме сброс по совпадение, его нет в этой таблицеИзображение микроконтроллер atmega328p, язык си, но если есть ассемблер то разберусь, работаю в атмел студио 7.даташит читал побывал режим стс но с прерывание timer1_compa_vect, а надо сделать с timer1_compb_vect.

Re: Как вызвать прерывание TIMER1_COMPB_vect

Ср мар 31, 2021 16:47:02

его нет в этой таблице

Позвони в Микрочип. Пусть сделают.
А вообще, таймеры в этих древних AVR полное УГ. Изучай другие, более совремнные, МК.

Добавлено after 7 minutes 26 seconds:
Я не понимаю - почему есть желание таймер сбрасывать именно по OCR1B? Тем более, это невозможно физически. Только по OCR1A или по ICR1.
Если уж так надо прерывание по OCR1B (но только прерывание, а не сброс), то в него необходимо занести значение (OCR1A - 1).

Re: Как вызвать прерывание TIMER1_COMPB_vect

Чт апр 01, 2021 07:06:27

Понял, но чтобы его вызвать какие биты WGM надо ставить? 12?или все по нулям как в режиме normal. Теперь нужно только прерывание(без сброса)

Re: Как вызвать прерывание TIMER1_COMPB_vect

Чт апр 01, 2021 09:17:36

OCR0B=-1
TIMSK0=OCIE0B
TIFR0 1<<OCF0B
SEI
Прерывание OC0B будет одновременно с переполнением

Re: Как вызвать прерывание TIMER1_COMPB_vect

Пт апр 02, 2021 06:57:48

сравнение без сброса по обоим каналам работает в режиме нормал с вызовом соответствующих прерываний.
но мне тоже не понятно, зачем понадобился сброс именно по каналу "В".

Re: Как вызвать прерывание TIMER1_COMPB_vect

Пт апр 02, 2021 10:05:12

Понял, но чтобы его вызвать какие биты WGM надо ставить? 12?или все по нулям как в режиме normal. Теперь нужно только прерывание(без сброса)

Вызвать ЧТО?
WGM биты - в таблице для кого написано?
Ответить