Страница 1 из 1

UART и attiny 2313 CodeVisionAVR

Добавлено: Чт фев 25, 2016 23:44:19
aleksei18rus
Помогите разобраться с UARTом, не могу понять что куда пихать, вроде все регистр настроил, частоту выставил, но ни чего не получается. Пишу на Си в codevisionavr, хочу подключить DFplayer mp3. Помогите разобраться. А то на работе надо сделать один проект, а разобраться не могу.

Re: UART и attiny 2313 CodeVisionAVR

Добавлено: Пт фев 26, 2016 04:13:48
Vov123
Настройка UART производится в генераторе CVAVR
А дальше открываем http://www.atmel.com/images/doc2543.pdf
на стр. 118 и смотрим как передавать инфу, и видим

Код: Выделить всё

void USART_Transmit( unsigned char data )
{
/* Wait for empty transmit buffer */
while ( !( UCSRA & (1<<UDRE)) )
;
/* Put data into buffer, sends the data */
UDR = data;
}


То есть, хочешь передать 0х23, пишешь

Код: Выделить всё

USART_Transmit( 0x23 );

Там-же, чуть ниже на стр.121 написано как принимать инфу.

Да, описание функции должно быть в теле программы.

Re: UART и attiny 2313 CodeVisionAVR

Добавлено: Пт фев 26, 2016 04:22:58
aleksei18rus
Вот так же писал, но в виртуальном терминале какие то треугольники

Код: Выделить всё

void USART_Transmit( unsigned char data )
{
 if ( UCSRA & (1<<UDRE))
 {UDR = data;}
}

Re: UART и attiny 2313 CodeVisionAVR

Добавлено: Пт фев 26, 2016 07:56:23
ARV
aleksei18rus писал(а):Вот так же писал
то есть разницу между if и while вы не видите?

Re: UART и attiny 2313 CodeVisionAVR

Добавлено: Пт фев 26, 2016 11:13:36
aleksei18rus
Нет разницу между if и while знаю.

Re: UART и attiny 2313 CodeVisionAVR

Добавлено: Пт фев 26, 2016 11:25:29
Vov123
Замечательно!

Re: UART и attiny 2313 CodeVisionAVR

Добавлено: Вс фев 28, 2016 15:12:09
aleksei18rus
[quote="Vov123"]
написал так а в терминале протеуса все равно перевернутые треугольники

Код: Выделить всё

#include <io.h>
#include <string.h>
void USART_Transmit( unsigned char data )
{
while ( !( UCSRA & (1<<UDRE)) )
{UDR = data;}
}
void main (void)    
{   UCSRB=0x16;
     UBRR=0x17;

while (1)
{USART_Transmit( 0x23 );
}
}

Re: UART и attiny 2313 CodeVisionAVR

Добавлено: Вс фев 28, 2016 16:32:18
Vov123
В окне терминала протеуса, правой кнопкой мыши, поставить галку "Hex Dysplay Mode"

Если подцепить библу stdio.h , можно пользоваться функциями putchar(); - для отправки одиночного символа и puts(); - массива