Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 212»
Модератор форума: demanik 
Форум Picbasic.ru » Программирование МК » Proton PicBasic » USART передача данных от устройсва контроллру
USART передача данных от устройсва контроллру
Ethno Дата: Вс, 13.03.2016, 19:14  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 93
Репутация: 0   ±
Замечания:   ±
На сайте с 11.12.2012

Статус: Offline

При передачи в контроллер по USART все вроде работает, но код большой получается, если кто может помочь его причесать....
При нажатии кнопки на устройстве, оно отправляет такой код контроллеру: 0x65 0x00 0x02 0x00 0xff 0xff 0xff
Это соответствует таблице ASCII в Dec будет 101 0 2 0 255 255 255

Dim Z As Byte
Dim V As Byte
Dim T As Byte
Dim H As Byte
Dim P As Byte
Dim S As Byte
Dim C As Byte

Z=0
V=0
T=0
H=0
P=0
S=0
C=0

loop:
HSerIn 1000, loop, [Z, V, T, H, P, S, C]
If Z=101 And V=0 And T=2 And H=0 And P=255 And S=255 And C=255 Then GoTo main
DelayMS 200
GoTo loop
ЯНДЕКС Дата: 13.03.2016
xvovanx Дата: Вс, 13.03.2016, 23:54  |                                                                                                                Сообщение # 2
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 293
Репутация: 13   ±
Замечания:   ±
На сайте с 02.05.2013

Статус: Offline

А если сравнивать не все переменные Z, V, T, H, P, S, C, а взять и сравнивать их контрольную сумму. Будет одна переменная суммы и одно сравнение...и код лучше будет выглядеть.
Сообщение отредактировал xvovanx - Вс, 13.03.2016, 23:56
anatol Дата: Пн, 14.03.2016, 09:37  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 551
Репутация: 14   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

Цитата xvovanx ()
контрольную сумму
Контрольная из другой оперы. Проста сумма отпадает по причине от перемены мест слагаемых...( H=0 And P=255  эквивалентно H=255 And P=0).
Может сравнивать переменные в теле программы и выставлять бит в новой переменной условия If Z=101 And V=0 And T=2 And H=0 And P=255 And S=255 And C=255. Т.е. каждой переменной свой бит, и проверять эту переменную?
Цитата Ethno ()
но код большой получается
Код большой возможно из-за повторения сравнений. Может оптимальней сравнение выборкой по таблице - переменная, значение, эталон - результат запись бита.
AndrF Дата: Пн, 14.03.2016, 13:22  |                                                                                                                Сообщение # 4
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 159
Репутация: 3   ±
Замечания:   ±
На сайте с 03.02.2012

Статус: Offline

Там должна быть обработка кода получаемая от дисплея. Что-то вроде:

If P=255 And S=255 And C=255 Then
    ' Если получены символы завершения посылки
    Select Z
        Case 101
            ' Touch event return data
            Select V
                Case 0
                    ' Page 0
                    Select T
                        Case 0
                            ' ComponentID = 0
                            ... Ну и так далее
                        Case 1
                            ...
                    EndSelect
                Case 1
                    ...
            EndSelect
        Case ...
            ...
    EndSelect
EndIf
xvovanx Дата: Сб, 18.11.2017, 01:56  |                                                                                                                Сообщение # 5
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 293
Репутация: 13   ±
Замечания:   ±
На сайте с 02.05.2013

Статус: Offline

AndrF, разобрались с работой дисплея Nextion? Как передаете данные обратно на дисплей?
Matrix252005 Дата: Сб, 18.11.2017, 08:19  |                                                                                                                Сообщение # 6
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 682
Репутация: 36   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

Приятного времени суток!!!

xvovanx, я как раз сейчас изучаю такой экран. У меня NX8048T070 7". Пока подключил его к компу через PL-2303 и пробую с него/ В инете много про них написано... Но вот описание команд нет:
https://www.itead.cc/wiki....e_event

К МК еще не подключал.


THE TRUTH IS OUT THERE.

С уважением, Николай.
xvovanx Дата: Сб, 18.11.2017, 22:03  |                                                                                                                Сообщение # 7
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 293
Репутация: 13   ±
Замечания:   ±
На сайте с 02.05.2013

Статус: Offline

Я тоже 7" к умному дому приспособить хочу. В дисплее "красивую" прогу уже сотворил. Описаний команд маловато, но вполне достаточно, разобрался, изучая примеры. На днях получилось подключить к контроллеру и посылать данные, а вот обратно "к дисплею" как - нет информации, вот единственно что нашел- буду пробовать
Прикрепления: 0123379.png(34Kb)

Сообщение отредактировал xvovanx - Сб, 18.11.2017, 22:13
Matrix252005 Дата: Сб, 18.11.2017, 22:17  |                                                                                                                Сообщение # 8
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 682
Репутация: 36   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

Чтобы прочитать с экрана, нужно добавить "Print" в начале.
Может это уже видели, а может нет...
http://wiki.iarduino.ru/page/Nextion/


THE TRUTH IS OUT THERE.

С уважением, Николай.
xvovanx Дата: Вс, 19.11.2017, 17:17  |                                                                                                                Сообщение # 9
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 293
Репутация: 13   ±
Замечания:   ±
На сайте с 02.05.2013

Статус: Offline

