单片机AVR atmel16,将事件和键值通过串口发送出去,注意熔丝位配置时钟。
#include <iom16v.h>
#include <macros.h>
#define KEY_CUSTOM_CODE 0x22f5 /* 遥控器用户识别码 */
#define KEY_PRESS_EVENT 0x1 /* PRESS按键事件 */
#define KEY_REPEAT_EVENT 0x2 /* REPEAT按键事件 */
#define KEY_RELEASE_EVENT 0x3 /* RELEASE按键事件 */
/* 主频8MHz,采用64分频 */
#define LEADER_CODE_REPEAT_MIN (10000 / 8) /* 9+2.5 = 11.5ms */
#define LEADER_CODE_REPEAT_MAX (12500 / 8) /* 9+2.5 = 11.5ms */
#define LEADER_CODE_MIN (12500 / 8) /* 9+4.5 = 13.5ms */
#define LEADER_CODE_MAX (14500 / 8) /* 9+4.5 = 13.5ms */
#define DATA_CODE_0_MIN (900 / 8) /* 1.12ms */
#define DATA_CODE_0_MAX (1300 / 8) /* 1.12ms */
#define DATA_CODE_1_MIN (2000 / 8) /* 2.24ms */
#define DATA_CODE_1_MAX (2300 / 8) /* 2.24ms */
#define KEY_REPEAT_MIN (96000 / 8) /* 108-(9+2.5) = 96.5ms */
#define KEY_REPEAT_MAX (97000 / 8) /* 108-(9+2.5) = 96.5ms */
#define KEY_COMPLETED_TIME (108500 / 8) /* 108ms */
#define LEVEL_HIGH 1
#define LEVEL_LOW 0
#define LEADER_CODE_REPEAT 1
#define LEADER_CODE_PRESS 2
#define ERROR (-