Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR...

 
Опции темы
Непрочитано 19.04.2013, 15:02  
oleg110592
Гражданин KAZUS.RU
 
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
oleg110592 на пути к лучшему
По умолчанию Re: Программирование AVR, FUSE и все что с этим связано.

Ждем текстовую строку из UART, если в конце строки "OK" - выходим из ожидания
В output текстовая строка.
микроси/паскалем не пользуюсь (давно на пиках пробовал) могу и ошибаться
Реклама:
oleg110592 вне форума  
Непрочитано 19.04.2013, 15:12  
ua3rad
Временная регистрация
 
Регистрация: 04.02.2013
Сообщений: 78
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ua3rad на пути к лучшему
По умолчанию Re: Программирование AVR, FUSE и все что с этим связано.

Большое спасибо!!!
ua3rad вне форума  
Непрочитано 19.04.2013, 20:42  
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Программирование AVR, FUSE и все что с этим связано.

Сообщение от ua3rad Посмотреть сообщение
Только я не пойму что записывается в переменную output и зачем нужна 'Ok'
С библиотеками микропаскаля не знаком, но разве ничего не говорит этот комментарий - "reads text until 'OK' is found"? Да и "что записывается в переменную" странный вопрос - много ли там переменных?
__________________
There's always more than one way to skin a cat.
tempora вне форума  
Непрочитано 20.04.2013, 08:54  
ua3rad
Временная регистрация
 
Регистрация: 04.02.2013
Сообщений: 78
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ua3rad на пути к лучшему
По умолчанию Re: Программирование AVR, FUSE и все что с этим связано.

Я просто не совсем понял комментарии в приведенном примере
ua3rad вне форума  
Непрочитано 20.04.2013, 12:40  
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Программирование AVR, FUSE и все что с этим связано.

Дык, прямо так и написано - "читает текст, пока не встретит "ОК"
__________________
There's always more than one way to skin a cat.
tempora вне форума  
Непрочитано 21.04.2013, 07:54  
ua3rad
Временная регистрация
 
Регистрация: 04.02.2013
Сообщений: 78
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ua3rad на пути к лучшему
По умолчанию Re: Программирование AVR, FUSE и все что с этим связано.

Весь этот текст записывает в переменную output и потом передаем обратно. Кол-во попыток для чтения 10. Я Все правильно понял или нет?
ua3rad вне форума  
Непрочитано 21.04.2013, 08:47  
oleg110592
Гражданин KAZUS.RU
 
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
oleg110592 на пути к лучшему
По умолчанию Re: Программирование AVR, FUSE и все что с этим связано.

Все ж разжевано: http://www.mikroe.com/download/eng/d...artx_read_text
перевод корявый:
Код:
Чтение символов, полученных через UART, пока последовательность разделителей не обнаружено. Читать последовательность хранится в параметре output ; разделитель последовательность хранится в параметр delimiter .

Это блокирующий вызов: последовательность разделителя ожидается, в противном случае процедура выхода (если разделитель не найден).

Параметры:

Output: полученные текстовые
Delimiter: последовательность символов, которая определяет в конце строки получено
Attempts: определяет число полученных символов, в котором Delimiter последовательность не ожидается. Если Attempts на 255, эта подпрограмма будет постоянно пытаться обнаружить Delimiter последовательности.
Это Групповая функция, которая использует активный модуль UART предварительно активированного UART_Set_Active рутины.

Требуется	
HW UART модуля должны инициализировать и связи создана перед использованием этой функции. См. UARTx_Init .

Пример	
Прочитайте текст, пока последовательность "OK" не получен, и отправить обратно то, что было получено:

 UART_Init (4800) / / инициализации модуля UART1
 Delay_ms (100);

 в то время как (1) {
   если (UART_Data_Ready () == 1) {/ / если данные получены 
     UART_Read_Text (выход, "OK", 10); / / не читает текст, пока 'OK' находится
     UART_Write_Text (выход) / / возвращает текст 
  }
 }
