AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR... |
19.04.2013, 15:02
|
|
Гражданин KAZUS.RU
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
|
Re: Программирование AVR, FUSE и все что с этим связано.
Ждем текстовую строку из UART, если в конце строки "OK" - выходим из ожидания
В output текстовая строка.
микроси/паскалем не пользуюсь (давно на пиках пробовал) могу и ошибаться
|
|
|
|
19.04.2013, 15:12
|
|
Временная регистрация
Регистрация: 04.02.2013
Сообщений: 78
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Программирование AVR, FUSE и все что с этим связано.
Большое спасибо!!!
|
|
|
|
19.04.2013, 20:42
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: Программирование AVR, FUSE и все что с этим связано.
Сообщение от ua3rad
|
Только я не пойму что записывается в переменную output и зачем нужна 'Ok'
|
С библиотеками микропаскаля не знаком, но разве ничего не говорит этот комментарий - " reads text until 'OK' is found"? Да и " что записывается в переменную" странный вопрос - много ли там переменных?
__________________
There's always more than one way to skin a cat.
|
|
|
|
20.04.2013, 08:54
|
|
Временная регистрация
Регистрация: 04.02.2013
Сообщений: 78
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Программирование AVR, FUSE и все что с этим связано.
Я просто не совсем понял комментарии в приведенном примере
|
|
|
|
20.04.2013, 12:40
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: Программирование AVR, FUSE и все что с этим связано.
Дык, прямо так и написано - "читает текст, пока не встретит "ОК"
__________________
There's always more than one way to skin a cat.
|
|
|
|
21.04.2013, 07:54
|
|
Временная регистрация
Регистрация: 04.02.2013
Сообщений: 78
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Программирование AVR, FUSE и все что с этим связано.
Весь этот текст записывает в переменную output и потом передаем обратно. Кол-во попыток для чтения 10. Я Все правильно понял или нет?
|
|
|
|
21.04.2013, 08:47
|
|
Гражданин KAZUS.RU
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
|
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 (выход) / / возвращает текст
}
} |
|
|
|
|
21.04.2013, 09:23
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,092
Сказал спасибо: 2,566
Сказали Спасибо 11,900 раз(а) в 5,973 сообщении(ях)
|
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 - защита от зависания в чтении. Если в течение этого количества байтов не получили "ОК" - выход. Это число должно быть не больше размера массива для приема - еще одна защита. А что по ссылке и в переводе?
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
21.04.2013, 10:47
|
|
Гражданин KAZUS.RU
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
|
Re: Программирование AVR, FUSE и все что с этим связано.
Автор перевода - Гугл переводчик
Может так лучшее:
Attempts: определяет число принятых знаков, в которых ожидается последовательность Delimiter. Если Attempts будут установлены в 255, то эта функция будет непрерывно пытаться обнаружить последовательность Delimiter.
Attempts - Попытки
Delimiter - Разделитель
Вообще лучше бы написать самому такую функцию - если на USART ничего не придет - зависнем навсегда. А так проверить таймер - вышло время - на выход с алярмом (например зажечь красный светодиод)
алярм: устар. тревога ◆*Се вчора був легкомисний, сліпий алярм хоч не зовсім безпідставний… (c)Іван Франко
Последний раз редактировалось oleg110592; 21.04.2013 в 11:00.
|
|
|
|
21.04.2013, 11:13
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,092
Сказал спасибо: 2,566
Сказали Спасибо 11,900 раз(а) в 5,973 сообщении(ях)
|
Re: Программирование AVR, FUSE и все что с этим связано.
Сообщение от oleg110592
|
Вообще лучше бы написать самому такую функцию - если на USART ничего не придет - зависнем навсегда.
|
Я проверяю "заполненность" буфера и, если кол-во принятого меньше необходимого, просто занимаюсь другими делами. А принимать лучше не побайтно, а в буфер. У CV, кстати, это в стандарте, считаю это правильным - ничего не потеряешь, да и принимать пакет проще. Наткнулся на начало пакета, в буфере полный пакет - разбирай на здоровье!
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 03:23.
|
|