С этим то я разобрался еще раньше. С дисплея числа передаются нормально, а вот с текстом заминочка. Если отсылаю, скажем, print "abcdef", то "смотрелкой Сом порта" вижу передачу "abcdef", а вот как заставить ПИК на своем дисплее 1602 это принятое отобразить не знаю, выходит ASCII код от текста в виде числа. Как вывести на экран текст, полученный с КОМ порта, кто подскажет?
Сообщение отредактировал xvovanx - Вс, 19.11.2017, 18:00
Matrix252005 Дата: Вс, 19.11.2017, 18:27  |                                                                                                                Сообщение # 10
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 682
Репутация: 36   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

Как я понял про этот экран (HMI Nextion), чтобы отослать экрану нужное, хватает, например:
b0.txt="TEXT"
чтобы прочесть с экрана, нужно:
Print b0.txt.
В ответ экран выдает:
0x4f 0x66 0x66 
что на норм язык "Off"

Но все это я пока делал в самой IDE экрана... Пока еще изучаю этот экран... пытаюсь понять его команды...
До МК пока еще руки не дошли... Просто, я сейчас изучаю СИ и пытаюсь на нем писать проги(напомню, я работаю с СТМами)....


THE TRUTH IS OUT THERE.

С уважением, Николай.
xvovanx Дата: Вс, 19.11.2017, 18:54  |                                                                                                                Сообщение # 11
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 293
Репутация: 13   ±
Замечания:   ±
На сайте с 02.05.2013

Статус: Offline

Нет, немного не так. Чтобы экран отослал данные, в свойствах его кнопки при нажатии пишем команду print... (у меня при нажатии отсылается величина переменной test и при каждом нажатии увеличивается).
Для передачи к экрану данных смотрим картинку 2. Скажем для текста: в ячейку текста экрана t0 впишется слово Привет. Для чисел: величина переменной экрана n0 станет равна значению X.
Прикрепления: 9618714.jpg(11Kb) · 7390106.jpg(10Kb) · 4258613.png(34Kb)

Сообщение отредактировал xvovanx - Вс, 19.11.2017, 18:56
Matrix252005 Дата: Вс, 19.11.2017, 20:42  |                                                                                                                Сообщение # 12
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 682
Репутация: 36   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

smile  Мы друг друга не поняли...
Я Вам говорил, про управления с компьютера... Я сейчас провел эксперимент с экраном, если Вы управляете с компьютера (МК), то Вы должны действовать как я писал выше... То есть, если Вы хотите прочесть что то с экрана, Вы должны написать в начале "Print...", если записать, то просто "...".
Сейчас я смог прочесть "надпись" кнопки (Button), значение текстового поля (Text), перейти с одной страницы на другую.


THE TRUTH IS OUT THERE.

С уважением, Николай.
xvovanx Дата: Вс, 19.11.2017, 20:52  |                                                                                                                Сообщение # 13
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 293
Репутация: 13   ±
Замечания:   ±
На сайте с 02.05.2013

Статус: Offline

А понятно, можно прочесть не нажимая кнопки на самом экране (без передачи от экрана). У меня тоже получилось с Пика, как и писал. Пока не получилось с Пика отослать русский текст, экран принимает кракозябы (на экране выбранна рус.кодировка-5).
Сообщение отредактировал xvovanx - Вс, 19.11.2017, 21:05
Matrix252005 Дата: Вс, 19.11.2017, 23:13  |                                                                                                                Сообщение # 14
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 682
Репутация: 36   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

У меня так же... Но вот что я обнаружил, когда посылаешь "Привет" с IDE Nextion, то она посылает:
"74 30 2E 74 78 74 3D 22 BF E0 D8 D2 D5 E2 22 ff ff ff" - значение в НЕХ.
А вот что посылает обычная терминилка::
"0x74 0x30 0x2E 0x74 0x78 0x74 0x3D 0x22 0xCF 0xF0 0xE8 0xE2 0xE5 0xF2 0x22 0xFF 0xFF 0xFF "
Смещение на 10... Пока еще не понял как это исправить, но... :))


THE TRUTH IS OUT THERE.

С уважением, Николай.
DAlexV Дата: Пн, Вчера, 10:09  |                                                                                                                Сообщение # 15
Группа: Модераторы
Ранг:  Разобрался
Сообщений: 692
Репутация: 17   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

Всем привет !!!!
Давно не заглядывал, были причины. Что касаемо описания на русском языке, то они есть. 
Вот пожалуйста !!!
От себя добавлю, экран действительно отличный !!! Пробовал и 7' и 2.4'. С процом состыковался на ура, причем в обе стороны. Самая вкусность этого дисплея в том что некоторые операции (математика, прорисовка элементов, подготовка данных к выводу на проц и прорисовка целых экранов можно делать с помощью скриптов которые очень похожи на Барсик). 
Из косяков(не знаю исправили или нет на данный момент) это только очень требовательный к синтаксису(пробелы).
Если кому потребуется, дайте знать, скину пример HMI c проекта.(несколько экранов, ввод информации, и вывод состояния).
Успехов  wink


Будьте оригинальны - не повторяйте чужих ошибок !!!!
Пишу только на Рыбе (SwordFish). Другую пищу не предлагать, на шерсть влияет :)
Форум Picbasic.ru » Программирование МК » Proton PicBasic » USART передача данных от устройсва контроллру
Страница 1 из 212»
Поиск: