Помогите с UART

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

Re: Помогите с UART

Сообщение AlexNail » 30 мар 2011, 17:09

dccharacter писал(а):Пример по ссылке, которую тебе лень читать:

Код: Выделить всё
#include <p24fj128ga010.h>
#define DELAY  16000
main()
{
// инициализация управляющих регистров
TRISA = 0xff00;     // Выводы 0..7 порта PORTA настраиваем как выходы
T1CON = 0x8030;     // TMR1 включен, предделитель 1:256, Tclk/2

// главный цикл приложения
while(1)
{
   // 1. Включаем выводы 0-7 и ждём 1/4 секунды
   PORTA = 0xff;
   TMR1 =  0;          // обнуляем счётчик
   while (TMR1 < DELAY) { } // просто ждём

   // 2. Выключаем все выводы и ждём 1/4 секунды
   PORTA = 0x00;
   TMR1 =  0;            // обнуляем счётчик
   while ( TMR1 < DELAY) { } // просто ждём

  } // главный цикл
} // main

мне не лень читать, просто к моей задаче это не сильно имеет отношение, я в этом вопросе не могу разобраться, а еще
дополнительная инфа меня совсем запутает.
AlexNail
 
Сообщения: 31
Зарегистрирован: 21 мар 2011, 17:06
Откуда: АНАПА

Re: Помогите с UART

Сообщение dccharacter » 30 мар 2011, 17:16

Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: Помогите с UART

Сообщение AlexNail » 30 мар 2011, 18:33

