Вывод на LCD - Форум Picbasic.ru
Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 212»
Модератор форума: demanik 
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Вывод на LCD
Вывод на LCD
Broka Дата: Чт, 19.01.2012, 17:14  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 245
Репутация: 9   ±
Замечания:   ±
На сайте с 30.09.2009

Статус: Offline

Здравствуйте! Хотел узнать о такой проблеме......
Не давно изобрёл для себя, устройство 3В1 ( Часы,таймер, терморегулятор), но вот проблема в том, при выводе на LCD рядом со знаком С° всегда присутствует палочка ( \ ), ни как убрать программным путём не могу. Как её убрать , не приложу ума....., всё сделал вроде как правильно.. Подскажите , если кто с этим сталкивался!
LCD применён МЭЛТ - 16S2H c интерфейсом HD44780
Палочка это ещё ладно......., не могу разобраться с командой Branch читал здесь: http://terrarus.ucoz.ru/proton_....ch.html , всё вроде верно прописал в программе, в железяке всё меню прыгает по очереди, хотя переменая INDEX в команде Branch не меняется.
Пробовал просто инкриментировать переменую М , ни какого эфекта..
Прикрепления: Termo_House.zip(26Kb)


Наладчик КИП и А
Сообщение отредактировал Broka - Чт, 19.01.2012, 21:39
ЯНДЕКС Дата: 19.01.2012
anatol Дата: Чт, 19.01.2012, 21:52  |                                                                                                                Сообщение # 2
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 547
Репутация: 14   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

Зачем ?
Quote
Dec2 HOURDec2, MINUTES, Dec3 XM, Dec1 TempIND

и что это не вьехал -
Quote
Print At 2 ,1,Dec2 HOUR,TEXT,Dec2 MINUTES,$20,$20,$20,Dec1 TempIND,$20,"C",8,$20,$20
Print At 2 ,1,Dec2 HOUR,TEXT,Dec2 MINUTES,$20,$20,$20,Dec1 TempIND,$20,"C",0,$20,$20
Broka Дата: Чт, 19.01.2012, 23:36  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 245
Репутация: 9   ±
Замечания:   ±
На сайте с 30.09.2009

Статус: Offline

Print At 2 ,1,Dec2 HOUR,TEXT,Dec2 MINUTES,$20,$20,$20,Dec1 TempIND,$20,"C",8,$20,$20
Print At 2 ,1,Dec2 HOUR,TEXT,Dec2 MINUTES,$20,$20,$20,Dec1 TempIND,$20,"C",0,$20,$20
А помоему всё понятно... Hour, Minutes - это байтовые переменые и выводятся они на экран LCD. Text - это переменая - мигающее двоеточие между часами и минутами. TempIND - переменая типа Float, тоже выводится на экран (измереная температура)
Вот эта строка по моему не нужна cool Print At 2 ,1,Dec2 HOUR,TEXT,Dec2 MINUTES,$20,$20,$20,Dec1 TempIND,$20,"C",0,$20,$20, которая стоит после команды OWrite DQ, 1, [$CC,$44] это ведь МК дал команду старта измерения датчику DS18B20 ( мой косяк извеняюсь ) тем более там вместо 0 должна быть 8, для отображения правильного знака градуса
lumped
Но это не самое главное........, не могу победить Оператор Branch, вроде всё просто как 3 копейки, а не фига


Наладчик КИП и А
anatol Дата: Пт, 20.01.2012, 01:36  |                                                                                                                Сообщение # 4
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 547
Репутация: 14   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

Пока не сплю. "0" и "8" в каком виде должны быть представлены - десятичная, битовая, шестнадцатиричная
К примеру $20 - это пробел.
Dec2 HOUR - зачем декремент переменной HOUR и т.д. К чему вычисления при отображении . т.е. печати.
Branch после перехода не должен указывать на метку в которую вошел, иначе кольцо. также при памяти больше 2048 применяется BranchL
Broka Дата: Пт, 20.01.2012, 11:48  |                                                                                                                Сообщение # 5
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 245
Репутация: 9   ±
Замечания:   ±
На сайте с 30.09.2009

