реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> UART для ATtiny2313, Требуется помощь в понимание (CodeVisionAVR)
TamTam
сообщение Apr 3 2006, 11:12
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 293
Регистрация: 14-03-06
Пользователь №: 15 254



требуеться принемать через варт несколько байт, и в зависимости от того что пришло что то делать

вопрос: как лучше принять данные и потом сравнить их с тем что записано в МК.

Хочу чтото вроде АТ команд забомбить. (ты ему AT он те OK),

если моно поделитесь примером.
Go to the top of the page
 
+Quote Post
vet
сообщение Apr 3 2006, 12:48
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 550
Регистрация: 16-06-04
Из: Казань
Пользователь №: 32



Накапливаем пришедшие символы в буфере, пока не встретится код 13 (перевод строки). Код 10 (заполнение строки) игнорируем.
Сравниваем пришедшее с имеющимся набором команд поочерёдно, если совпало с чем - выполняем соотв. действие.
Стираем выполненную команду из буфера.

Следующим шагом логично будет организовать обработку передаваемых с командой параметров.


--------------------
Главная линия этого опуса ясна мне насквозь!
Go to the top of the page
 
+Quote Post
TamTam
сообщение Apr 3 2006, 14:25
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 293
Регистрация: 14-03-06
Пользователь №: 15 254



Цитата(vet @ Apr 3 2006, 16:48) *
Накапливаем пришедшие символы в буфере, пока не встретится код 13 (перевод строки). Код 10 (заполнение строки) игнорируем.
Сравниваем пришедшее с имеющимся набором команд поочерёдно, если совпало с чем - выполняем соотв. действие.
Стираем выполненную команду из буфера.

Следующим шагом логично будет организовать обработку передаваемых с командой параметров.



А можно примерчик кода,
и еще вопрос как лучше включить в генераторе прерывание по приходу или самлому из регистра байты выдергивать ???

Цитата(vet @ Apr 3 2006, 16:48) *
Накапливаем пришедшие символы в буфере, пока не встретится код 13 (перевод строки). Код 10 (заполнение строки) игнорируем.
Сравниваем пришедшее с имеющимся набором команд поочерёдно, если совпало с чем - выполняем соотв. действие.
Стираем выполненную команду из буфера.

Следующим шагом логично будет организовать обработку передаваемых с командой параметров.



А можно примерчик кода,
и еще вопрос как лучше включить в генераторе прерывание по приходу или самлому из регистра байты выдергивать ???
Go to the top of the page
 
+Quote Post
vet
сообщение Apr 3 2006, 14:46
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 550
Регистрация: 16-06-04
Из: Казань
Пользователь №: 32



Всё зависит от потребностей.
Если контроллер ничего не делает, кроме ожидания команд и реакции на них - незачем городить прерывания. То же относится к задаче, выполняемой под RTOS.
Если параллельно ожиданию команды выполняются другие вещи, занимающие процессорное время настолько, что способны вызвать потерю принятых символов - без прерываний по приёму символа не обойтись.

Код очень простой, напишите самостоятельно за пару минут, просто для разминки. Алгоритм я уже расписал.


--------------------
Главная линия этого опуса ясна мне насквозь!
Go to the top of the page
 
+Quote Post
ALexx
сообщение Apr 4 2006, 07:33
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 243
Регистрация: 22-09-04
Из: Burbach, Germany
Пользователь №: 704



В приложении - Исходник для работы с УАРТом.
Писано на CodeVision под МЕГА16, но переносится на ТИНИ2313(см. директивы в файле USART.с)


В основной программе в секции инициализации надо прописать следующие строки:

USART_AsyncInit(0,TXCIE | RXCIE);
USART_AsyncOpen(9600,CharLen_8,OneStop,NoParity); // Настройка и открытие порта


В основном цикле проверяете пришел ли пакет:
...
unsigned char MesLen;
....
....
if(MesLen=UART_ReceiveBuffer()){ // Пришел пакет(лежит в RxBuffer[])
... // обрабатываем пакет
...
// Далее - один из вариантов формирования и отправки ответа
sprintf(TxBuffer,"Module PW1=%d PW2=%d PW3=%d PW4=%d PW5=%d\r\n\0",PW[0],PW[1],PW[2],PW[3],PW[4]);
UART_SendBuffer(strlen(TxBuffer));


}

Это лишь один из множества вариантов работы с УАРТом. Экспериментируйте;-)
Прикрепленные файлы
Прикрепленный файл  USART.zip ( 2.3 килобайт ) Кол-во скачиваний: 81
 
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 15th July 2025 - 00:33
Рейтинг@Mail.ru


Страница сгенерированна за 0.01391 секунд с 7
ELECTRONIX ©2004-2016