Вот кусок кода, который не хочет компилироваться, не могу понять чего не хватает. По идее при этом он должен
работать (так написано в ДШ) принимать и отсылать данные.
Код: Выделить всё
void main(void)
{
        unsigned char USART_R(void) //№1
           
            {
                While(!(UCSRA&(1<<RXC)));
                return UDR;
            }

        void USART_T(unsigned char data) //№2
           
            {
                While(!(UCSRA&(1<<UDRE)));
                UDR=data;
            }           

после компиляции выдает 2 ошибки:
declaration syntax error (строка №1)
must declare first in block (строка №2)
AlexNail
 
Сообщения: 31
Зарегистрирован: 21 мар 2011, 17:06
Откуда: АНАПА

Re: Помогите с UART

Сообщение dccharacter » 30 мар 2011, 19:43

Ты располагаешь объявление одной функции внутри другой. Почитай учебник по Си или курс proavr.narod.ru
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: Помогите с UART

Сообщение AlexNail » 30 мар 2011, 23:21

dccharacter писал(а):Ты располагаешь объявление одной функции внутри другой. Почитай учебник по Си или курс proavr.narod.ru

Да? Так вроде в даташит написано. Как правильно?
AlexNail
 
Сообщения: 31
Зарегистрирован: 21 мар 2011, 17:06
Откуда: АНАПА

Re: Помогите с UART

Сообщение dccharacter » 31 мар 2011, 00:02

в даташите не может быть написано как правильно объявлять функции. Это может быть написано в учебнике по Си или на сайте proavr.narod.ru
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: Помогите с UART

Сообщение AlexNail » 31 мар 2011, 00:09

Так помоги разобраться, я же не просто так спрашиваю, у меня не получаеться.
AlexNail
 
Сообщения: 31
Зарегистрирован: 21 мар 2011, 17:06
Откуда: АНАПА

Re: Помогите с UART

Сообщение dccharacter » 31 мар 2011, 00:19

AlexNail писал(а):Так помоги разобраться, я же не просто так спрашиваю, у меня не получаеться.

Так я и стараюсь помочь, изо всех сил стараюсь донести, что лучше день потерять, потом за пять минут долететь! Т.е. почитать учебник по Си или сайт proavr.narod.ru.
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: Помогите с UART

Сообщение AlexNail » 31 мар 2011, 00:30

dccharacter писал(а):
AlexNail писал(а):Так помоги разобраться, я же не просто так спрашиваю, у меня не получаеться.

Так я и стараюсь помочь, изо всех сил стараюсь донести, что лучше день потерять, потом за пять минут долететь! Т.е. почитать учебник по Си или сайт proavr.narod.ru.

прочитал, не один раз, не могу понять и все. Если не хочешь помочь, не трать время на болтавню.
AlexNail
 
Сообщения: 31
Зарегистрирован: 21 мар 2011, 17:06
Откуда: АНАПА

Re: Помогите с UART

Сообщение Radist » 31 мар 2011, 06:24

Ну я примерно так и предполагал: на курс лекций ТС уже отправили. Но он упорствует: я все прочитал и нифига не понял, сделайте наконец за меня, а не болтайте. Вывод прост: ТС не хочет учиться. А ведь вся инфа перед ним: действительно, в даташитах на авр есть инициализация, прием и передача как на асме, так и на Си. Интересно чем дело кончится: какой-нибудь добряк не выдержит и напишет ему код / ТС соберет силы и разберется / тема завянет.

ЗЫ. Когда я в далеком студенчестве разбирался с уартом, у меня тоже не сразу заработало. Но я разобрался за выходные сам. Тогда интернет был редкостью, у меня был только даташит, терминалка, комп, руки и голова. Удачи.
Аватара пользователя
Radist
 
Сообщения: 2254
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: Помогите с UART

Сообщение avr123.nm.ru » 31 мар 2011, 09:19

AlexNail писал(а):я и прошу пример кода, для дальнейшего изучения и пробы. Спасибо.


Пример краткого курса по AVR - www.proavr.narod.ru/z5.htm - использование UART в AVR - www.proavr.narod.ru/z4.htm
Читайте !
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

Re: Помогите с UART

Сообщение AlexNail » 31 мар 2011, 13:54

Radist писал(а):Ну я примерно так и предполагал: на курс лекций ТС уже отправили. Но он упорствует: я все прочитал и нифига не понял, сделайте наконец за меня, а не болтайте. Вывод прост: ТС не хочет учиться. А ведь вся инфа перед ним: действительно, в даташитах на авр есть инициализация, прием и передача как на асме, так и на Си. Интересно чем дело кончится: какой-нибудь добряк не выдержит и напишет ему код / ТС соберет силы и разберется / тема завянет.

ЗЫ. Когда я в далеком студенчестве разбирался с уартом, у меня тоже не сразу заработало. Но я разобрался за выходные сам. Тогда интернет был редкостью, у меня был только даташит, терминалка, комп, руки и голова. Удачи.

В том то все и дело, что "курс лекции" (который был прочитан, не один раз) основан тоже на примере, и если я его использую, то ничего не получаеться, поэтому я и пытаюсь разобраться НА СВОИХ конкретных примерах. А то что Вы смогли сами разобраться, вам +. Может я не могу пока правильно сформулировать свой вопрос, поэтому и прошу пример КОДа, может это мне поможет или что то в этом роде. И потом вместо помощи я слышу одни упреки (для чего тогда этот форум?).
Огромное спасибо авр123, у него хороший курс, но многие моменты из это курса я понял, а что то нет. И те вопросы которые у меня возникают, я и пытаюсь разобрать.
И не думайте что я не ЧИТАЮ. Как раз наоборот.
AlexNail
 
Сообщения: 31
Зарегистрирован: 21 мар 2011, 17:06
Откуда: АНАПА

Re: Помогите с UART

Сообщение dccharacter » 31 мар 2011, 14:02

НУ ТАК ЧИТАЙ: let me google that for you: attiny2313 uart example первая же ссылка
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: Помогите с UART

Сообщение AlexNail » 31 мар 2011, 14:36

dccharacter писал(а):НУ ТАК ЧИТАЙ: let me google that for you: attiny2313 uart example первая же ссылка

А ты сам смотрел, что там? то что там есть не работает!!! и непонятно как должно работать!
AlexNail
 
Сообщения: 31
Зарегистрирован: 21 мар 2011, 17:06
Откуда: АНАПА

Re: Помогите с UART

Сообщение dccharacter » 31 мар 2011, 14:55

Ты вообще что-ли %:"№;№";?

Там вот что:
Code:
Код: Выделить всё
#include <avr/io.h>
#include <avr/interrupt.h>

/* Prototypes */
void InitUART (unsigned char baudrate);
unsigned char ReceiveByte (void);
void TransmitByte (unsigned char data);


/* --------------------------------------------------------------
Main - program that recieves a character then transmits back the next character. 
An example would be if you send in an A, the chip will return a B
---------------------------------------------------------------- */
int
main (void)
{
  unsigned char i;
  InitUART (95);     /* Set the baudrate to
2400 bps using a 3.6846MHz crystal */
  while (1)
    {
      TransmitByte (ReceiveByte () + 1);       
/* Echo the received character + 1.  Example send in A then send out B */
      for (i = 0; i < 200; i++);
    }
}

/* Initialize UART */
void
InitUART (unsigned char baudrate)
{
  /* Set the baud rate */
  UBRRL = baudrate;

  /* Enable UART receiver and transmitter */
  UCSRB = (1 << RXEN) | (1 << TXEN);

  /* set to 8 data bits, 1 stop bit */
  UCSRC = (1 << UCSZ1) | (1 << UCSZ0);

}

/* Read and write functions */
unsigned char
ReceiveByte (void)
{
  /* Wait for incomming data */
  while (!(UCSRA & (1 << RXC)));

  /* Return the data */
  return UDR;
}

void
TransmitByte (unsigned char data)
{
  /* Wait for empty transmit buffer */
  while (!(UCSRA & (1 << UDRE)));

  /* Start transmittion */
  UDR = data;
}
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Пред.След.

Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9