[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: RD3AVJ 
Форум » форумы » Общие вопросы по Bascom-AVR » Панель приборов на мотоцикл (делаем приборку на мот)
Панель приборов на мотоцикл
brutДата: Четверг, 31.10.2013, 00:27 | Сообщение # 1
Группа: Пользователи
Сообщений: 4

Статус: Offline
Интересно сделать панель приборов на мот. Основные функции: спидометр, тахометр, уровень топлива. . Для примера хочу взять статью про частотометр. Но там надо одновременное измерение 2 частот. Не могу понять как работать с таймерами. Можете мне обьяснить как для очень туподоходящего как работать с этими штуками.

 
exersizzeДата: Четверг, 31.10.2013, 09:44 | Сообщение # 2
Группа: Администраторы
Сообщений: 720

Статус: Offline
Нужно подключать второй таймер, конфигурируется точно также как и первый http://avrproject.ru/publ/capture_timer1_avr/1-1-0-24 но только нужно подкорректировать предделитель, потому как Timer2 у меги32 8и битный.


Код
Config Timer1 = Timer , Prescale = 64 , Capture Edge = Rising
Config Timer2 = Timer , Prescale = 64 , Capture Edge = Rising

а больше обработка в соответствии с примером из статьи для каждого таймера


 
brutДата: Пятница, 08.11.2013, 23:45 | Сообщение # 3
Группа: Пользователи
Сообщений: 4

Статус: Offline
Как я понял "Capture1" это прерывание которое срабатывает при сигнале на PD6. А какой порт можно использовать для второго сигнала?

 
brutДата: Суббота, 09.11.2013, 00:14 | Сообщение # 4
Группа: Пользователи
Сообщений: 4

Статус: Offline
Вот попытка что-то сделать:

$regfile = "m32def.dat"
$crystal = 16000000

' указываем конфигурацию подключения дисплея к портам МК

Config Lcdpin = Pin, Rs=Portc.5, E=Portc.4, Db4=Portc.0, Db5=Portc.1, Db6=Portc.2, Db7=Portc.3

Config Lcd = 16*2                      ' тип используемого дисплея

'настраиваем таймер в режим захвата по восходящему фронту

Config Timer1 = Timer , Prescale = 64 , Capture Edge = Rising
Config Timer2 = Timer , Prescale = 64 , Capture Edge = Rising

Dim Timercounter1 As Word
Dim Period1 As Single                                       ' период измеряемого сигнала
Dim F11 As Single
Dim F1 As Word
Dim Timercounter2 As Word
Dim Period2 As Single                                       ' период измеряемого сигнала
Dim F22 As Single
Dim F2 As Word                                              ' переменная для хранения значения частоты

Const T1 = 0.000004
Const T2 = 0.000004                                         ' примерное время в секундах за которое значение
                                                             ' счетчика увеличивается на 1

On Capture1 Zaxvat1

Timercounter1 = 0
Waitms 50
Enable Interrupts
Enable Capture1

Cursor Off

Do                                                          '  главный цикл программы

If Timercounter1 = 0 Then                                   ' проверка значения переменной
 F1 = 0                                                     ' если 0, то частота тоже 0

 Else                                                       ' в обратном случае высчитываем частоту

 Period1 = Timercounter1 * T1                               ' определяем период
 F11 = 1 / Period1                                          ' считаем частоту
 F1 = Abs(f11)                                              ' округляем до целого

End If

If Timercounter2 = 0 Then                                   ' проверка значения переменной
 F2 = 0                                                     ' если 0, то частота тоже 0

 Else                                                       ' в обратном случае высчитываем частоту

 Period2 = Timercounter2 * T2                               ' определяем период
 F22 = 1 / Period2                                          ' считаем частоту
 F2 = Abs(f22)                                              ' округляем до целого

EndIf

'выводим показания на дисплей

Cls
Lcd F1                                                      ' обороты двыигателя
Lowerline
Lcd F2

Waitms 100

Loop

Zaxvat1:
 Timercounter1 = Timer1                                     ' копируем значение таймера в переменную
 Timer1 = 0                           ' обнуляем таймер
Return

End

Мтодом копипастинга питался сделать что-то, но оно ругаеться на "Capture Edge" в конфигурации второго таймера.
И я не знаю как записать прерывание от второго таймера, что то типа "Capture2"?


 
exersizzeДата: Воскресенье, 10.11.2013, 13:27 | Сообщение # 5
Группа: Администраторы
Сообщений: 720

Статус: Offline
У меня без ошибок скомпилировался ваш код, но добавление второго capture не получилось. Выяснилось что у меги32 только один таймер Timer1 умеет работать в этом режиме

Прикрепления: 7902323.png(41Kb)


 
brutДата: Понедельник, 11.11.2013, 02:14 | Сообщение # 6
Группа: Пользователи
Сообщений: 4

Статус: Offline
Надо камень с двумя 16 бит таймерами? типа мега 162?



Сообщение отредактировал brut - Понедельник, 11.11.2013, 02:22
 
exersizzeДата: Понедельник, 11.11.2013, 17:48 | Сообщение # 7
Группа: Администраторы
Сообщений: 720

Статус: Offline
про 162-ю не скажу, нет под рукой доков от нее, а вот у меги128 точно есть два таймера с нужным режимом.
но на мой взгляд было бы проще, да и гораздо дешевле взять две тиньки 2313 и сделать на них, на одной тахометр а на другой спидометр.


 
AlekSДата: Понедельник, 11.11.2013, 19:57 | Сообщение # 8
Группа: Проверенные
Сообщений: 248

Статус: Offline
Тахометр и спидометр можно объединить, а вот с баком тяжелей. При езде он плещется и показания разнятся .... их надо усреднять и удерживать. Меги 8 или 16 достаточно.
http://xn----7sbbil6bsrpx.xn--p1ai/spidome....x4.html
Самый удачный http://speed-light.on.ufanet.ru/speedometr-mega16.shtml
http://www.autolada.ru/viewtopic.php?t=106306 правда на Си но все понятно.
http://www.zapravka.sura.ru/AV_avr....80.html  Это на барсике, найду исходник брошу сюда.

*********
Прошу не пинать, за код ))) было давно)))
Прикрепления: _Speed2008.zip(48Kb)




Сообщение отредактировал AlekS - Понедельник, 11.11.2013, 20:28
 
AlekSДата: Понедельник, 11.11.2013, 20:26 | Сообщение # 9
Группа: Проверенные
Сообщений: 248

Статус: Offline
Скинул  не все!  Похоже найти не удастся( , но главное, с часовой микросхемы брался импульс  для скорости. Вот тебе еще таймер и время.)

 
AlekSДата: Суббота, 16.11.2013, 16:41 | Сообщение # 10
Группа: Проверенные
Сообщений: 248

Статус: Offline
http://www.picbasic.ru/publ/spidometr_odometr_i_takhometr/4-1-0-88

 
Форум » форумы » Общие вопросы по Bascom-AVR » Панель приборов на мотоцикл (делаем приборку на мот)
Страница 1 из 11
Поиск: