| работа с уарт | 
| 
				
			 | 
| 
| Aleks8383 | Дата: Пятница, 25.05.2012, 11:04 | Сообщение # 1 |  | Группа: Проверенные Сообщений: 102 
 Статус: 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 |  | Группа: Проверенные Сообщений: 102 
 Статус: Offline | Aleks8383-83@mail.ru Пиши если что. 
 
 |  
 |  |  |  | 
| 
| trim | Дата: Понедельник, 23.07.2012, 00:21 | Сообщение # 10 |  | Группа: Проверенные Сообщений: 105 
 Статус: Offline | я так понял что в приложении программка которая разлогает изображение на бинарный код может этот код сохранять в тхт файл и думается мне вот его то и нужно как то впихнуть в уарт у кого какие мысли будут 
 
 |  
 |  |  |  | 
| 
| exersizze | Дата: Понедельник, 23.07.2012, 13:31 | Сообщение # 11 |  |   Группа: Администраторы Сообщений: 720 
 Статус: 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 |  
 |  |  |  |