|
Запуск таймера 16бит по внешнему прерыванию, Атмега+CodeVision |
|
|
|
 |
Ответов
|
Dec 18 2008, 11:20
|
Частый гость
 
Группа: Участник
Сообщений: 145
Регистрация: 11-01-08
Пользователь №: 34 001

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

Гуру
     
Группа: Модераторы
Сообщений: 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)
|
|
|
|
Сообщений в этой теме
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
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|