00001 #ifndef HM2007_H 00002 #define HM2007 00003 00004 #include <stdint.h> 00005 00038 00060 #define HM_S_PORT PORTB 00061 #define HM_S_DDR DDRB 00062 #define HM_S_BIT 0 00064 #define HM_K_PORT PORTC 00065 #define HM_K_DDR DDRC 00066 #define HM_K_PIN PINC 00067 #define HM_K_BIT 4 00069 #define HM_WL_PORT PORTC 00070 #define HM_WL_DDR DDRC 00071 #define HM_WL_BIT 3 00085 void hm_init(void); 00086 00091 void hm_reset(void); 00092 00098 uint8_t hm_ready(void); 00099 00108 void hm_recog(void); 00109 00124 void hm_train(uint8_t pattern); 00125 00140 uint16_t hm_result(void); 00141 00159 uint16_t hm_pattern_size(uint8_t pattern); 00160 00169 void hm_wlen(uint8_t len); 00170 00182 void hm_download(uint16_t size, uint8_t *buf); 00183 00190 uint8_t hm_read_byte(void); 00191 00192 00203 void hm_start_upload(uint8_t pattern, uint16_t len); 00204 00213 void hm_write_byte(uint8_t byte); 00214 00217 #endif 00218 00219