Здравствуйте!
Подскажите пожалуйста, это код rc5 IR Transmitter-а? код для ATMega8
Подскажите пожалуйста, это код rc5 IR Transmitter-а? код для ATMega8
Код: Выделить всё
#include <avr/io.h>
#include <avr/delay.h>
void send_one();
void send_zero();
void send_one() {
_delay_us(925);
TCCR1A |= (1<<COM1A0);
TCCR1B |= (1<<CS10);
_delay_us(925);
TCCR1B &= ~(1<<CS10);
TCCR1A &= ~(1<<COM1A0);
PORTB &= ~(1<<PB1);
TCNT1 = 0;
}
void send_zero() {
TCNT1 = 0;
TCCR1A |= (1<<COM1A0);
TCCR1B |= (1<<CS10);
_delay_us(925);
TCCR1B &= ~(1<<CS10);
TCCR1A &= ~(1<<COM1A0);
PORTB &= ~(1<<PB1);
TCNT1 = 0;
_delay_us(925);
}
int main(void) {
DDRB |= (1<<PB1);
OCR1A = 105;
TCCR1B |= (1<<WGM12);
TCNT1 = 0;
unsigned int rc5code;
while(1) {
rc5code = 0b11000001100000;
for (int i = 13; i >= 0; i--) {
if (rc5code & (1<<i)) {
send_one();
} else {
send_zero();
}
}
_delay_ms(2000);
rc5code = 0b11000001000001;
for (int i = 13; i >= 0; i--) {
if (rc5code & (1<<i)) {
send_one();
} else {
send_zero();
}
}
_delay_ms(2000);
rc5code = 0b11000011000011;
for (int i = 13; i >= 0; i--) {
if (rc5code & (1<<i)) {
send_one();
} else {
send_zero();
}
}
_delay_ms(2000);
rc5code = 0b11000111000111;
for (int i = 13; i >= 0; i--) {
if (rc5code & (1<<i)) {
send_one();
} else {
send_zero();
}
}
_delay_ms(2000);
rc5code = 0b11001111001111;
for (int i = 13; i >= 0; i--) {
if (rc5code & (1<<i)) {
send_one();
} else {
send_zero();
}
}
_delay_ms(2000);
rc5code = 0b11011111011111;
for (int i = 13; i >= 0; i--) {
if (rc5code & (1<<i)) {
send_one();
} else {
send_zero();
}
}
_delay_ms(2000);
}
}
