123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- #ifndef CHERRY8x16_H
- #define CHERRY8x16_H
- #include <stdbool.h>
- #include <stdint.h>
- #ifdef __cplusplus
- extern "C" {
- #endif
- #define CHERRY8x16_MAX_NUM_OF_PRESSED_KEYS 6
- #define CHERRY8x16_DEFAULT_KEY_LOOKUP_MATRIX (const uint8_t*)0
- #define KEY_PACKET_MODIFIER_KEY_INDEX (0)
- #define KEY_PACKET_RESERVED_INDEX (1)
- #define KEY_PACKET_KEY_INDEX (2)
- #define KEY_PACKET_MAX_KEYS (6)
- #define KEY_PACKET_SIZE (KEY_PACKET_KEY_INDEX + KEY_PACKET_MAX_KEYS)
- #define KEY_PACKET_NO_KEY (0)
- typedef enum
- {
- CHERRY8x16_OK,
- CHERRY8x16_NOT_DETECTED,
- CHERRY8x16_INVALID_PARAMETER
- } cherry8x16_status_t;
- cherry8x16_status_t cherry8x16_init(const uint8_t volatile * row_port, uint16_t * column_port, const uint8_t * key_lookup_matrix);
- bool cherry8x16_new_packet(const uint8_t ** p_key_packet, uint8_t *p_key_packet_size);
- #ifdef __cplusplus
- }
- #endif
- #endif
|