Ср янв 31, 2018 17:29:59
#include <avr/io.h>
#include <util/delay.h>
//*** Инициализация UART ***//
void uart_init(void)
{
//скорость обмена данными
UBRRH = 0; //старший байт
UBRRL = 103; //младший байт
//8 бит данных, 1 стоп бит, без контроля четности
UCSRC = ( 1 << URSEL ) | ( 1 << UCSZ1 ) | ( 1 << UCSZ0 );
//разрешить прием и передачу данных
UCSRB = ( 1 << TXEN ) | ( 1 <<RXEN );
}
//*** Прием данных по UART ***//
unsigned char uart_receive(void)
{
while ( ! ( UCSRA & ( 1 << RXC )));
return UDR;
}
//*** Передача данных по UART ***//
void uart_transmit(unsigned char data)
{
while ( ! ( UCSRA & ( 1 << UDRE )));
UDR = data;
}
//*** Главная программа ***//
int main(void)
{
DDRD = 0x00; //установим все порты DDRD как входы
PORTD = 0x00; //установим логический 0 на все порты DDRD
DDRC = (1 << 5) | (1 << 4); //установим порты PC5 и PC4 регистра DDRC на выход
PORTC &= ~(1 << 5) | ~(1 << 4); //установим сигнал низкого уровня (логическай 0) на выводы PC5 и PC4 регистра DDRC
char data;
uart_init();
while(1)
{
data=uart_receive();
if(data=='A')
{
PORTC |= (1 << 5); //устанавливаем логическую 1 на порт PC5 регистра DDRC
}
if(data=='B')
{
PORTC &= ~(1 << 5); //устанавливаем логический 0 на порту PC5 регистра DDRC
}
if(data=='1')
{
PORTC |= (1 << 4); //устанавливаем логическую 1 на порт PC4 регистра DDRC
}
if(data=='0')
{
PORTC &= ~(1 << 4); //устанавливаем логический 0 на порту PC4 регистра DDRC
}
uart_transmit(data);
};
}
Чт фев 01, 2018 16:13:35
const char *const keyWord = {"Hello!"};
char buffer[] = {"Hello!"};
if (!strncmp(buffer, keyWord, strlen(keyWord)))
{
// Совпадение
}
Пт фев 02, 2018 01:12:07