реклама на сайте
подробности

 
 
> Расчет таймера
kich
сообщение May 25 2006, 09:24
Сообщение #1





Группа: Новичок
Сообщений: 10
Регистрация: 21-01-06
Пользователь №: 13 445



Народ подскажите как правильно расчитать таймер для Atmega.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
GDI
сообщение Feb 20 2007, 18:03
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



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


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
Artur Nikitin
сообщение Feb 21 2007, 09:58
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 30
Регистрация: 28-11-06
Из: Набережные Челны
Пользователь №: 22 856



Цитата(GDI @ Feb 20 2007, 18:03) *
чтобы получить быстрый меандр надо использовать выход OCP любого таймера и правильно настроить схему сравнения и режим таймера, тогда и никакие прерывания не потребуются, и контроллер не будет отвлекаться, все будет работать аппаратно.


Выводы уже заняты под порты общего назначения (плата уже разведена), приходится делать на прерывании. Хочу сделать на таймере1, настройки следующие:
TCCR1A= 0x00;
TCCR1B= 0x01;
OCR1AH= 0x00;
OCR1AL= 0x05;

TIMSK_OCIE1A = 1; //разрешение прерывания по совпадению А

#pragma vector = TIMER1_CAPT1_vect
__interrupt void TM1_CP1(void)
{
PORTD_PORTD7 = !PORTD_PORTD7;
TCNT1 = 0;
}

по переполнению работало, по совпадению что то не вижу частоты на ножке


--------------------
начинающий программист
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Feb 21 2007, 10:36
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Artur Nikitin @ Feb 21 2007, 08:58) *
по переполнению работало, по совпадению что то не вижу частоты на ножке
Вы не на то прерывание повисли. CAPTURE - это захват, копирование значения таймера в регистры OCR в момент прихода внешнего сигнала. Вам нужет вектор COMPARE. Это во-первых. Во-вторых используйте режим CTC или FAST PWM таймера - тогда он будет сбрасываться автоматически.
Код
TCCR1A = (0<<COM1A1)|(0<<COM1A0)|(0<<COM1B1)|(0<<COM1B0)|(0<<WGM11)|(0<<WGM10);
TCCR1B = (0<<ICNC1)|(0<<ICES1)|(0<<WGM13)|(1<<WGM12)|(0<<CS12)|(0<<CS11)|(1<<CS10);

OCR1A = 5;
TIMSK = (0<<OCIE2)|(0<<TOIE2)|(0<<TICIE1)|(1<<OCIE1A)|(0<<OCIE1B)|(0<<TOIE1)|(0<<TOIE0);


#pragma vector = TIMER1_COMPA_vect
__interrupt void handler(void) {
    PORTD ^= (1<<7);
}


Цитата(Artur Nikitin @ Feb 21 2007, 09:27) *
Да, авреал, добавил фузы в конце. Т.к. по умолчанию проц работает от 1МГц, а кварц 4МГц, то после установления фузы все должно заработать в 4 раза быстрее (например светодиод должен моргать быстрее, т.к. мигает по таймеру), но ентого не наблюдается cranky.gif
Закоротите кварц пинцетом. Если все остановится - меняйте кварц, он у вас не той системы (рассчитан на работу с третьей гармоникой). Если будет продолжать работать - разбирайтесь с фузами. Считайте их, сравните.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- kich   Расчет таймера   May 25 2006, 09:24
- - Kovrov   А так и считайте, учитывая частоту процессора... м...   May 25 2006, 09:43
- - ILYCHOFF   Цитата(kich @ May 25 2006, 13:24) Народ п...   May 25 2006, 09:52
- - BVU   Цитата(kich @ May 25 2006, 13:24) Народ п...   May 26 2006, 05:55
- - Atashi   Жаль, что постановка задачи неконкретная. Может, н...   Jun 8 2006, 18:08
- - Artur Nikitin   Задача такая: проц атмега163, кварц 4МГц (Т4.000)...   Feb 20 2007, 15:40
|- - Палыч   Цитата(Artur Nikitin @ Feb 20 2007, 15:40...   Feb 20 2007, 16:12
|- - Сергей Борщ   Цитата(Artur Nikitin @ Feb 20 2007, 14:40...   Feb 20 2007, 17:33
|- - Artur Nikitin   ЦитатаОй, или это я ошибся, 64мкс не похоже на 70 ...   Feb 20 2007, 17:38
|- - Сергей Борщ   Цитата(Artur Nikitin @ Feb 20 2007, 16:34...   Feb 20 2007, 17:42
- - Abakt   Советую использовать мастер настройки МК по пример...   Feb 20 2007, 15:47
- - Nanobyte   Вот простая программа, сам постоянно ей пользуюсь....   Feb 20 2007, 16:09
- - Artur Nikitin   Нашел причину, но пока не понял как ее устранить. ...   Feb 20 2007, 17:20
- - Artur Nikitin   Осталось только теперь заставить при программирова...   Feb 20 2007, 17:45
|- - Сергей Борщ   Цитата(Artur Nikitin @ Feb 20 2007, 16:45...   Feb 20 2007, 18:07
|- - Artur Nikitin   Цитата(Сергей Борщ @ Feb 20 2007, 18:07) ...   Feb 21 2007, 10:27


Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 06:55
Рейтинг@Mail.ru


Страница сгенерированна за 0.01402 секунд с 7
ELECTRONIX ©2004-2016