//----ПЕРЕДАТЧИК----// #define F_CPU 16000000UL #include #include #include #define DELAY 99 // задержка отправки пакета (default=99 (10 ms)) volatile unsigned int val=0x00; ISR(TIMER0_OVF_vect) // отправка данных через интервал { while(!(UCSRA&_BV(UDRE))); UDR=val; TCNT0=DELAY; } int main(void) { DDRB=0x00; PORTB=0xFF; DDRD=0x00; PORTD=0xE0; DDRC=0x0F; PORTC=0xB0; // скорость передачи 9600 bod - 103 UBRRH=0; UBRRL=103; // инициализация UCSRA UCSRA=0x00; // D1 - выход USART UCSRB=0x00; UCSRB|=_BV(TXEN); // UCSRC: 8 бит данных; контроль четности; UCSRC=_BV(URSEL)|_BV(UPM1)|_BV(UCSZ1)|_BV(UCSZ0); // настройка Т/C0 (задержка передачи=10мс); N=1024; прерывание по переполнению; TIMSK|=_BV(TOIE0); TCCR0|=_BV(CS02)|_BV(CS00); TCNT0=DELAY; // общее разрешение прерываний sei(); while(1) { val=~PINB; _delay_ms(1); } return 0; }