oleg110592 вне форума  
Непрочитано 21.04.2013, 09:23  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,092
Сказал спасибо: 2,566
Сказали Спасибо 11,900 раз(а) в 5,973 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Программирование AVR, FUSE и все что с этим связано.

Сообщение от oleg110592 Посмотреть сообщение
Все ж разжевано: http://www.mikroe.com/download/eng/d...artx_read_text
перевод корявый:
Код:
Чтение символов, полученных через UART, пока последовательность разделителей не обнаружено. Читать последовательность хранится в параметре output ; разделитель последовательность хранится в параметр delimiter .

Это блокирующий вызов: последовательность разделителя ожидается, в противном случае процедура выхода (если разделитель не найден).

Параметры:

Output: полученные текстовые
Delimiter: последовательность символов, которая определяет в конце строки получено
Attempts: определяет число полученных символов, в котором Delimiter последовательность не ожидается. Если Attempts на 255, эта подпрограмма будет постоянно пытаться обнаружить Delimiter последовательности.
Это Групповая функция, которая использует активный модуль UART предварительно активированного UART_Set_Active рутины.

Требуется	
HW UART модуля должны инициализировать и связи создана перед использованием этой функции. См. UARTx_Init .

Пример	
Прочитайте текст, пока последовательность "OK" не получен, и отправить обратно то, что было получено:

 UART_Init (4800) / / инициализации модуля UART1
 Delay_ms (100);

 в то время как (1) {
   если (UART_Data_Ready () == 1) {/ / если данные получены 
     UART_Read_Text (выход, "OK", 10); / / не читает текст, пока 'OK' находится
     UART_Write_Text (выход) / / возвращает текст 
  }
 }
Не стал разбираться - кто автор западно-китайского текста, но он сбивает с панталыку. "10" - Attempts - защита от зависания в чтении. Если в течение этого количества байтов не получили "ОК" - выход. Это число должно быть не больше размера массива для приема - еще одна защита. А что по ссылке и в переводе?
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
Непрочитано 21.04.2013, 10:47  
oleg110592
Гражданин KAZUS.RU
 
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
oleg110592 на пути к лучшему
По умолчанию Re: Программирование AVR, FUSE и все что с этим связано.

Автор перевода - Гугл переводчик
Может так лучшее:
Attempts: определяет число принятых знаков, в которых ожидается последовательность Delimiter. Если Attempts будут установлены в 255, то эта функция будет непрерывно пытаться обнаружить последовательность Delimiter.
Attempts - Попытки
Delimiter - Разделитель

Вообще лучше бы написать самому такую функцию - если на USART ничего не придет - зависнем навсегда. А так проверить таймер - вышло время - на выход с алярмом (например зажечь красный светодиод)
алярм: устар. тревога ◆*Се вчора був легкомисний, сліпий алярм хоч не зовсім безпідставний… (c)Іван Франко

Последний раз редактировалось oleg110592; 21.04.2013 в 11:00.
oleg110592 вне форума  
Непрочитано 21.04.2013, 11:13  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,092
Сказал спасибо: 2,566
Сказали Спасибо 11,900 раз(а) в 5,973 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Программирование AVR, FUSE и все что с этим связано.

Сообщение от oleg110592 Посмотреть сообщение
Вообще лучше бы написать самому такую функцию - если на USART ничего не придет - зависнем навсегда.
Я проверяю "заполненность" буфера и, если кол-во принятого меньше необходимого, просто занимаюсь другими делами. А принимать лучше не побайтно, а в буфер. У CV, кстати, это в стандарте, считаю это правильным - ничего не потеряешь, да и принимать пакет проще. Наткнулся на начало пакета, в буфере полный пакет - разбирай на здоровье!
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
FAQ (ЧаВО) по PROTEUS для начинающих и не только dosikus Proteus 221 07.03.2024 22:45


Часовой пояс GMT +4, время: 03:23.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot