ATmega16 - измерение частоты: внешнее прерывание и расчет

Обсуждаем контроллеры компании Atmel.
GhostAnton
Первый раз сказал Мяу!
Сообщения: 20
Зарегистрирован: Пн ноя 21, 2011 19:07:28

Re: ATmega16 - измерение частоты: внешнее прерывание и расче

Сообщение GhostAnton »

Долго не занимался проектом своим были проблемы на работе, но сейчас наконец практически реализовал свою приборку. Тахометр работает на варианте с подсчетом внешних прерываний в секунду, пока погрешности нет, единственный недостаток это шаг деления 60 оборотов, было бы лучше с шагом 50, но это не столь важно, даже такой тахометр годится для навтройки карбюратора на холостом ходу. Спидометр работает тоже на внешних прерываниях, подсчет скорости идет в течении секунды и затем вывод результата, был удивлен его точностью и стабильностью работы, на базе подсчетов сделан одометр и трип. Вольтметр бортовой сети с предупреждениями о перезаряде и неработающем зарядном устройстве либо генератора реализован в зависимости от напряжения. Реализован зумер с настройкой работы (либо при включении поворота сразу пищать, либо пищать через 20 секунд, сделал так чтоб при обгоне и когда не забываешь выключить поворот чтоб он зря не пищал) Цифровой термометр на 3 датчика температуры ds18b20.

Возникшие проблемы которые не могу решить сам, прошу совета в решении их:
1) при срабатывании зумера вывод частоты в порт OCR1A нахометр наченает давать погрешность до 240 оборотов, скачет во время вывода сигнала. С этой проблемой можно жить особо она меня не напрягает, хотя хотелось бы решить эту проблему. Если не удастся то ничего страшного.

2) Самая главная проблема, как только подключаю датчики температуры, даже если 1 то сильно начинает грешить тахометр а также начинает врать спидометр и соответственно трип. Я понимаю в чем проблема но как ее обойти не представляю никак, просто нет идей. Я полагаю что это при опросе датчика температуры там в модуле датчика есть полный запрет прерываний и после опроса восстановление прерываний. Есть варианты как работать с этими датчиками без запрета прерываний? У меня при перегреве водянки зум срабатывает, ну и ко всему хотелось бы в 1 корпусе все.
Это очень важно, у меня датчики водянки должны работать постоянно, дабы избежать перегрева системы двигателя. Не хотелось бы использовать отдельный микроконтроллер для этого.

3) Не понимаю как всетаки работать с еепром хотябы с внутренней. Как записать значение переменной туда и как потом получить эту переменную.

Исходный код прилагаю и проект в протеусе тоже, дабы вы могли просмотреть код и схемы. Заранее спасибо за помощь.
Спидометр ATMega 16.rar
проект протеуса (Mainboard Lucky250.DBK) и исходный код cvavr (test)
(267.26 КБ) 201 скачивание
GhostAnton
Первый раз сказал Мяу!
Сообщения: 20
Зарегистрирован: Пн ноя 21, 2011 19:07:28

Re: ATmega16 - измерение частоты: внешнее прерывание и расче

Сообщение GhostAnton »

У меня появилась идея отказаться от библиотеки дс18б20 и прописать у себя код в своем прерывании в котором я отсчитываю секунды. Буду пробовать если все пройдет успешно то отпишусь.
Ответить

Вернуться в «AVR»