| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- #include "multi_button.h"
- #include "Keys.h"
- #include "N76E003.h"
- pKeyState GROUP_KEY = {0};
- struct Button kCS, kJS;
- void ScanKey ( void ) //5ms
- {
- button_ticks();
- }
- uint8_t Read_CS_GPIO()
- {
- return ( bool ) P04;
- }
- void Keys_SIG ( void* btn )
- {
- int event;
- if ( btn == &kCS )
- {
- event = get_button_event ( btn );
- switch ( event )
- {
- case SINGLE_CLICK:
- GROUP_KEY.CS = 1;
- break; //测试
- case LONG_RRESS_START:
- GROUP_KEY.CS_L = 1;
- break; //长按测试
- }
- }
- else if ( btn == &kJS )
- {
- event = get_button_event ( btn );
- switch ( event )
- {
- case SINGLE_CLICK:
- GROUP_KEY.JS = 1;
- break; //计时
- case LONG_RRESS_START:
- GROUP_KEY.JS_L = 1;
- break; //长按计时
- }
- }
- }
- void Keys_Init ( void )
- {
- button_init_Head();
- button_init ( &kCS, Read_CS_GPIO, 0 ); //低电平触发
- button_attach ( &kCS, SINGLE_CLICK, Keys_SIG );
- button_attach ( &kCS, LONG_RRESS_START, Keys_SIG );
- button_start ( &kCS );
- //make the timer invoking the button_ticks() interval 5ms.
- //This function is implemented by yourself.
- //__timer_start(button_ticks, 0, 5);
- }
- void Key_CS_Hanlder ( void* btn )
- {
- if ( btn )
- {}
- }
- void Key_CS_Long_Hanlder ( void* btn )
- {
- if ( btn )
- {}
- }
- void Keys_All_Handler ( void )
- {
- if ( GROUP_KEY.CS )
- {
- GROUP_KEY.CS = 0;
- Key_CS_Hanlder ( &kCS );
- }
- if ( GROUP_KEY.CS_L )
- {
- GROUP_KEY.CS_L = 0;
- Key_CS_Long_Hanlder ( &kCS );
- }
- }
|