Статус: Offline

Только без обиды.......... Вы что меня проверяете?
Hour_ у нас байтовая переменая ( часы ) , а так как у нас байтовая переменая 0 - 255, что бы отобразить часы, нам надо написать DEC2, так как нам надо отобразить всего 2 цифры ( 00 - 23, часы ).
Quote (anatol)
Branch после перехода не должен указывать на метку в которую вошел, иначе кольцо. также при памяти больше 2048 применяется BranchL

Так там у меня такого и нет..


Наладчик КИП и А
anatol Дата: Пт, 20.01.2012, 14:46  |                                                                                                                Сообщение # 6
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 547
Репутация: 14   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

Quote (Broka)
Только без обиды.......... Вы что меня проверяете?

Ни в коем случае sad . Лезть в чужой код полностью лень, наверно, каждому. Так слегка посмотрел, что укололо глаза о том и спросил. Модель запустил и "палок" не увидел. Но в модели свой знакогенератор cool .
Поэтому и про DEC спросил.
А вот "знак градуса" - "8" - это я действительно не понял, по идее $99 должно быть
Вот здесь ваш контроллер http://www.gaw.ru/pdf/lcd/lcm/melt/char/MT-16S2H.pdf
на страницах 8, 9 - коды символов

Сообщение отредактировал anatol - Пт, 20.01.2012, 15:06
Broka Дата: Пт, 20.01.2012, 17:11  |                                                                                                                Сообщение # 7
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 245
Репутация: 9   ±
Замечания:   ±
На сайте с 30.09.2009

Статус: Offline

Я пробовал прописать в программе $99 ни чего не выходит.
Вот Вы пробовали загрузить проект? Всё работает? Так почему у меня в железе по очерёдно начинает все меню прыгать
по очереди...... ни как не могу догнать почему... 10 раз уже проверил


Наладчик КИП и А
anatol Дата: Пт, 20.01.2012, 23:45  |                                                                                                                Сообщение # 8
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 547
Репутация: 14   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

Извини пока нет сил разбираться. может за сбт вск посмотрю
Andriy76 Дата: Сб, 21.01.2012, 10:44  |                                                                                                                Сообщение # 9
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 239
Репутация: 10   ±
Замечания:   ±
На сайте с 06.04.2010

Статус: Offline

У Вас сделано так
U_hour:
Cls ---------------НЕ НАДО
If PLUS = 0 Then DelayMS 20:Inc HOUR
If HOUR > 23 Then HOUR = 0
If MINUS = 0 Then DelayMS 20:Inc MINUTES
If MINUTES >= 60 Then MINUTES = 0
Print At 1 ,1,$AB,$41,$43,$AE
Print At 2 ,1,Dec2 HOUR,":",Dec2 MINUTES
If MENU = 0 Then DelayMS 100:Cls:M = 2:GoTo U1_Tim_Vkl --- при переходах Вы очищаете . Зачем еще ?
DelayMS 300
Cls ---------НЕ НАДО
GoTo U_hour
Если сделать так то индикатор будет мигать в даной подпрограмме
Зачем очищать ЖКИ дважды в каждом цикле . Если делаю себе очищаю при переходах из программы в программу . А если на ЖКИ ничего не меняеться по размещению зачем очищать ?

Сообщение отредактировал Andriy76 - Сб, 21.01.2012, 10:46
Broka Дата: Сб, 21.01.2012, 11:13  |                                                                                                                Сообщение # 10
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 245
Репутация: 9   ±
Замечания:   ±
На сайте с 30.09.2009

Статус: Offline

