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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Нужна помощ с UART ATmega16, Подскажите в чем дело ?
Aesthete Animus
сообщение Aug 3 2008, 20:55
Сообщение #16


Местный
***

Группа: Свой
Сообщений: 222
Регистрация: 9-06-07
Пользователь №: 28 317



Пример срихтован из какого-то старого исходника для avr gcc, так что где-то могут быть опечатки, а может вообще не заработает под CV biggrin.gif

Код
#include ... // Я хз какие хидеры надо подключать в CV,

#define F_CPU 16000000UL
#define BAUD 38400 // Скорость COM порта

void uart_init(unsigned short ubrr)
{
    UBRRH = (unsigned char)(ubrr >> 8);
    UBRRL = (unsigned char)ubrr;
    UCSRB = (1 << RXEN)|(1 << TXEN);    
    UCSRC = (1 << URSEL)|(1 << UCSZ1)|(1 << UCSZ0);
}


uart_send(unsigned char b)
{
    while ( !(UCSRA & (1 << UDRE)) );
    UDR = b;
}

unsigned char uart_rcvr(void)
{
    while ( !(UCSRA & (1<<RXC)) );
    return UDR;
}


int main(void)
{
    unsigned char b;

    uart_init(F_CPU/16/BAUD - 1);

    for (;;)
    {
        b = uart_rcvr(); // Блокируемся и ждем символа
        uart_send(b); // Блокируемся и ждем пока символ отправится
    }

    return 0;
}
Go to the top of the page
 
+Quote Post
Costia
сообщение Aug 3 2008, 21:35
Сообщение #17


Участник
*

Группа: Новичок
Сообщений: 24
Регистрация: 23-06-08
Пользователь №: 38 507



одним словом код странный проще самому изобразить ... напиши плиз как ты реализуеш отправку какогонебуд сообщения по uart, а лучше какуюниебуд инфу
Go to the top of the page
 
+Quote Post
Aesthete Animus
сообщение Aug 3 2008, 22:52
Сообщение #18


Местный
***

Группа: Свой
Сообщений: 222
Регистрация: 9-06-07
Пользователь №: 28 317



Ну во первых, о каком сообщении идет речь? RS232 - байт-ориентированный интерфейс. Вы можите послать байт, можите послать последовательность (независимых байтов), можите сами порезат это на пакеты и слать "сообщения". Главное что нужно иметь - это функция посылки/ приема одного байта. У меня это uart_recv/uart_send. Дальше, если хотим послать буфер, то в простейшем случае делаем так:

Код
void uart_write(void *vbuffer, size_t size)
{
    register unsigned char *buffer = (unsigned char*)buffer;
    
    while (size--)
    {
        uart_send(*buffer);
        buffer++;
    }
}

int
main (void)
{
    ...
    char message[] = "Hello, world\n";
    
    uart_write(message, sizeof(message)); // message отводится на стадии компиляции,
                                                             // поэтому sizeof здесь допустимо использовать.
    ...
}


В Си есть такая замечательная функция как printf - незаменимая вещь при отладке. Разберитесь, как ее использовать с вашим компилятором. Заодно, покурите доки на то, что вообще такое RS232 и как он работает. В общем, RTFM...
Go to the top of the page
 
+Quote Post
Costia
сообщение Aug 5 2008, 18:42
Сообщение #19


Участник
*

Группа: Новичок
Сообщений: 24
Регистрация: 23-06-08
Пользователь №: 38 507



Уважаемые тут возник такой момент что я подумал а вдруг avr123 пиздеж и провакация и сделал все в лучших традициях этой статьи
http://www.pcports.ru/articles/avr6.php
и что вы думает все заработало ... но вот суть вопроса . в программе Terminal v1.9b все работает как и обещали а вот в программе LookRS232 & COMVS нефига не работает тоесть не эха не сообщения ... чем это может быть вызвано ?
Go to the top of the page
 
+Quote Post
Aesthete Animus
сообщение Aug 5 2008, 19:30
Сообщение #20


Местный
***

Группа: Свой
Сообщений: 222
Регистрация: 9-06-07
Пользователь №: 28 317



Цитата(Costia @ Aug 5 2008, 22:42) *
...чем это может быть вызвано ?

Это скорее всего связано с игнорированием Вами официальной документации, а также с поиском готовых решений вместо создания своих! К тому же, пример http://www.pcports.ru/articles/avr6.php сделан по меньшей мере безграмототно.
Go to the top of the page
 
+Quote Post
Costia
сообщение Aug 5 2008, 20:14
Сообщение #21


Участник
*

Группа: Новичок
Сообщений: 24
Регистрация: 23-06-08
Пользователь №: 38 507



Дело в том что я глубоко убежден что многие вещи нельзя преодалеть с прышка а следовательно если действовать по шагова то надо разобратся с железом и проверить его роботоспособность другова варианта кроме как использования чужова кода я не вижу !
Go to the top of the page
 
+Quote Post
Aesthete Animus
сообщение Aug 5 2008, 20:32
Сообщение #22


Местный
***

Группа: Свой
Сообщений: 222
Регистрация: 9-06-07
Пользователь №: 28 317



Цитата(Costia @ Aug 6 2008, 00:14) *
...другова варианта кроме как использования чужова кода я не вижу !

Другой вариант - читать даташиты, Application Notes.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 5 2008, 20:40
Сообщение #23


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Costia @ Aug 5 2008, 22:14) *
Дело в том что...

Модератор:
Дело в том, что на форуме принят русский язык общения. Не сочтите за труд придерживаться хоть сколь-нибудь близких к литературному русскому норм правописания.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Costia
сообщение Aug 5 2008, 20:48
Сообщение #24


Участник
*

Группа: Новичок
Сообщений: 24
Регистрация: 23-06-08
Пользователь №: 38 507



НАсчет официальной документации .. я буду вам благодарен если поделитесь такой . енглиш знаю только азы поэтому дш на енгле читать затруднительно .

Модератор . Я учту ваши замечания .
Go to the top of the page
 
+Quote Post
Aesthete Animus
сообщение Aug 5 2008, 20:56
Сообщение #25


Местный
***

Группа: Свой
Сообщений: 222
Регистрация: 9-06-07
Пользователь №: 28 317



Во-первых, http://atmel.com/dyn/resources/prod_documents/doc2466.pdf
Во-вторых, здес много полезного http://atmel.com/dyn/products/app_notes.asp?family_id=607
В-третьих, я лично не встречал хороших переводов даташитов. Да и не нужно это, доки пишутся простым техническим языком - достаточно элементарных знаний языка и электронного словаря под рукой.
Go to the top of the page
 
+Quote Post

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

 


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


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