![]() |
|
|
|||||||
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#11
|
|||
|
|||
|
Импульсы собираю по attachInterrupt(1,sensSPD,RISING); // Спедометр - подключить прерывание на 3 пин при повышении сигнала. Spedometer
void sensSPD(){ SPDimpulse++; } А скорость обрабатываю по таймеру 1 раз в 50мс, это 20 раз в секунду. MsTimer2::set(50,TimerSPD);//500ms period (1000ms=1s) MsTimer2::start(); // MsTimer2::stop() отключает прерывание. void TimerSPD(){ //round(SPDimpulse); //1.66); //округление: round() - ... в ближайшую сторону; ceil() - ... вверх; floor() - ... вниз. //speedometer=round(SPDimpulse/0.94/2); //speedometer=round(SPDimpulse/1.66); speedometer=round(SPDimpulse/0.94/2*10); SPDimpulse=0; } Скорость считает, но периодически виснет и не знаю что уже с этим делать... могу прислать весь код или попробую сюда скинуть - может что подскажите? |
| Опции темы | Поиск в этой теме |
| Опции просмотра | |
|
|