Всё правильно........ cool в каждоим цикле очищать не требуется, пардон. На ЖК ничего не меняется по размещению..., это называется я тороплюсь, хочется по быстрее сделать. Всё исправлю.... по индикации всё понятно.
Не понятно с командой Branch, всё прописано в программе правильно в Proteus работает правильно, в железяке меню по очерёдно скачет, хотя по идее переменая М не должна инкриментироваться , если не нажата кнопка MENU или при выходе из любого раздела установки , изначально М = 0, значит при включении устройства программа доходя до команды Branch должна идти на метку main, а этого не происходит, начинает прыгать все разделы установки........,
странно как то... sad , как будто каждый раз к М прибавляется +1


Наладчик КИП и А
Сообщение отредактировал Broka - Сб, 21.01.2012, 11:18
brown Дата: Сб, 21.01.2012, 18:06  |                                                                                                                Сообщение # 11
Группа: Модераторы
Ранг:  Помогаю всем
Сообщений: 335
Репутация: 10   ±
Замечания:   ±
На сайте с 18.09.2007

Статус: Offline

Broka, похоже дребезг кнопки МЕНЮ.

Век живи - век учись! К концу жизни поймешь, что ничего не знаешь...
Broka Дата: Сб, 21.01.2012, 19:09  |                                                                                                                Сообщение # 12
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 245
Репутация: 9   ±
Замечания:   ±
На сайте с 30.09.2009

Статус: Offline

дело в том, что я отпаял все кнопки (хотел попробовать во обще без них), такая же ерунда, всё пляшет. Даже пробовал
вот так сделать вместо команды Branch M,[main,U_hour,U1_Tim_Vkl,U1_Tim_Vikl,U_Tem]
if M > 4 then M = 0
if M = 0 then goto main
if M = 1 then goto U_hour
if M = 2 then goto U1_Tim_Vkl
if M = 3 then goto U1_Tim_Vikl
if M = 4 then goto U_Tem
Всё в той же паре, всё также пляшет по очереди , так что дребезг контакта отпадает.
Попробовал переписать программу только для показа температуры....., всё отлично работает.
я просто никогда не работал с этим оператором Branch, вот попробовал..., ан нет ,не получается не фига.
Может в программе не правильно место для него выбрал, я уже не знаю...... cool
Прикрепления: Untitled.bas(7Kb)


Наладчик КИП и А
Сообщение отредактировал Broka - Сб, 21.01.2012, 19:30
brown Дата: Сб, 21.01.2012, 21:07  |                                                                                                                Сообщение # 13
Группа: Модераторы
Ранг:  Помогаю всем
Сообщений: 335
Репутация: 10   ±
Замечания:   ±
На сайте с 18.09.2007

Статус: Offline

Посмотрите мой давнишний проект, может чем-то поможет.
Прикрепления: TAVRC5_10.bas(26Kb)


Век живи - век учись! К концу жизни поймешь, что ничего не знаешь...
Broka Дата: Сб, 21.01.2012, 22:47  |                                                                                                                Сообщение # 14
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 245
Репутация: 9   ±
Замечания:   ±
На сайте с 30.09.2009

Статус: Offline

Спасибо.., я посмотрел. Принцип тот же.., значит у меня что то в железяке не правильно собрано, пойду смотреть. (хотя навряд ли, я редко ошибаюсь....

Добавлено (21.01.2012, 22.47.54)
---------------------------------------------
Всю плату просмотрел 33 раза, всё ОК! Что я в программе не правильно сделал ?


Наладчик КИП и А
Andriy76 Дата: Вс, 22.01.2012, 20:30  |                                                                                                                Сообщение # 15
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 239
Репутация: 10   ±
Замечания:   ±
На сайте с 06.04.2010

Статус: Offline

При работе в Протоне заметил глюк . Сделал вроде все правильно а не работает код . Переделывал код , чуть не на корню . Добавлял задержки перед сравнением . Так бывает angry
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Вывод на LCD
Страница 1 из 212»
Поиск: