Кирилица на дисплее WEH000802
|
xvovanx |
Дата: Ср, 11.05.2016, 15:50 | Сообщение # 16 |
Группа:
Модераторы
Ранг:
Помогаю всем
Сообщений:
437
Замечания:
±
На сайте с 02.05.2013
Статус:
Offline
|
Цитата 555serg (  ) Допустим, мне нужно будет привязаться к часам реальноговремени, и я конечно же временные интервалы буду отсчитывать по одному из таймеровчерез прерывание. Возможна ситуация когда микроконтроллер, занят отправкой информациина OLED дисплей, он еще не закончил, а прерывание наступило и откладывается.Таких отложенных ( просроченных ) прерываний за секунду или минуту может накопиться Если Вы в своей программе будете использовать "железные" прерывания - On_Hardware_Interrupt, а не програмные, то при прерываниях отправка данных на дисплей будет прерываться, а часики будут "атомными"
|
|
|
|
|
555serg |
Дата: Ср, 11.05.2016, 18:54 | Сообщение # 17 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
68
Замечания:
±
На сайте с 12.12.2011
Статус:
Offline
|
Да Вы правы, прерывания будут инициироваться внутренними модулями PIC контроллера, а именно таймером TMR0, и таймером TMR1. Эти прерывания имеют приоритет над программными. Важные программные " мероприятия " всегда стараюсь выполнять сразу после выхода из подпрограммы обработчика прерывания. Это делаю для того, что бы гарантированно быть уверенным в полном без прерывном выполнении этих " мероприятий ", - действий. Еще в новой проге которую собираюсь ваять, очень хочется чтобы показания на OLED индикаторе были железобетонные. Т.е. без всяких сбоев там или каких либо еще артефактов. И вот вопрос, - как отразится на индикаторе приостановка выдачи микроконтроллером управляющих битов на его шине DB4 - DB7, и на выводах RS, R/W и E ? Понятно что значение аккумулятора и счетчика обратно восстанавливаются, но все же. Поэтому и интересовался, у кого есть информация по времени исполнения команды по выводу шестнадцати и тридцати двух знакомест на индикаторе. Заранее спасибо за ответ.
|
|
|
|
|
mikhail09p |
Дата: Ср, 11.05.2016, 22:22 | Сообщение # 18 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
530
Замечания:
±
На сайте с 04.05.2010
Статус:
Offline
|
Цитата прерывание наступило и откладывается Извините, но ЧТО за ересь??? Если прерывание наступило, то оно НЕ прерывается ничем, оно ПРЕРЫВАЕТ программу и ВЫПОЛНЯЕТСЯ !Цитата отложенных ( просроченных ) прерываний аппаратных отложенных - не может быть. Ошибка из-за этого не накапливается. Её нет.
Если интересно, вот часы, смотрите, работают который год. Да, давно забросил DS1307. Плохая микруха.
Сообщение отредактировал
mikhail09p - Ср, 11.05.2016, 22:47
|
|
|
|
|
555serg |
Дата: Ср, 11.05.2016, 23:05 | Сообщение # 19 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
68
Замечания:
±
На сайте с 12.12.2011
Статус:
Offline
|
Михаил, тут вы правы, не так выразился. Имелось в виду, если мне необходимо во что бы то ни стало выполнить ( закончить ) какой либо процесс, и для этого приходится перед началом выполнения этого процесса запрещать это самое прерывание ( INTCON 0XXXXXXX - запретим в лоб все прерывания ), то в этом случае прерывание если наступило - то откладывается, до момента поднятия бита GIE. Это может понадобиться при процедуре записи в EEPROM например. Если есть желание и время, сможете в протеусе промоделировать и узнать время выполнения вывода на индикацию ? Заранее спасибо.
Сообщение отредактировал
555serg - Ср, 11.05.2016, 23:07
|
|
|
|
|
xvovanx |
Дата: Ср, 11.05.2016, 23:58 | Сообщение # 20 |
Группа:
Модераторы
Ранг:
Помогаю всем
Сообщений:
437
Замечания:
±
На сайте с 02.05.2013
Статус:
Offline
|
Цитата 555serg (  ) ...запретим в лоб все прерывания ), то в этом случае прерывание если наступило - то откладывается, домомента поднятия бита GIE.Это может понадобиться при процедуре записи в EEPROM например... Куча схем и аппаратов корректно работают с прерываниями и записью в память и "прерывать прерывания" не понадобилось
|
|
|
|
|
mikhail09p |
Дата: Чт, 12.05.2016, 22:29 | Сообщение # 21 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
530
Замечания:
±
На сайте с 04.05.2010
Статус:
Offline
|
Цитата Это может понадобиться при процедуре записи в EEPROM например. Никогда прерывания ещё не мешали...
Вроде, время вывода одной строчки 16 символов - около 5-6 миллисек. 4 Мгц тактовый. 4 проводной интерфейс. Но лишнее всё это...
Сообщение отредактировал
mikhail09p - Чт, 12.05.2016, 22:34
|
|
|
|
|
555serg |
Дата: Пт, 13.05.2016, 17:40 | Сообщение # 22 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
68
Замечания:
±
На сайте с 12.12.2011
Статус:
Offline
|
Михаил, большое спасибо, а я уже думал, что никто и не поможет. ))) По поводу записи в EEPROM и о прерываниях. Должно быть разработчики Протона после формируемого им ASM кода предусмотрели этот момент, вот ни кому и не мешало. Но мы то ( вернее я ) об этом мало осведомлены. Еще рас спасибо.
|
|
|
|
|
dimvad |
Дата: Пт, 13.05.2016, 22:08 | Сообщение # 23 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
99
Замечания:
±
На сайте с 20.07.2012
Статус:
Offline
|
Цитата По поводу записи в EEPROM и о прерываниях. Должно быть разработчики Протона после формируемого им ASM кода предусмотрели этот момент, вот ни кому и не мешало. Ничего они там не предусмотрели. Нарывался я на эти грабли.
|
|
|
|
|
555serg |
Дата: Сб, 03.12.2016, 17:10 | Сообщение # 24 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
68
Замечания:
±
На сайте с 12.12.2011
Статус:
Offline
|
Вот, - еще подтверждение. Как по мне, лучше самим перестраховаться, написав пару лишних строк чем потом долго и муторно напрягать мозг в поиске причин почему прога работает не так как необходимо.Добавлено (03.12.2016, 17:10) --------------------------------------------- Приветствую всех участников форума ! Работой индикатора WEH001602A настроенного с помощью всех выше ответивших, не безразличных форумчан - доволен. И что бы не плодить новых тем по эксплуатации данного дивайса - рискну задать свой вопрос здесь. Данный индикатор работает в составе схемы где есть несколько исполнительных реле и пара контакторов. К одному из контакторов подключен двигатель , мощностью около 2 Квт. В момент выключения контактора коммутирующего этот двигатель - индикатор полностью гаснет, черный экран. Такое происходит не часто, но хотелось бы этого избежать. Двигатель питается от сети 3 * 380 В. Источник питания микроконтроллера и индикатора трансформаторный, - три одинаковых трансформатора, обмотки которых соединены звездой, дальше обычный трехфазный мост на шести диодах, электролиты и интегральный стабилизатор 7805. Кто сталкивался с подобной проблемой, поделитесь опытом ? Заранее спасибо!
|
|
|
|
|
ADMIN |
Дата: Сб, 03.12.2016, 17:49 | Сообщение # 25 |
Администратор
Группа:
Администраторы
Ранг:
Специалист
Сообщений:
1134
Замечания:
±
На сайте с 20.08.2007
Статус:
Offline
|
Тоже столкнулся с похожей проблемой. Но у меня обычный индикатор 20х4 через i2c расширитель. при срабатывании какого-либо реле (реле на 24 в, находятся на плате) индикатор перестает отображать адекватную информацию. Непонятна история потому, что реле питаются через uln2003. Пока не было возможности в производственных условиях разобраться. На столе все работает идеально. На работающий в шкафу тут же частотник такой реакции нет. Питание- от импульсного блока 24 в, которые преобразуются в 5 через lm2576-5. Сильное подозрение на некачественный импульсник. Хотелось бы также услышать советы по этому поводу
|
|
|
|
|
555serg |
Дата: Сб, 03.12.2016, 18:46 | Сообщение # 26 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
68
Замечания:
±
На сайте с 12.12.2011
Статус:
Offline
|
Вот, то же самое - на столе работает идеально, а на реальной установке возникают проблемы. Что интересно, у меня на этой же плате с OLED индикатором WEH001602A находится второй PIC. Его задача - работа с одним датчиком DS18B20, с двумя кнопками, и с трех сегментным светодиодным индикатором, так вот, работа этой схемы ни разу не вызвала нарицания, хотя источник питания у обоих микроконтроллеров один и тот же. Видно придется подходить к этому комплексно, - RC цепи на двигателе, синфазный дроссель с емкостями на выходе трехфазного выпрямителя, ESR электролиты, тантал. Но хотелось бы услышать мнения тех кто уже прошел через это! Заранее спасибо за участие!Добавлено (08.11.2019, 12:42) --------------------------------------------- Может кому либо будет полезно. Вопрос со сбоями индикатора решился уже очень давно. Перечитывал тему и вот наткнулся на свое же сообщение, решил ответить. Если кто столкнется с подобной проблемой, то пред выводом новой информации на индикатор делайте полную его инициализацию. За несколько лет работы, ни одного неадекватного текста на экране светодиодного индикатора.))
|
|
|
|
|
xvovanx |
Дата: Пт, 08.11.2019, 17:50 | Сообщение # 27 |
Группа:
Модераторы
Ранг:
Помогаю всем
Сообщений:
437
Замечания:
±
На сайте с 02.05.2013
Статус:
Offline
|
Цитата 555serg (  ) пред выводом новой информации на индикатор делайте полную его инициализацию. Помнится мне, что после инициализации дисплея выставляется пауза-задержка и при выводе динамичной информации эта задержка будет мешать. Я от глюков на дисплее спасаюсь его перезагрузкой по часикам (раз в час).
|
|
|
|