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

Передача данных через UART в AVR микроконтроллерах.

Добавлено: Сб ноя 02, 2013 19:23:37
sirha
Помогите разобраться,попробовал создать проект в протеусе - соединение двух микроконтроллеров atmega8 по двум проводам ( RX И TX).
Хочу чтобы при нажатии кнопки на atmega8 загорался светодиод на второй atmega8 и тух когда отпускаешь кнопку.

и так прикрепить хотябы четыре кнопки с четырьмя светодиодами

Пробовал этот код:
TX:
while (1)
{

while(PINC.0==0)

{
putchar('a');
delay_ms(100);

}

while (PINC.0==1)
{
putchar('b');
delay_ms(100);

}
}
}

RX:

while (1)
{
if (getchar() == 'a')
{
PORTC.1=1;
} ;
if (getchar() == 'b')
{
PORTC.1=0;
} ;

}
}


С одной кнопкой работает но коряво,c двумя кнопками вообще непонятно работает.
Помогите пожааалуста. :cry:

Re: Передача данных через UART в AVR микроконтроллерах.

Добавлено: Сб ноя 02, 2013 19:35:11
Flasher
На приемной стороне советую читать символ в переменную, а потом ее проверять на соответствия.

Re: Передача данных через UART в AVR микроконтроллерах.

Добавлено: Сб ноя 02, 2013 19:38:49
sirha
Flasher писал(а):На приемной стороне советую читать символ в переменную, а потом ее проверять на соответствия.

ЭТО для меня загадки,вы можете скинуть мне готовый код чтобы я понил как это работает

Re: Передача данных через UART в AVR микроконтроллерах.

Добавлено: Сб ноя 02, 2013 19:43:05
Flasher
unsigned char symb;
while (1)
{
symb=getchar();
if (symb == 'a')
{
PORTC.1=1;
} ;
if (symb == 'b')
{
PORTC.1=0;
} ;

}
}

Re: Передача данных через UART в AVR микроконтроллерах.

Добавлено: Сб ноя 02, 2013 19:52:10
sirha
Flasher писал(а):unsigned char symb;
while (1)
{
symb=getchar();
if (symb == 'a')
{
PORTC.1=1;
} ;
if (symb == 'b')
{
PORTC.1=0;
} ;

}
}


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

Re: Передача данных через UART в AVR микроконтроллерах.

Добавлено: Сб ноя 02, 2013 19:57:28
Flasher
Для этого нужно привести полный код и схемы.

Re: Передача данных через UART в AVR микроконтроллерах.

Добавлено: Сб ноя 02, 2013 20:34:41
sirha
Flasher писал(а):Для этого нужно привести полный код и схемы.


davilka1 передатчик

davilka2 приемник

и файл протеуса.

если несложно можете дописать и на вторую кнопку а то не получается

Re: Передача данных через UART в AVR микроконтроллерах.

Добавлено: Сб ноя 02, 2013 20:41:02
FreshMan

Re: Передача данных через UART в AVR микроконтроллерах.

Добавлено: Сб ноя 02, 2013 23:30:40
sirha
FreshMan писал(а):http://avr-start.ru/?p=550


ЭТО ВСЕ я уже читал мне нужен нормальный код программы

ошибку я нашел
забыл открыть

portc=0xff;

хотелось бы разобраться как прикрепить две кнопки и два светодиода

чтобы- нажал кнопку загорелся один светодиод ,отпустил кнопку погас светодиод, и так же со второй кнопкой и вторым светодиодом,помогите пожалуста :cry:

Re: Передача данных через UART в AVR микроконтроллерах.

Добавлено: Пт дек 27, 2013 02:51:22
ZiperRUS
Быстро только кошки рождаются :))
Kopy , Paste это не очём !!! читай информацию. думай!