|
|
|
|
|
|
|
|
#include "yc059.h" |
|
|
#include "yc059.h" |
|
|
#include "debug.h" |
|
|
#include "debug.h" |
|
|
|
|
|
|
|
|
|
|
|
inline |
|
|
|
|
|
void yc059_ir_enable(void) |
|
|
|
|
|
{ |
|
|
|
|
|
YC059_IR_DDR |= (1<<YC059_IR_BIT); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
inline |
|
|
|
|
|
void yc059_ir_disable(void) |
|
|
|
|
|
{ |
|
|
|
|
|
YC059_IR_DDR &= ~(1<<YC059_IR_BIT); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
inline |
|
|
inline |
|
|
void yc059_ir_high(void) |
|
|
void yc059_ir_high(void) |
|
|
{ |
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void yc059_init(void) |
|
|
void yc059_init(void) |
|
|
{ |
|
|
{ |
|
|
YC059_IR_DDR |= (1<<YC059_IR_BIT); |
|
|
|
|
|
|
|
|
YC059_IR_DDR &= ~(1<<YC059_IR_BIT); |
|
|
YC059_IR_PORT &= ~(1<<YC059_IR_BIT); |
|
|
YC059_IR_PORT &= ~(1<<YC059_IR_BIT); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
void yc059_send(uint8_t data) |
|
|
void yc059_send(uint8_t data) |
|
|
{ |
|
|
{ |
|
|
cli(); |
|
|
cli(); |
|
|
|
|
|
yc059_ir_enable(); |
|
|
yc059_send_header(); |
|
|
yc059_send_header(); |
|
|
yc059_send_address(); |
|
|
yc059_send_address(); |
|
|
yc059_send_byte(data); |
|
|
yc059_send_byte(data); |
|
|
yc059_send_byte(~data); |
|
|
yc059_send_byte(~data); |
|
|
yc059_send_stop(); |
|
|
yc059_send_stop(); |
|
|
|
|
|
yc059_ir_disable(); |
|
|
sei(); |
|
|
sei(); |
|
|
} |
|
|
} |
|
|
|
|
|
|