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

 
 
 
Reply to this topicStart new topic
> Запуск таймера по событию
Vny4ek
сообщение Jul 27 2009, 17:15
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 145
Регистрация: 11-01-08
Пользователь №: 34 001



Ребят, я новичок, подскажите плиз. Как запустить таймер в CV по событию (прерывание по перепаду), что бы он считал по циклу и в случае перепада записать его значение в переменную я научился, а вот как сделать что бы при прерывании по перепаду, таймер начинал отсчет, не могу разобраться.
Go to the top of the page
 
+Quote Post
Vishv
сообщение Jul 27 2009, 17:41
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 310
Регистрация: 11-07-09
Из: Екатеринбург
Пользователь №: 51 154



Ну, для разнообразия, разъясните что за процессор, что за событие?
Go to the top of the page
 
+Quote Post
Vny4ek
сообщение Jul 27 2009, 17:51
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 145
Регистрация: 11-01-08
Пользователь №: 34 001



Atmega8-16 событие перепад уровня сигнала из 0 в 1 (0 вольт в больше 3.6 вольт) ну или наоборот. из 1 в 0
Go to the top of the page
 
+Quote Post
Vishv
сообщение Jul 27 2009, 18:07
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 310
Регистрация: 11-07-09
Из: Екатеринбург
Пользователь №: 51 154



Цитата(Vny4ek @ Jul 27 2009, 23:51) *
Atmega8-16 событие перепад уровня сигнала из 0 в 1 (0 вольт в больше 3.6 вольт) ну или наоборот. из 1 в 0

Про перепад я понял, однако где этот перепад происходит - на выводе внешнего прерывания (например INT0) или еще где?
А вообще для таймера0 Atmega8 TCCR0=0x00 - таймер остановлен см. страницу 68 datasheet (Timer/Counter Control
Register – TCCR0). те при любой другой комбинации таймер работает.
Таким образом для того, чтобы таймер запустить по прерыванию необходимо:
1.Остановить таймер (TCCR0=0x00;)
2.Проделать что нужно с его содержимым,
3.В обработчике прерываний запустить таймер - записать TCCR0 что-либо неравное 0х00.
Go to the top of the page
 
+Quote Post
adc
сообщение Jul 27 2009, 18:26
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 409
Регистрация: 29-10-07
Пользователь №: 31 836



Цитата
Ребят, я новичок, подскажите плиз.
Зачем Вы плодите темы?
Тут бы и обсуждали про таймер: Прием данных на Атмеге Складывается впечатление что Вам ну просто лень заглянуть в datasheet, и почитать про настройку таймера. maniac.gif
Если с аглицким трудности, то берите Евстифеева А.В. "Микроконтроллеры AVR семейств...." и изучайте!
Предвидя Ваш вопрос -"где его взять?"...
part1
part2


--------------------
Умный программист пишет тупым кодом гениальные вещи, а не наоборот...
Go to the top of the page
 
+Quote Post
Vny4ek
сообщение Jul 28 2009, 05:09
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 145
Регистрация: 11-01-08
Пользователь №: 34 001



Во! Спасибо понял. Да событие происходит на ножке INT0 например. Извините за плодежку темы. тут вопрос более конкретный. Тоесть оказывается можно в любом коде прерывания инициализировать таймер так как нужно? я думал это делается только один раз в коде просто. Тоесть в прерывании например я даже могу ножку проца назначить не входом (как было объявлено ранее с помощью мастера генератора кода) а сделать при прерывании на ножке INT0 что бы стала выходом да?
Go to the top of the page
 
+Quote Post
Vishv
сообщение Jul 28 2009, 06:14
Сообщение #7


Местный
***

Группа: Участник
Сообщений: 310
Регистрация: 11-07-09
Из: Екатеринбург
Пользователь №: 51 154



Цитата(Vny4ek @ Jul 28 2009, 11:09) *
Во! Спасибо понял. Да событие происходит на ножке INT0 например. Извините за плодежку темы. тут вопрос более конкретный. Тоесть оказывается можно в любом коде прерывания инициализировать таймер так как нужно? я думал это делается только один раз в коде просто. Тоесть в прерывании например я даже могу ножку проца назначить не входом (как было объявлено ранее с помощью мастера генератора кода) а сделать при прерывании на ножке INT0 что бы стала выходом да?

Да можете..
Ну а с замечанием adc "Вам ну просто лень заглянуть в datasheet, и почитать про настройку таймера" я полностью согласен
Go to the top of the page
 
+Quote Post
Vny4ek
сообщение Jul 28 2009, 07:50
Сообщение #8


Частый гость
**

Группа: Участник
Сообщений: 145
Регистрация: 11-01-08
Пользователь №: 34 001



Спасибо, да не лень мне, я стараюсь черпать из даташитов все, но там вот например таймеры очень не просто описаны. Я как новичек не понял, даже переводя промтом. так что зря Вы что я не смотрел, просто теперь вот например я понял многое и читая даташиты уже будет проще понимать остальное. Спасибо!!!
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Jul 28 2009, 08:27
Сообщение #9


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



А задача-то какая стоИт?
может, и не стоит ничего "запускать", а просто один раз проинициализировать и потом считать системные тики?
Если нужно очень точно отсчитать интервал от внешнего сигнала - нужно пользоваться захватом от компаратора.
Очень точно - с точностью до тактов таймера
Если такая точность не требуется, можно по прерываниям.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
Vny4ek
сообщение Jul 28 2009, 09:47
Сообщение #10


Частый гость
**

Группа: Участник
Сообщений: 145
Регистрация: 11-01-08
Пользователь №: 34 001



Ну точность нужна 400мкс тоесть где то импульс 400мкс=1 а 800мкс=0 ну и бывает что +-30% плывут интервалы по времени. Кварц будет стоять 8Мгц. Очень большая точность как я понял для замера таких временных интервалов с целью приема информации и преобразовании в двоичный вид не нужна.
Go to the top of the page
 
+Quote Post
Vny4ek
сообщение Jul 28 2009, 13:21
Сообщение #11


Частый гость
**

Группа: Участник
Сообщений: 145
Регистрация: 11-01-08
Пользователь №: 34 001



Кстати подскажите пожалуйста почему у меня не происходит реакции на события прерывания INT0 any change тоесть пускаю генератор сигнала а в прерывание не попадает. Атмега8-16
Настраиваю в CV в мастере генерации кода, там выбираю этот пункт any change, но реакции на это событие не происходит

Сообщение отредактировал Vny4ek - Jul 28 2009, 13:33
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 20th July 2025 - 07:43
Рейтинг@Mail.ru


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