1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
| /* ========================================================================= * Project: Long press short press * File: main.c * Description: Determine if a key is pressed long or short * Author: Yowhao * Version: V1.0 * Date: 2025/01/08 =========================================================================*/ #include <ny8.h> #include "ny8_constant.h" #include "state_machine.h" #include "key_handler.h"
#define KEY PORTAbits.PA6 typedef unsigned char uint8_t;
void delay(void) { uint8_t i = 0; for (i = 0; i < 2; ++i) { NOP(); } } void fun_1(uint8_t x); void fun_2(uint8_t x); void fun_3(uint8_t x); void fun_4(uint8_t x); void fun_5(uint8_t x); void fun_6(uint8_t x); void fun_7(uint8_t x); void fun_8(uint8_t x); void fun_9(uint8_t x);
void fun_1(uint8_t x){ uint8_t m = 2; m = m + x; fun_2(m); delay(); } void fun_2(uint8_t x){ uint8_t m = 2; m = m + x; fun_3(m); delay(); } void fun_3(uint8_t x){ uint8_t m = 2; m = m + x; fun_4(m); delay(); } void fun_4(uint8_t x){ uint8_t m = 2; m = m + x; fun_5(m); delay(); } void fun_5(uint8_t x){ uint8_t m = 2; m = m + x; fun_6(m); delay(); } void fun_6(uint8_t x){ uint8_t m = 2; m = m + x; fun_7(m); delay(); } inline void fun_7(uint8_t x){ uint8_t m = 2; m = m + x; fun_8(m); delay(); } void fun_8(uint8_t x){ uint8_t m = 2; m = m + x; //fun_9(m); delay(); } //void fun_9(uint8_t x){ // uint8_t m = 2; // m = m + x; // delay(); //}
void main(void) { uint8_t x = 1; IOSTA = C_PA6_Input; APHCON = 0x40; // Input pull-high setting for keys, high for no keys and low for keys while (1) { fun_1(x); //EventType evn = F_Scan_Key(); //handle_event(evn); CLRWDT(); } }
|