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

 
 
> Запуск таймера 16бит по внешнему прерыванию, Атмега+CodeVision
Vny4ek
сообщение Dec 4 2008, 06:27
Сообщение #1


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

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



Никак не могу разобраться как сделать так:
При перепаде сигнала на входе от 0 до 5 срабатывает прерывание и запускает отсчет 16 битный счетчик
я правильно понял что нужно подовать сигнал на INT0 ножку и выбирать Rising Edge в мастере генерации кода? Если можно киньте плиз шаблон. как начать. по сути хочу вывести на дисплей значение таймера
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Vny4ek
сообщение Dec 18 2008, 11:20
Сообщение #2


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

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



Всем спасибо, заработало! Сразу вопрос собственно я хочу сделать прием данных по прерыванию. Вот у меня произошло прерывание по нарастанию уровня, мне нужно измерить длительность импульса используя как я понимаю счетчик 16 битный, По идее длительность импульсов единичных 400Мкс но на практике может быть и 350-600 естественно это про весь пакет говорится, тоесть бывают брелки с севшей батарейкой или с новой и вот хочу это учесть. Собственно сейчас споткнулся вот на чем:
Прерывания по фронту я понял как осуществить, я перерыл даташит, и даже на русском описание нашел, но ничего не понял. Как мне измерить поступивший импульс, и например значение его присвоить переменной где уже оперировать им как базовой величиной пакета. Будьте добры киньте пример, или может где эта тема разжевывалась.
P.S. Всем кто помог с предыдущей проблемой большое спасибо!!!!
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Dec 19 2008, 07:33
Сообщение #3


Гуру
******

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



Цитата(Vny4ek @ Dec 18 2008, 13:20) *
Как мне измерить поступивший импульс,
Вам не надо останавливать и запускать таймер. Пусть он свободно бежит, а вы используйте его модуль capture. Читайте описание на input capture unit и регистр ICR. Вам надо застатвить таймер защелкивать в ICR значение счетчика в начале и в конце импульса, а затем вычитая первое из второго получите длину импульса. Заметьте, без погрешностей из-за неодинакового времени на вход в прерывание.

P.S. и не используйте кнопку цитирования на форме ввода для оформления кода. Для оформления кода есть кнопка '#'.


--------------------
На любой вопрос даю любой ответ
"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

Сообщений в этой теме
- Vny4ek   Запуск таймера 16бит по внешнему прерыванию   Dec 4 2008, 06:27
- - Aesthete Animus   Цитата(Vny4ek @ Dec 4 2008, 09:27) Никак ...   Dec 4 2008, 12:51
- - Vny4ek   Неа, в том то и дело что не получилось, хочу вывес...   Dec 4 2008, 14:57
|- - vik0   Цитата(Vny4ek @ Dec 4 2008, 16:57) Может ...   Dec 4 2008, 18:48
|- - SysRq   Цитата(Vny4ek @ Dec 4 2008, 17:57) В функ...   Dec 4 2008, 21:18
- - Aesthete Animus   2Vny4ek Всецело согласен с предыдущим оратором. От...   Dec 4 2008, 21:16
- - Vny4ek   ОК понял! я домой приду вечером и выложу свой ...   Dec 5 2008, 06:02
- - Vny4ek   Вот код зацените пожалуйста что не так #include ...   Dec 10 2008, 06:25
- - _Ivan_33   хех... 1) если переменная сначала не объвлена как ...   Dec 10 2008, 06:35
|- - Aesthete Animus   Цитата(_Ivan_33 @ Dec 10 2008, 09:35) 1) ...   Dec 10 2008, 09:20
|- - vik0   ЦитатаТоесть эту строчку нужно поместить в цикл Wh...   Dec 10 2008, 09:40
- - Vny4ek   Тоесть эту строчку нужно поместить в цикл While? ...   Dec 10 2008, 07:05
- - Vny4ek   Все учел что сказали, перекомпилил нарисовал в про...   Dec 10 2008, 12:08
|- - mdmitry   Цитата(Vny4ek @ Dec 10 2008, 15:08) На но...   Dec 10 2008, 12:59
- - _Ivan_33   а без всяких дополнительных извращений на LCD что ...   Dec 10 2008, 12:59
- - Vny4ek   Если s==0 то выводится я пробовал ей присваивать з...   Dec 10 2008, 14:44
|- - Goodefine   Цитата(Vny4ek @ Dec 10 2008, 17:44) ...А ...   Dec 10 2008, 19:26
- - Vny4ek   Я учел ВСЕ рекомендации. В итоге вижу следующее: Н...   Dec 11 2008, 08:10
- - Goodefine   Схему подключения кнопки к INT0 приведите...   Dec 11 2008, 08:44
- - Vny4ek   Вот. хотя еще раз повторюсь при нажатии кнопки нач...   Dec 11 2008, 13:12
- - Goodefine   Да как так у вас получается? Взял код из вашего же...   Dec 11 2008, 13:41
- - Vny4ek   Попробуйте плиз мой хекс в протеусе использовать (...   Dec 11 2008, 14:12
- - Goodefine   Для какого кварца у вас хекс? У меня для 8 МГц... ...   Dec 11 2008, 15:13
- - Vny4ek   Вот мой проект. Посмотрите пожалуйста что не так В...   Dec 12 2008, 09:18
- - Goodefine   Это не проект, это прошивка. Проект - это все фай...   Dec 12 2008, 11:35
- - Vny4ek   Извините, невнимательность просто, вот файл проект...   Dec 12 2008, 12:52
- - SysRq   Цитата(Vny4ek @ Dec 10 2008, 15:08) Все у...   Dec 12 2008, 14:25
- - SysRq   Настройте таймер чтобы тикал с нужным дискретом (ч...   Dec 18 2008, 17:43
- - Goodefine   Прерывания на INT0 в меге16 можно настроить по ИЗМ...   Dec 19 2008, 07:02
- - Goodefine   Цитата(Сергей Борщ @ Dec 19 2008, 10:33) ...   Dec 19 2008, 08:59
|- - Сергей Борщ   Цитата(Goodefine @ Dec 19 2008, 10:59) Та...   Dec 19 2008, 10:30
- - Goodefine   Цитата(Сергей Борщ @ Dec 19 2008, 14:30) ...   Dec 19 2008, 12:57
- - Сергей Борщ   Цитата(Goodefine @ Dec 19 2008, 14:57) Уч...   Dec 19 2008, 13:51


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

 


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


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