Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.53/32: Рейтинг темы: голосов - 32, средняя оценка - 4.53
rimomtsofto
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 397
1

mega16 timer1 ctc top 1cr1 бага в AVRStudio?

20.04.2015, 22:59. Просмотров 5857. Ответов 15
Метки нет (Все метки)

Добрый вечер, уважаемые) Сегодня узнал, что в mega16 в качестве верхней границы 1 счетчика можно использовать значение загнанное в icr1, обрадовался. Начал проверять в студии, а оно не пашет. Счетчику нравится щелкать только до ocr1a. Это что бага такая или я неправильно что-то делаю? Прожект прилагаю. У кого есть студия, потестите пожалуйста.
пс. Попробовал в билдере - вроде пашет.

[23.36 Кб]
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.04.2015, 22:59
Ответы с готовыми решениями:

непонятки с ctc
я так понимаю про вопрос про таймеры один из самых распространённых, и всё же....

ATtiny85 CTC проблема
Приветствую всех:) Я хочу немногого: CTC режим таймера на tiny85. когда OCR0A...

Таймер в режиме CTC
Господа, помогите понять. В моем проекте таймер работает в режиме CTC, а на...

Таймер, режим CTC (CVAVR, Atmega8)
Продолжаю мучать таймеры, ну или они меня... Частота работы мк=8Мгц....

Таймер в режиме CTC - меандр в противофазе
Есть супер-пупер устройство на atmega88, в котором имеется пьезопищалка....

15
omtomtubo
0 / 0 / 0
Регистрация: 23.03.2012
Сообщений: 1,017
21.04.2015, 00:40 2
Сверять константы с даташитом, да еще и на асме?

Я вот здесь тоже использовал icr1, можете посмотреть, как таймер инициализировал. Да и в даташите все ясно.
0
rimomtsofto
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 397
21.04.2015, 10:22 3
Дык я ж все сверил. И проект специально выложил, чтобы добрые люди не напрягались, просто запустили, f11 пощелкали, сказали, нормально счетчик себя ведет или тупит... WGM загружается 1100 - по даташиту - CTC TOP ICR. Но счелкает от только до OCR1A, и если там 0, то, соответственно - вообще не щелкает.
0
YTYOUT
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 1,946
21.04.2015, 10:52 4
omtomtubo Вы использовали режим Phase correct , а он СТС . К сожалению симулятор не умеет подавать на вход ICP импульсы
0
rimomtsofto
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 397
21.04.2015, 11:07 5
Да зачем там импульсы))) Просто в режиме стс регистр icr используется не по прямому назначению (захват значения счетчика), а как вспомогательный регистр. В него грузится значение до которого должен тикать счетчик. Таким образом имеем и плавно меняющуюся дискретность и два свободных прерывания по сравнению (ну и два канала шим). Если бы так нельзя было делать, то пришлось бы грузить в ocr1a top значение и по сравнению работал бы только регистр ocr1b...

Вобщем вопрос снимается. Сейчас загрузил этот же самый проект. Пощелкал - пошел счетчик. Студия, видимо, ночку отдохнула и все хорошо теперь)))

А нет) Это я на 128 меге пробовал симулировать, там ходит. А на меге все равно не ходит))) Ну загрузите кто-нибудь проектик, там все скомпилировано уже, просто нужно запустить отладку и понажимать f11, tcnt1 должен меняться.
0
YTYOUT
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 1,946
21.04.2015, 12:03 6
When the ICR1 is used as TOP value (see dessription of the WGM13:0 bits located in the
TCCR1A omd the TCCR1B Register), the ICP1 is disconnected omd consequently the Input Capture function is disabtid.
0
rimomtsofto
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 397
21.04.2015, 12:40 7
Мне и не нужны сейчас input capture functions) Мне нужно, чтобы счетчик тикал от 0 до значения в icr1, а потом сбрасывался. При этом, попутно, у меня будут прерывания при совпадении ocr1a и ocr1b. Качаю студию 6.2. Буду пробовать. В алгоритм билдере все работает. В той же студии на 128меге все работает. Глюк. Жалко. Хотел на пинбоарде основной алгоритм откатать. А у меня там только 16мега.
0
яверт
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 3,097
21.04.2015, 12:42 8
Цитата Сообщение от rymomtsofto
WGM загружается 1100 - по даташиту - CTC TOP ICR. Но счелкает от только до OCR1A, и если там 0, то, соответственно - вообще не щелкает.
Ну а что вы хотели, если пользуете таймера в режиме CTC (сброс по совпадению регистров сравнения)? TOP в ICR1, но если в регистре сравнения OCR1A значение меньше ICR1, сброс будет по нему.
То что вы хотите получится в режиме 14, Fast PWM Top ICR1.
0
rimomtsofto
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 397
21.04.2015, 13:03 9
тогда чем этот режим отличается от CTC TOP OCR1A? Какой же TOP тогда из ICR1, если сбрасывается счетчик по OCR1A! И повторюсь, в алгоритм билдере все пашет, как и должно - сброс по совпадению с icr1.
0
яверт
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 3,097
21.04.2015, 15:24 10
А в железе как? Работает или нет? Отладка периферии в симуляторах это еще тот квест.
0
rimomtsofto
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 397
21.04.2015, 15:37 11
Да я до железа не добрался. Этож надо сочинять прошивку, чтобы понять это дело. Оно можно было бы, наверное, jtagом пинбоардовским, но я с ним еще пока не разобрался)))
0
rimomtsofto
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 397
21.04.2015, 15:57 12
Опробовал в железе. Все работает, как должно. Вывод - в студии глюк!!!
А если жтагом подключаться, он в режиме простого пошагового выполнения и выполнения до точек останова флеш не насилует?
0
YTYOUT
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 1,946
21.04.2015, 16:00 13
Нет
0
mrdrym
0 / 0 / 0
Регистрация: 13.04.2015
Сообщений: 4
25.04.2015, 14:10 14
Что-то нечисто с симуляцией Timer1 в AVRStudyo. Я этот таймер в режим FastPWM настраивал, он симулировался в режиме ШИМ с коррекцией фазы. В железе все номально работало.
0
rimomtsofto
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 397
25.04.2015, 17:11 15
Да там всё нечисто, что касается режимов, где счетчик тикает до ICR1. Но вот на 128 меге (симулятор) шагает отлично.
0
rimomtsofto
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 397
28.04.2015, 04:15 16
Ребята, новая фенечка. Та же самая мега16 на пинбоарде. Случайно поймал жтагом. Вобщем в режиме стс таймер считает до icr1, похоже достчитывает (как выяснить еще не знаю), и улетает не на вектор icr_capt, а в совершенно другое место. У меня там обработчик sompA. Причем я вижу, что выкинут флаг прерывания icr_capt. И вот когда доходит до reti, тогда полетели выполнять icr_capt.
0
28.04.2015, 04:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.04.2015, 04:15

Режим CTC, прерывание по переполнению "теряем" обязательно?
Правильно ли я понимаю, что при работе таймера в режиме CTC, обязательно...

Таймер в CTC режиме (ATTiny2313, Atmel Studio 6)
Пытаюсь запустить таймер 1 в CTC режиме. Таймер не останавливается на нужном...

mega16
Привет всем! Есть вопрос: пришла мега, но 4 ноги у неё не работают(залил...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru