// Receiving Side- RX
#define F_CPU 1000000
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
DDRB |= (1 << PINB2);
PORTB &= ~(1 << PINB2);
// communication
int UBRR_value = 25;
UBRR0H = (unsigned char) (UBRR_value >> 8);
UBRR0L = (unsigned char) UBRR_value;
UCSR0B |= (1 << RXEN0);
UCSR0C |= (1 << USBS0) | (1 << UCSZ00) | (1
<< UCSZ01);
unsigned char receiveData;
while (1)
{
while (!(UCSR0A & (1 << RXC0)));
receiveData = UDR0;
if (receiveData == 0b11110000)
{
PORTB ^= 1 << PINB2;
}
}
}
// Transmitting Side- TX
#define F_CPU 1000000
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
DDRB |= (1 << PINB1);
PORTB &= ~(1 << PINB1);
DDRB &= ~(1 << PINB0);
PORTB |= (1 << PINB0);
int Pressed = 0;
int Pressed_Confidence_Level = 0;
int Released_Confidence_Level = 0;
// communication
int UBRR_value = 25;
UBRR0H = (unsigned char) (UBRR_value >> 8);
UBRR0L = (unsigned char) UBRR_value;
UCSR0B |= (1 << TXEN0);
UCSR0C |= (1 << USBS0) | (1 << UCSZ00) | (1 <<
UCSZ01);
while (1)
{
if((PINB & (1<<PINB0)) == 1)
{
Pressed_Confidence_Level ++;
Released_Confidence_Level = 0;
if(Pressed_Confidence_Level > 100)
{
if (Pressed == 0)
{
Pressed = 1;
PORTB ^= (1 << PINB1);
while (!(UCSR0A & (1 <<
UDRE0)));
UDR0 = 0b11110000;
}
Pressed_Confidence_Level = 0;
}
}
else
{
Released_Confidence_Level ++;
Pressed_Confidence_Level = 0;
if(Released_Confidence_Level > 100)
{
Pressed = 0;
Released_Confidence_Level = 0;
}
}
}
}
RECEIVER
TRANSMITTER
USART - COMM
2 X ATMEGA