/* * File: ir_decoder.h * Date: 12.01.2013 * Denis Zheleznyakov aka ZiB @ http://ziblog.ru */ #ifndef IR_DECODER_H_ #define IR_DECODER_H_ enum ir_decoder_settings { // кол-во пропускаемых импульсов вначале посылки IR_DECODER_NUMBER_OF_MISSING_INTERVAL = 3UL, // максимальная длительность информационного импульса (мс) IR_DECODER_PULSE_MAXIMUM = 10UL, // время удержания клавиши в импульсе автоповтора (мс) IR_DECODER_AUTOREPEAT_TIME_DOWN = 10UL, // процентное отклонение для эталонного импульса (в процентах) IR_DECODER_INTERVAL_REFERENCE_PERCENT = 20UL, // длительность одиного тика таймера (мкс) IR_DECODER_TIMER_TICK = 8UL, // максимальная длина посылки (бит) [используется для работы 32 бита] IR_DECODER_COMMAND_LENGHT_MAXIMUM = 64UL }; struct ir_decoder_type { volatile uint16_t hash_code_received; volatile _Bool is_received; }; extern struct ir_decoder_type ir_decoder; void ir_decoder_refresh(void); void ir_decoder_refresh_timeout(void); #endif /* IR_DECODER_H_ */