На OC3B сейчас приходит тактовый сигнал вызывающий прерывание от часов с частотой 1Гц, я так понял не с этим связано, весь таймер уже перечитал, некоторые вещи конечно мне не понятны, например таблица на странице 134 и как ее выставлять, регистров таких нет
во первых, если вы используете только выход OC3A от таймера, зачем вы включаете каналы B и C?
TCCR3A = 0b01010100;
Во вторых, какую таблицу на странице 134 вы имеете в виду? - таблицу 61? это таблица битов регистров TCCRnA и TCCRnB. Если вы не понимаете как их устанавливать - как же вы писали код выше?
я сейчас чистую программу создал там только это
Просто пытаюсь его запустить, по документации вроде все верно, вместо сравнения добавил в двоичном виде
Только так, в документации, переделал, но толку нет
TIMER0_COMP_vect
а не стартанул
ну теперь с выводом буду разбираться, этот таймер на прерывание, по времени, а первый на ножку OC1A,
вот так он должен работать 1 секунда, а на ослике 3,9 кГц меньше получить не удается
Вот так
19Гц, меньше не получить?
OCR0 = 7812; А ничего что OCR0 8 битный ??? 255 - максимум что можно туда записать !
С вашими познаниями лезть в прерывания и управление таймерами через регистры - РАНОВАТО !
Вот так вроде должны быть но там пусто
Да я уже понял что это предел, забыл что он 8 битный
Вот так вроде должны быть но там пусто
Надо ногу на ВЫВОД перенастроить !!!
7812 = 0x1E84
В регистр попадает 0x84, а можно 0xFF
Ну так по документации, должна менять состояние 1 же добавил на COM00
но тогда на светодиоде становится 3,9 кГц, а на этой лапке пусто
Ну так по документации, должна менять состояние 1 же добавил на COM00
Она меняет состояние - но нога по умолчанию ВХОД со всеми вытекающими...
Понял, сейчас попробую
8000000/(1024*256)~30 вызовов прерывания и 15 Гц на светодиоде
Да, заработала, спасибо
Вы даташит через строку читаете или через страницу ?
"note that the Data Direction Register (DDR) bit corresponding to OC0 pin must be set in order to enable the output driver"
Всем огромное спасибо за напутствие и за то что заставили доки читать, запустил 3 таймера
Извиняюсь, дальше разбираюсь с таймерами, решил все попробовать и опять не пойму почему не работает на лапку третий таймер
Все написал как в документации, обработчик прерывания поставил и светодиод мигает, но на лапу OC3A вывода нет, порт как выход я объявил.
CTC не включен !
WGM32 должен быть 1 => TCCR3B =0b000001011;
Все равно тишина
У вас ноги не той системы видимо !
pinMode(3,OUTPUT);
PE, // PE3 ** D3
Походу да, заработало, спасибо
но на лапу OC3A вывода нет, порт как выход я объявил.
и как вам после этого помогать?
У вас ноги не той системы видимо !
да у него никакой нет. В коде всего 4 пинМоде, ровно по числу пинов прерываний. То есть выход OC3A он даже не пытался обьявлять
еще я не понял почему при такой настройке у меня на выходе
18,5кГц, кварц на 8 мГц
У меня открыты несколько скетчей, перепутал, извиняюсь
На OC3B сейчас приходит тактовый сигнал вызывающий прерывание от часов с частотой 1Гц, я так понял не с этим связано, весь таймер уже перечитал, некоторые вещи конечно мне не понятны, например таблица на странице 134 и как ее выставлять, регистров таких нет
во первых, если вы используете только выход OC3A от таймера, зачем вы включаете каналы B и C?
Во вторых, какую таблицу на странице 134 вы имеете в виду? - таблицу 61? это таблица битов регистров TCCRnA и TCCRnB. Если вы не понимаете как их устанавливать - как же вы писали код выше?
по таблицам выше, это какая-то обобщенная для двух таймеров что ли
по таблицам выше, это какая-то обобщенная для двух таймеров что ли
не для двух таймеров, а для двух регистров TTCRnA TCCRnB
Вы подписи-то в таблице читайте, там же все написано
А от этого такая частота и осталась
А от этого такая частота и осталась
весь код выкладывайте. Только проследите, чтобы выложить именно то, что у вас дает эту частоту, а не из "соседнего окна".
Ну таких регистров в одном таймере нет
Timer/Counter1 Control Register A – TCCR1A Timer/Counter3 Control Register A – TCCR3A
это два же таймера
это весь
Ну таких регистров в одном таймере нет
каких? в таймере 1 - регистры TCCR1A TCCR1B, в таймере 3 - соответвенно TCCR3A TCCR3B
вы что там, курите?
и на каком пине у вас 18 КГц - на пине 3 или на пине 29?
Понял, они ниже, как-то хаотично, не курю
на пине 3 - 96Гц, на светодиоде 18,5кГц, странно
на пине 3 - 96Гц, на светодиоде 18,5кГц, странно
на светодиоде ничего странного, прерывание имеет заметную длительность и быстрее некоей частоты вызываться в принципе не может.
Выключите прерывание по OC3A, оставьте только вывод на пин. И скажите, какая частота на пине 3 после этого
отключил тактовый сигнал с часов, проверил осциллографом, ничего не изменилось, это не из-за них
отключил тактовый сигнал с часов, проверил осциллографом, ничего не изменилось, это не из-за них
ерундой не занимайтесь, сделайте то, что я сказал выше.
так и идет 96 Гц
И сигнал на ней немного корявый меандр с заскоком в минус, может в контроллере дело
а измеряете чем?
еще строчку 31 закомментите
HANTEK6022BE, на OC0 и OC1A такого не было
Так же, щас проц перепаяю у меня их много
Так же, щас проц перепаяю у меня их много
Так не бывает. чтобы один таймер работал, а другой нет. Ищите ошибку в коде
TCCR1A TCCR1B перед настройкой выствбьте в ноль
другой контроллер впаял новый, картина та же