роботы
робототехника
микроконтроллеры
Главная
Как сделать робота
Новости
Спорт
Статьи
Wiki
Форум
Downloads
Ссылки
Контакты  


 Страниц (1): [1]   

> Описание: Библиотека для упрощения роботы с UART
Linch
Отправлено: 05 Июня, 2012 - 12:03:28
Post Id



Рядовой


Сообщений всего: 5
Дата рег-ции: Май 2012  





Здравствуйте! Недавно начал увлекаться микроконтроллерами, а именно их программированием. На данный момент работаю только в симуляторах (Proteus, VMlab и т. д.), но в скором будущем перейду на реальное железо.Тем не менее, подумал что мне очень понадобится разные библиотеки, для упрощения роботы с МК, не работать же всегда через регистры (на данный момент пишу на чистом Си, компилятор WinAVR). Начал я штурмовать UART (Универсальный Асинхронный Приемо/Передатчик) в народе называемый RS-232 или СOM, так как он будет очень полезен для отладки программ, и вообще Я ориентирован на робототехнику для меня это очень полезная штука! Если купить радио-модули можно дистанционно управлять роботом отправлять разную информацию на ПК и много разных вкусностей. Очень бы хотелось знать как библиотека поведет себя в Реальных Условиях, если вам не лень прошу протестировать ее и сообщить мне о результатах. Приведу простой пример работы с ней (некоторые функций очень похожи на Паскаливские :-)
CODE:

#include <avr/io.h> // стандартные библиотеки
#include <util/delay.h>
#include "uart_driver.c" // собственно моя библиотечка

#define F_CPU 1000000UL // частота МК
#define MAX_LINE_LENGHT 40 // макрос определения максимальной длины строки ввода/вывода

int main(void)
{
char name[MAX_LINE_LENGHT]; // строка в которой будет храниться имя пользователя
unsigned int delete; // метка которое указывает сколько по что удалять

uart_init(9600); // в качестве параметра функция принимает //бауд-рейт
uart_write("UART INIT COMPLET...\r"); // выводим сообщение об успешной инициализаций
uart_write("START WHILE!"); // начало главного цикла
delete = cSend; // сSend – счетчик отправленных символов, здесь мы вставляем //метку которая указывает по что удалять
while (1)
{
uart_write("\rHellow! My name is Linch! What you the name? "); // Привет! Меня зовут Линч! Как тебя зовут (перевод)
uart_readln(name); // cохраняем имя в строке name (после ввода имени нужно //нажать enter)
uart_write(name); uart_write(" it's cool name! \r");
uart_wait("Plees press enter...\r", '\r'); // Выводим сообщение и ждем
//нажатия клавиши (в данном случае enter'a)
for (int i = 1; i <= 3; i++)
{
uart_write_int(i); uart_putc('\!');
_delay_ms(1000);
uart_write("\b\b");
}
uart_write("\rRESTART WHILE!");
_delay_ms(1000);
uart_clr(delete);
}
return 0;
}

Постоянные ссылки:

Вот такие проги Улыбка. В будущем планирую создать библиотеки для каждого модуля (АЦП, ШИМ, Таймеры, SPI и т.д. и т.п.). Все вопросы, пожелания, предложения, (жалобы!?) прошу отправлять в ящик  sciencefan@yandex.com, или пишите в комментариях. Весь код является полностью открытым(Open Source, однако Улыбка. Код хорошо комментирован, полное описание находится в самом файле библиотеки. Если есть идей что можно добавить, убрать, оптимизировать пишите вместе и обсудим. При копирование/распространений прошу указывать автора (то есть меня). С уважением Савчук Александр…
(Добавление)
Прошу извинить за некрасивое форматирование кода. В исходниках все красиво :-)
Скачать файл: test.rar
Скачан раз: 212

(Отредактировано автором: 05 Июня, 2012 - 12:08:03)

 
 Top
Роботов
Отправлено: 05 Июня, 2012 - 13:18:30
Post Id



Гуру


Сообщений всего: 1347
Дата рег-ции: Июнь 2011  





Linch пишет:
Начал я штурмовать UART (Универсальный Асинхронный Приемо/Передатчик) в народе называемый RS-232 или СOM

Немного не так.
COM и UART отличаются как минимум уровнями сигналов, я уже не говорю о том что в СОМ-порту есть кроме приема и передачи ещё и служебные сигналы.
Ну это так, для сведения. Подмигивающий
 
 Top
Linch
Отправлено: 05 Июня, 2012 - 13:51:25
Post Id



Рядовой


Сообщений всего: 5
Дата рег-ции: Май 2012  





Роботов пишет:
Linch пишет:
Начал я штурмовать UART (Универсальный Асинхронный Приемо/Передатчик) в народе называемый RS-232 или СOM

Немного не так.
COM и UART отличаются как минимум уровнями сигналов, я уже не говорю о том что в СОМ-порту есть кроме приема и передачи ещё и служебные сигналы.
Ну это так, для сведения. Подмигивающий

Ну да, вы полностью правы! Ну я думаю идея понятна!
 
 Top
cjA
Отправлено: 13 Июня, 2012 - 03:21:07
Post Id



Генерал


Сообщений всего: 3291
Дата рег-ции: Янв. 2010  





понятна.
это прошлый век.
боюсь что уже юсб (над которым бьюсь) -прошлый век.

Оставте уарт только если два МК должны будут взаимодействовать и переходите на юсб, если нужна связь с компом. или блютуз. или вайфай. или уже наверное никто не знает что, но только не тратьте время на СОМ или уарт. (хотя уарт по технологии вечен)
 
 Top
Страниц (1): [1]
« Делимся опытом »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 





Powered by Exclusive Bulletin Board
ExBB FM 1.0 RC1 Smiles by Fool from Foolstown