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

Обсуждаем контроллеры компании Atmel.
Ответить
Аватара пользователя
sirha
Вымогатель припоя
Сообщения: 550
Зарегистрирован: Ср авг 17, 2011 23:12:30

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

Сообщение 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:
Последний раз редактировалось sirha Сб ноя 02, 2013 19:39:35, всего редактировалось 1 раз.
Аватара пользователя
Flasher
Мудрый кот
Сообщения: 1802
Зарегистрирован: Ср сен 07, 2011 21:40:30

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

Сообщение Flasher »

На приемной стороне советую читать символ в переменную, а потом ее проверять на соответствия.
Аватара пользователя
sirha
Вымогатель припоя
Сообщения: 550
Зарегистрирован: Ср авг 17, 2011 23:12:30

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

Сообщение sirha »

Flasher писал(а):На приемной стороне советую читать символ в переменную, а потом ее проверять на соответствия.

ЭТО для меня загадки,вы можете скинуть мне готовый код чтобы я понил как это работает
Аватара пользователя
Flasher
Мудрый кот
Сообщения: 1802
Зарегистрирован: Ср сен 07, 2011 21:40:30

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

Сообщение Flasher »

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

}
}
Аватара пользователя
sirha
Вымогатель припоя
Сообщения: 550
Зарегистрирован: Ср авг 17, 2011 23:12:30

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

Сообщение sirha »

Flasher писал(а):unsigned char symb;
while (1)
{
symb=getchar();
if (symb == 'a')
{
PORTC.1=1;
} ;
if (symb == 'b')
{
PORTC.1=0;
} ;

}
}


ВсЕ равно работает даже с одной кнопкой криво,почему то когда кнопка не нажата он горит ,когда кнопка нажата тоже горит ,но когда кнопку отпускаю то тухнет и потом уже нормально работает,как сделать чтобы и с начала все работало правильно?
Аватара пользователя
Flasher
Мудрый кот
Сообщения: 1802
Зарегистрирован: Ср сен 07, 2011 21:40:30

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

Сообщение Flasher »

Для этого нужно привести полный код и схемы.
Аватара пользователя
sirha
Вымогатель припоя
Сообщения: 550
Зарегистрирован: Ср авг 17, 2011 23:12:30

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

Сообщение sirha »

Flasher писал(а):Для этого нужно привести полный код и схемы.


davilka1 передатчик

davilka2 приемник

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

если несложно можете дописать и на вторую кнопку а то не получается
Вложения
123.zip
(171.25 КБ) 159 скачиваний
Аватара пользователя
FreshMan
Друг Кота
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

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

Сообщение FreshMan »

Tell Me The Truth
Аватара пользователя
sirha
Вымогатель припоя
Сообщения: 550
Зарегистрирован: Ср авг 17, 2011 23:12:30

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

Сообщение sirha »

FreshMan писал(а):http://avr-start.ru/?p=550


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

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

portc=0xff;

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

чтобы- нажал кнопку загорелся один светодиод ,отпустил кнопку погас светодиод, и так же со второй кнопкой и вторым светодиодом,помогите пожалуста :cry:
ZiperRUS
Родился
Сообщения: 18
Зарегистрирован: Сб июн 08, 2013 19:12:54

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

Сообщение ZiperRUS »

Быстро только кошки рождаются :))
Kopy , Paste это не очём !!! читай информацию. думай!
Ответить

Вернуться в «AVR»