Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
Другие темы раздела
Atmega AVR микроконтроллер Программная реализация SSI http://www.cyberforum.ru/avr/thread2085942.html
Всем привет! Подключаю абсолютный энкодер к ATmega8, датчик передает 8 бит через SSI , хотел узнать правильно ли программно реализуется опрос датчика или нет? #include <mega8.h> #include <gray.h>...
Таблица кодировки для символьного ЖКИ Atmega AVR микроконтроллер
Народ, горю, завтра на выезд ехать, дайте сишную таблицу кодировки для символьного ЖКИ. HD44780. Написал бы сам, да время поджимает. Хотел бы спокойно дописать программу, пока кто-нибудь таблицей не...
Atmega AVR микроконтроллер IAR EEPROM
Кто в IAR пишет, дайте, плиз, примеры работы с EEPROM в IAR. Проект заканчиваю, осталось только считывание и запись параметров из\в EEPROM.
Atmega AVR микроконтроллер непрерывная регулировка тока на AVR--как? Предположим нагрузка лампа накаливания с напряжением 5в и током потребления 100mA. Необходимо плавно непрерывно менять(ограничивать) ток на нагрузке. http://www.cyberforum.ru/avr/thread2085939.html
Atmega AVR микроконтроллер IAR AVR, работа с битами (не со стандартными регистрами) http://www.cyberforum.ru/avr/thread2085938.html
День добрый. Подскажите, как работать с битам. Мне нужно сделать несколько флагов, своих. И ими управлять например INIT_1 INIT_2 NEW_CMD ... Как их определить?
ATtiny2313 жрет очень много тока в режиме Idle (РЕШЕНО) Atmega AVR микроконтроллер
Код "пустой" программы: #define F_CPU 128000 #include <avr/io.h> #include <avr/sleep.h> #include <avr/interrupt.h> int main() { cli(); // запрет прерываний
Atmega AVR микроконтроллер Нет срабатывания прерывания
Доброго времени суток Бодаюсь с 8-ой мегой. Проблема в том, что ни в какую не хочет срабатывать прерывание по переполнению таймера. Даже удалил весь код, написал отдельную прогу, который просто...
Atmega AVR микроконтроллер Светодиод и кнопка Привет всем! Помогите пожалуйста! Как написать программу на С под avr, чтобы когда на кнопку нажимая светодиод загорался, еще раз нажимая он погас ? http://www.cyberforum.ru/avr/thread2085935.html
Atmega AVR микроконтроллер Обращение к элементам двумерного массива через указатели http://www.cyberforum.ru/avr/thread2085934.html
Собсно, гуглил, вроде всё просто, но что-то плохо воспринимается. Имеется 2d массив. data1 = number1 ; data1 = number1 ; Но так не работает ../measure_durationAVR.c:73:42: error:...
Atmega AVR микроконтроллер Arduino, SPI и АЦП AD7792 Всем привет. Есть у меня ардуина на 8-й меге, к которой по SPI прицеплен ad7792. Все регистры читаются правильно (т.е. из них читается то, что написано в даташите как содержимое по умолчанию). Если... http://www.cyberforum.ru/avr/thread2085933.html
dsshooozzzi
0 / 0 / 0
Регистрация: 03.01.2011
Сообщений: 250
0

Алгоритм спидометра скута кривавато работает...

08.05.2014, 20:56. Просмотров 6744. Ответов 27
Метки (Все метки)

Приветствую.
Спидометр, который должен в теории работать четко, не угадывает скорость...
Алгоритм:
1.Каждые 2мс. Срабатывает переполнение по таймеру T0
Код
// Прерывание при переполнении T0. 2мс
SIGNAL (SIG_OVERFLOW0)
{
TCNT0TCNT0=0x06;
// Если натикало 0,5 секунды
if(++Clock_m02Seconds == 250)
{
Clock_Half_Seconds++;
Clock_m02Seconds = 0;
if(TimeToSlip < MaxTimeToSlip)
TimeToSlip++;
}

// Каждые 250мс сохраняем значение спидометра
if(Clock_m02Seconds == 25 || Clock_m02Seconds == 150)
{
SpeedArray[SpeedArrayPointer++] = SpeedCounter;
SpeedCounter = 0;
if(SpeedArrayPointer == SpeedFilterN)
SpeedArrayPointer = 0;
}

// Каждые 250мс сохраняем значение тахометра
if(Clock_m02Seconds == 100 || Clock_m02Seconds == 225)
{
TahoArray[TahoArrayPointer++] = TahoCounter;
TahoCounter = 0;
if(TahoArrayPointer == TahoFilterN)
TahoArrayPointer = 0;
}
}
В прерывании INT1
Код
SIGNAL(INT1_vect)
{
//// Отлов спидометра
// Значение TahoOnDyspley поделенно на 100.
// Если обороты движка больше 10[00]
if(TahoOnDyspley > 9)
{
// Считаем количество оборотов колеса
OdometrCountOfRotation++;
SpeedCounter++;
vFlag5 |= _BV(1);
}
}
После этих двух прерываний каждые 250мс записываются данные в "зацыкленный" массив.
3. Где то в главном цикле void SpeedSotsAndDraw()
Код
void SpeedSotsAndDraw()
{
unsykned int NewSpeed = 0;
unsykned char cPointer;
// Сумируем насчитанные значения
for(cPointer = 0; cPointer < SpeedFilterN; cPointer++)
{
NewSpeed += SpeedArray[cPointer];
}
// Поскольку отсчеты по 0,25 сек,
// то при SpeedFilterN == 8 - Имеем скорось за последние 2 сек
// Переводим [обороты колеса/сек] в [10км/час]
NewSpeed = NewSpeed * 24.75;
// На случай, если показания не влезут в индикатор
if(NewSpeed > 999) NewSpeed = 999;

// Вывод на экран...
}
По логике этого должно хватать. При подаче от импульсов от генератора - все красиво, а вот на скуте... Показания скорости завышены на 5-20км/ч, чаще всего на 10 км/час.
Помехи, которые создавались датчиком холла(нигнит остановился рядом - много импульсов) поборол через привязку к оборотам движка. Скут раньше 900-1000 оборотов ехать не начнет, следовательно на таких оборотах игнор. Есть подозрения, что на проводник идут наводки...
На практике сделано так: нигнит на колесе, датчик холла на вилке, рядом CLC стабилизатор для датчика, транзисторный ключ, коаксиал, подтяжка к +5м, INT1.

Что посоветуете делать?

Вернуться к обсуждению:
Алгоритм спидометра скута кривавато работает...
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.05.2014, 20:56
Готовые ответы и решения:

Как физически установить термодатчик LM135 на движке скута
Приветствую. Для измерения температуры двигателя на скутере использую термодатчик LM135. При...

Моталка спидометра
Имеется в наличии некий прибор для намотки пробега. Фото прилагаю. Помогите определить на какой...

Корректор спидометра мотоцикла
Хорошо получилось! Главное, доведено до оформленной конструкции. Уже давно приходилось заниматься...

Мотор стрелки спидометра
Всем привет, подскажите кто-нибудь как управлять этим мотором? 4 пина, на плате подписано +sin,...

Управление двигателем стрелки спидометра...
Переделываю спидометр на своем авто, возник вопрос с управлением двигателем стрелки т.к. он будет...

27
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru