Реанимация древних машин. На фанерке.

Аватара пользователя
Petrovich
Сообщения: 2021
Зарегистрирован: 25 авг 2008, 23:19

Re: Реанимация древних машин. На фанерке.

Сообщение Petrovich »

Komrad писал(а):.... А дребезг? Самый отстойный алгоритм устранения дребезга основан на ожидании ... Алгоритм получше требует организации запоминания предидущего состояния системы.... Прерывания надо присторить:....
Я так и делаю, ч-з 5 милСек сравниваю состояние с предыдущим.
Ну а в проце уже зашита возможность следить за изменениями на pin-ах. Она так и называется, pinchange.
Evgeniy-free
Сообщения: 392
Зарегистрирован: 02 дек 2012, 07:30
Откуда: Сибирь

Re: Реанимация древних машин. На фанерке.

Сообщение Evgeniy-free »

Petrovich писал(а):Но Вы же писали про энкодер
Да, но речь шла об обновлении дисплея, а энкодер просто чтоб посмотреть на сколько быстро происходит обновление циферок! Вы наверное не внимательно прочитали! :)
Функция энкодера самая простая, опрос пинов каждые пять миллисекунд по совпадению таймера. Прочитав ваши посты изменил условие, теперь работает с помощью прерывания по низкому уровню. А вообще из постов выше кое что для себя подчеркнул, т.к одно и тоже можно написать десятками способов.
Вот небольшое видео: https://youtu.be/k3qtHYAmZb0
Аватара пользователя
Petrovich
Сообщения: 2021
Зарегистрирован: 25 авг 2008, 23:19

Re: Реанимация древних машин. На фанерке.

Сообщение Petrovich »

Evgeniy-free писал(а):....Вот небольшое видео: ...
Дык здесь вроде дело не в скорости отображения. Вроде где-то сохраняются все промежуточные значения, а потом с тормазами вываливаются.
Evgeniy-free
Сообщения: 392
Зарегистрирован: 02 дек 2012, 07:30
Откуда: Сибирь

Re: Реанимация древних машин. На фанерке.

Сообщение Evgeniy-free »

Petrovich писал(а):Вроде где-то сохраняются все промежуточные значения, а потом с тормазами вываливаются.
Скорей всего дело в библиотеке для этого экрана, пока он там выводит мы успеваем менять значение, с помощью энкодера, переменной по прерыванию десятки раз. Альтернатива только одина, написать свою библиотеку. Ладно, буду пробовать, получится что-то путнее покажу! :)
Аватара пользователя
Komrad
Сообщения: 2699
Зарегистрирован: 27 авг 2011, 21:07

Re: Реанимация древних машин. На фанерке.

Сообщение Komrad »

Evgeniy-free писал(а):Скорей всего дело в библиотеке для этого экрана,
Что-то у тебя не так, дело не в библиотеке. Вот посмотри с 41 по 52 секунду https://www.youtube.com/watch?v=DMqKvUM6Z5o. Универсальная бибилиотека, такая же как и у тебя.Такой экран практически не тормозит, даже крупным шрифтом при том, что цифры показания тока размещены частично в вехней и частично в нижней части экрана.
Evgeniy-free
Сообщения: 392
Зарегистрирован: 02 дек 2012, 07:30
Откуда: Сибирь

Re: Реанимация древних машин. На фанерке.

Сообщение Evgeniy-free »

Komrad писал(а):Такой экран практически не тормозит
А на какой частоте у тебя мега работает???
Аватара пользователя
Komrad
Сообщения: 2699
Зарегистрирован: 27 авг 2011, 21:07

Re: Реанимация древних машин. На фанерке.

Сообщение Komrad »

Частота резонатора 16МГц. Попробуй такую штуку. Напиши цикл FOR с переменной от 5 до 230, к примеру. Добавляй в цикле единичку и результат выводи на экран. Будешь видеть сразу, тормозит или нет. Может случится так, что без задержки в цикле и не разберешь каждую отдельную цифру из-за скорости вывода.
Evgeniy-free
Сообщения: 392
Зарегистрирован: 02 дек 2012, 07:30
Откуда: Сибирь

Re: Реанимация древних машин. На фанерке.

Сообщение Evgeniy-free »

Komrad писал(а):Частота резонатора 16МГц
Вот по этому у меня и медленней, частота всего 8мГц. Мега работает от внутреннего генератора (максимум 8МГц), т.к нету под рукой кварца... После часа изучения даташита про каллибрационые байты до меня дошло, что скорее всего у тебя частота микроконтроллера выше, зато лучше разобрался во фьюзах!
Komrad писал(а):Напиши цикл FOR
В этой библиотеке для вывода переменной на дисплей при использовании Си, нужно создать буфер, потом с помощью sprintf преобразовать и записать переменную в этот буфер, и только потом выводить на дисплей командой u8g_DrawStr(&u8g, 55, 14, buf). Не знаю почему в ардуино есть возможность сразу выводить переменную а здесь нету!
Аватара пользователя
Komrad
Сообщения: 2699
Зарегистрирован: 27 авг 2011, 21:07

Re: Реанимация древних машин. На фанерке.

Сообщение Komrad »

Наверное библиотеки всеж у нас разные. Для вывода переменной мне нужно указать позицию u8g.setPrintPos(3,48); далее указать переменную u8g.print(AMP); Если выводим символы тогда короче u8g.drawStr(50,62,"MAG-MIG");
А вот в библиотеке к TFT по другому. Вывод символа myGLCD.print(" ММА", 30,50); а вывод переменной типа INT
требует myGLCD.printNumI(str, 30,50);
Аватара пользователя
Petrovich
Сообщения: 2021
Зарегистрирован: 25 авг 2008, 23:19

Re: Реанимация древних машин. На фанерке.

Сообщение Petrovich »

Komrad писал(а):Наверное библиотеки всеж у нас разные....;
Это так, для прикола.
Ответить