| 
				
				работа с уарт
				 | 
				
			  | 
| 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  |  
 
 |   | 
  |    |