работа с уарт
|
|
Aleks8383 | Дата: Пятница, 25.05.2012, 11:04 | Сообщение # 1 |
Группа: Проверенные
Сообщений: 104
Статус: Offline
| Подскажите как разбить данные приходящие на Уарт и забить их в переменные для дальнейшей работы с ними.На приведённых картинках видно что в контроллер приходит челая строка с данными ,а нужно из этого отсеять номер команды и подкоманды и естественно само значения этой команды(ВСD код).Интересует как именно отделить их и забить в переменные.Мне тут подказывали что нужно использовать inputbin но чтото толкового из этого не чего не получилось,как правельно работать с этой командой или как по другому можно разобрать данные подскажите п.ж.если несложно с кусочком кода. Зараннее спасибо.
|
|
| |
kip96 | Дата: Пятница, 25.05.2012, 19:28 | Сообщение # 2 |
Группа: Свой человек
Сообщений: 170
Статус: Offline
| Code $baud = 9600 $lib "lcd4.lbx" Config Lcdpin = Pin , Rs = Portb.0 , E = Portb.2 , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 Config Portd.6 = Output Set Portd.6 Config Lcd = 16 * 1a 'используем дисплей на 1 строчки по 16 знакомест в каждой Dim A(3) As Byte , B(10) As Byte Do Cls 'команда очистки дисплея
Lcd "CB" ; Chr(199) ; "3b" 'слово "связь" Printbin &H02 ; A(1) Delay
$timeout = 100000 ' таймаут на приём информации Inputbin B(1) ' принимаем и загружаем всё в "B" с первого по десятый ' If B(3) = &H06 Then ' если ответ(&H06) положительгый то Cls ' Lcd "Per.N " ; Bcd(b(5)) Lowerline ' выводим каждый бит на экран Lcd Bcd(b(6)) ; Bcd(b(7)) ; Bcd(b(8)) ; Bcd(b(9)) ' Wait 10 ' ждём 10 сек End If 'если ответ Loop Код не весь, но для Вас должно быть понятно.
|
|
| |
trim | Дата: Суббота, 21.07.2012, 23:46 | Сообщение # 3 |
Группа: Проверенные
Сообщений: 105
Статус: Offline
| а по падробнее
|
|
| |
kip96 | Дата: Воскресенье, 22.07.2012, 13:14 | Сообщение # 4 |
Группа: Свой человек
Сообщений: 170
Статус: Offline
| Что конкретно не понятно?
|
|
| |
trim | Дата: Воскресенье, 22.07.2012, 13:40 | Сообщение # 5 |
Группа: Проверенные
Сообщений: 105
Статус: Offline
| как ввести правильно несколько переменных и есть ли возможность реридачи более сложных файлов типа картинка видео
|
|
| |
trim | Дата: Воскресенье, 22.07.2012, 14:06 | Сообщение # 6 |
Группа: Проверенные
Сообщений: 105
Статус: Offline
| я вещь одну запустил лсд от сименса вот раскручиваю возможности неудобно каждый раз программировать долго почему то
|
|
| |
trim | Дата: Воскресенье, 22.07.2012, 15:25 | Сообщение # 7 |
Группа: Проверенные
Сообщений: 105
Статус: Offline
| Кто мне скажет кто подскажет что не верно что не так в чем зарыт здесь злой касяк
$regfile = "m128def.dat" $crystal = 8000000 $hwstack = 1028 $swstack = 1028 $framesize = 1028 $baud = 9600
'$lib "LCD-EPSONmy.LIB" '$lib "lcd-pcf8833my.lib" 'Nokia 6100 color display support только почему-то зеркально отображает $lib "LCD-SIEMENS_S65_LS020_256_W1.LBX" 'Siemens S65 LS020 color display support '$lib "LCD-EPSON_L2F50.LIB" 'Siemens S65 L2F50 color display support
Config Graphlcd = Color , Controlport = Portb , Cs = 0 , Rs = 7 , Scl = 1 , Sda = 2 , Reset = 6 Dim A(3) As Byte Dim B(16) As Byte Enable Interrupts Enable Urxc1
Do Cls 'команда очистки дисплея
Lcd "CB" ; Chr(199) ; "3b" 'слово "связь" Printbin &H02 ; A(1) Delay
$timeout = 100000 ' таймаут на приём информации Inputbin B(1) ' принимаем и загружаем всё в "B" с первого по десятый ' If B(3) = &H06 Then ' если ответ(&H06) положительгый то Cls ' Lcd "Per.N " ; Bcd(b(5)) Lowerline ' выводим каждый бит на экран Lcd Bcd(b(6)) ; Bcd(b(7)) ; Bcd(b(8)) ; Bcd(b(9)) ' Wait 10 ' ждём 10 сек End If 'если ответ Loop
пишет лэбл нот фаунд _LCD_CONTROL Я ПОКА НЕ ПРОШАРИЛ как это работает но что то где то на окраинах своего интеллекта существует понимание данного алгоритма нужна озвучка чьято помощ
|
|
| |
trim | Дата: Воскресенье, 22.07.2012, 15:27 | Сообщение # 8 |
Группа: Проверенные
Сообщений: 105
Статус: Offline
| и это алекс я про постоянное торчание в инете ,хотелось бы майломи обменяться так сказать для помощи онлайн а то времени не так много а жесть как хочется побыстрее освоить эту науку и творить творить творить если вы не против
|
|
| |
Aleks8383 | Дата: Воскресенье, 22.07.2012, 20:03 | Сообщение # 9 |
Группа: Проверенные
Сообщений: 104
Статус: Offline
| Aleks8383-83@mail.ru Пиши если что.
|
|
| |
trim | Дата: Понедельник, 23.07.2012, 00:21 | Сообщение # 10 |
Группа: Проверенные
Сообщений: 105
Статус: Offline
| я так понял что в приложении программка которая разлогает изображение на бинарный код может этот код сохранять в тхт файл и думается мне вот его то и нужно как то впихнуть в уарт у кого какие мысли будут
|
|
| |
exersizze | Дата: Понедельник, 23.07.2012, 13:31 | Сообщение # 11 |
Группа: Администраторы
Сообщений: 723
Статус: Offline
| Думаю стоит сперва разобраться с простейшего вида алгоритмами и командами, а потом само-собой все ясно станет.
|
|
| |
trim | Дата: Понедельник, 23.07.2012, 17:38 | Сообщение # 12 |
Группа: Проверенные
Сообщений: 105
Статус: Offline
| это я понимаю мне просто нужен конкретный пример и все дальше я сам .почти .как картинку можно вывести по байтно ?
|
|
| |
sherman | Дата: Понедельник, 23.07.2012, 22:23 | Сообщение # 13 |
Группа: Проверенные
Сообщений: 55
Статус: Offline
| Посмотри как выводится картинка из примера по работе с диспами от нокии3310, там как раз-таки выводится побайтно.
|
|
| |
trim | Дата: Вторник, 24.07.2012, 00:36 | Сообщение # 14 |
Группа: Проверенные
Сообщений: 105
Статус: Offline
| да спасибо я смотрел но чот недошло ладно еще копать буду
|
|
| |
ut3mk | Дата: Понедельник, 30.07.2012, 14:40 | Сообщение # 15 |
Группа: Пользователи
Сообщений: 1
Статус: Offline
| Aleks8383,
Обрати внимание на команды MID, Right, LEFT, VAL, STR
www.ut3mk.at.ua
Сообщение отредактировал ut3mk - Понедельник, 30.07.2012, 14:53 |
|
| |
trim | Дата: Понедельник, 30.07.2012, 17:41 | Сообщение # 16 |
Группа: Проверенные
Сообщений: 105
Статус: Offline
| привет, а что значит возвращает ? кому, куда
Left Возвращает несколько символов с начала строки.
Dim Instring as String*13 Dim Leftstring as String*3 Dim Pval as Integer Instring = "Bascom Cursus" Pval = 3 Leftstring = Left(Instring, Pval) 'Leftstring = "Bas"
как этим пользоваться это работа как я понимаю с пришедшими данными ? хоть откуда ,датчики ,энкодер ,в том числе и уарт ?
Сообщение отредактировал trim - Понедельник, 30.07.2012, 17:43 |
|
| |
sherman | Дата: Понедельник, 30.07.2012, 19:20 | Сообщение # 17 |
Группа: Проверенные
Сообщений: 55
Статус: Offline
| Вот видишь что получилось в переменной Leftstring после команды Left? Туда возвратилось 3 левых символа из пеерменной Instring. Очень удобные команды при работе со строковыми переменными.
|
|
| |
trim | Дата: Понедельник, 30.07.2012, 22:45 | Сообщение # 18 |
Группа: Проверенные
Сообщений: 105
Статус: Offline
| ага понял спасибо
|
|
| |
ssql | Дата: Пятница, 06.11.2015, 16:55 | Сообщение # 19 |
Группа: Проверенные
Сообщений: 7
Статус: Offline
| Приветствую! У меня задача: приходит по юарт пакет 42 байта, мне надо взять 26-й и записать в переменную.. Сложность как принять и как отделить.. Подскажите примером или советом)
Пример пакетов: AA 00 55 00 4E 57 2B 20 44 41 44 20 34 20 20 20 20 20 20 20 11 8C FF FF 0F 2C 07 06 81 00 5F 55 00 2A 13 22 04 07 0C 00 7A 08 AA 00 55 00 4E 57 2B 20 44 41 44 20 34 20 20 20 20 20 20 20 11 8C FF FF 0F 2C 07 06 81 00 5F 55 00 2A 13 22 04 07 0C 00 7A 08 AA 00 55 00 4E 57 2B 20 44 41 44 20 34 20 20 20 20 20 20 20 11 8C FF FF 0F 2C 07 06 81 00 5F 55 00 2A 13 22 04 07 0C 00 7A 08 AA 00 55 00 4E 57 2B 20 44 41 44 20 34 20 20 20 20 20 20 20 11 8C FF FF 0F 2C 07 06 81 00 5F 55 00 2A
Сообщение отредактировал ssql - Пятница, 06.11.2015, 16:56 |
|
| |