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

Таймер в CTC режиме (ATTiny2313, Atmel Studio 6)

02.11.2014, 16:43. Просмотров 4559. Ответов 11
Метки нет (Все метки)

Пытаюсь запустить таймер 1 в CTC режиме. Таймер не останавливается на нужном пороге.
Atmel Studio 6
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <avr/io.h>
#include <avr/interrupt.h>
 
 
 
int main(void)
{
    TCCR1A=0x00;
    TCCR1B=0x00010101; 
    OCR1A = 0xbb; 
 
    while(1)
    {
        asm("nop");
    }
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.11.2014, 16:43
Ответы с готовыми решениями:

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

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

Ошибки и предупреждения при компиляции проекта для Attiny2313 в Atmel Studio 7.0
Всем привет.И сразу к сути.У меня написана программа которая должна выводить текст на светодиодах....

Не работает таймер по совпадению (atmega8, atmel studio 6)
Почемуто не работает таймер в режиме по совпадению (делал по примеру, вроде все регистры выставил),...

Atmel Studio 6. Проблема запуска в режиме отладки
привет. я начинающий в программировании МК и у меня появилась такая проблема: в Atmel Studio 6...

11
Витальич
1274 / 1184 / 174
Регистрация: 02.12.2013
Сообщений: 4,886
02.11.2014, 17:15 2
C
1
2
3
4
5
6
TCCR1A=0x00; //настройка таймера
TCCR1B=0x05; //настройка таймера
TCNT1=0x00; //пусть тикает с нуля
OCR1A=0xbb; //записываем число в регистр сравнения
 
TIMSK=0x10; //запускаем таймер
Найдите отличия сами
1
Moonlight00
1 / 1 / 0
Регистрация: 25.02.2014
Сообщений: 13
02.11.2014, 17:36  [ТС] 3
Витальич, Таймер должен сбрасываться при совпадении с заданным числом.
Если я правильно понял, этот режим задается битами WGM в регистре TCCR1B.
0
Витальич
1274 / 1184 / 174
Регистрация: 02.12.2013
Сообщений: 4,886
02.11.2014, 17:45 4
Цитата Сообщение от Moonlight00 Посмотреть сообщение
режим задается битами WGM
Да.
Первая ошибка:
>>TCCR1B=0x00010101;
Вы имеете ввиду двоичную систему, а компилятору сказали что число в шестнадцатиричной, для двоичной надо писать - 0b00010101;
Вторая ошибка: у Вас нет команды на запуск таймера(6 строчка моего примера)
0
Moonlight00
1 / 1 / 0
Регистрация: 25.02.2014
Сообщений: 13
02.11.2014, 17:49  [ТС] 5
Витальич, Исправил. Таймер считает в обратную сторону до 0 и останавливается.
0
Витальич
1274 / 1184 / 174
Регистрация: 02.12.2013
Сообщений: 4,886
02.11.2014, 18:09 6
Где то нужно задать еще направление счета, на память не помню, в даташите посмотрите.
0
Moonlight00
1 / 1 / 0
Регистрация: 25.02.2014
Сообщений: 13
02.11.2014, 18:42  [ТС] 7
Витальич, Спасибо. Разобрался. Биты WGM есть еще и в регистре TCCR1A. Поэтому я выставлял не тот режим. Вот как то так получилось:
C
1
2
3
4
5
6
7
8
9
10
11
12
int main(void)
{
    TCCR1A=0x00;
    TCCR1B=0x0d;
    TCNT1=0x00;
    OCR1A=0xbb;
    TIMSK=0x10;
    while(1)
    {
        asm("nop");
    }
}
0
NoobsEnslaver
135 / 47 / 2
Регистрация: 31.07.2014
Сообщений: 232
04.11.2014, 10:27 8
Знаешь какую удобную штуку можешь сделать пока в настройках не уверен - скачай Algorithm Builder - это немного облегчённый ассемблер, но тебе от него нужны предустановки настроек - там есть модуль "настройка"->"Таймер 0" и там ясно, словами написано что ты настраиваешь, а сбоку появляется ассемблерный код, который при этом сгенерируется. Или из этой темы Шаблоны проектов на C++ для AVR [GCC, IAR] скачай шаблон проекта - там ой как подробно указано что и для чего настраивать, правда на Си. Вот ниже скрин шаблона приложу для таймера 0, правда это для ATmega16, но там и для тиньки есть.
Таймер в CTC режиме (ATTiny2313, Atmel Studio 6)
0
Витальич
1274 / 1184 / 174
Регистрация: 02.12.2013
Сообщений: 4,886
04.11.2014, 10:41 9
NoobsEnslaver, людей надо мануалы приучать читать, к тому же ТС один из немногих новичков который это делает, ИМХО конечно.
0
Alex201
0 / 0 / 0
Регистрация: 12.02.2014
Сообщений: 52
19.02.2015, 15:09 10
подскажите пожалуйста. В ATtiny2313a в настройках 16 битного таймера в регистре TCCR1A есть такие биты: COMnA1:0 , COMnB1:0, COMnC1:0. Из даташита вычитал, что при совпадении с регистром сравнения (в соответствии с записанными значениями в эти регистры) будут меняться уровень напряжения на противоположный, подтягиваться к+5 или 0. Но вот не могу понять, при активации данной функции можно ли менять значения этих ножек в программе?
0
Витальич
1274 / 1184 / 174
Регистрация: 02.12.2013
Сообщений: 4,886
19.02.2015, 15:29 11
Если хоть один из битов COM1(A /B)0 и COM1(A/B)1 установлен в 1, то вывод OC1(A/B) перестает функционировать как обычный вывод общего назначения и подключается к схеме сравнения таймера счетчика Т1
ТС, в следующий раз создавайте для своих вопросов отдельную тему.
0
Alex201
0 / 0 / 0
Регистрация: 12.02.2014
Сообщений: 52
19.02.2015, 16:57 12
ОЙ, точно)) Спасибо. только вот я понять не могу, если я настроил чтоб при совпадении с регистром сравнения, на выводе OC1A появлялся 0. при первом совпадении, если бала 1, то появится там 0. Я так понимаю что логический ноль там так и останется и нужно самому подтягивать к 1 или нет?
Порт сбросится/установится при обнулении TCNT1
0
19.02.2015, 16:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.02.2015, 16:57

ATtiny2313 - Atmel
Здравствуйте. Подскажите пожалуйста, можно ли как-нибудь проверять работу программы написанную на...

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

Таймер на attiny2313
Приветствую всех. Как на 2313 рассчитать значение для записи в эти регистры, если я хочу получить...


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

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

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