Explorar o código

[修改] 格式化文件, 将文件的Tab转换为4空格

liu2guang %!s(int64=8) %!d(string=hai) anos
pai
achega
425b647e73
Modificáronse 4 ficheiros con 203 adicións e 203 borrados
  1. 34 34
      examples/event_async.c
  2. 25 25
      examples/event_inquire.c
  3. 120 120
      multi_button.c
  4. 24 24
      multi_button.h

+ 34 - 34
examples/event_async.c

@@ -3,56 +3,56 @@
 struct Button btn1;
 struct Button btn2;
 
-int read_button1_GPIO() 
+int read_button1_GPIO()
 {
-	return HAL_GPIO_ReadPin(B1_GPIO_Port, B1_Pin);
+    return HAL_GPIO_ReadPin(B1_GPIO_Port, B1_Pin);
 }
 
-int read_button2_GPIO() 
+int read_button2_GPIO()
 {
-	return HAL_GPIO_ReadPin(B2_GPIO_Port, B2_Pin);
+    return HAL_GPIO_ReadPin(B2_GPIO_Port, B2_Pin);
 }
 
 int main()
 {
-	button_init(&btn1, read_button1_GPIO, 0);
-	button_init(&btn2, read_button2_GPIO, 0);
-	
-	button_attach(&btn1, PRESS_DOWN,       BTN1_PRESS_DOWN_Handler);
-	button_attach(&btn1, PRESS_UP,         BTN1_PRESS_UP_Handler);
-	button_attach(&btn1, PRESS_REPEAT,     BTN1_PRESS_REPEAT_Handler);
-	button_attach(&btn1, SINGLE_CLICK,     BTN1_SINGLE_Click_Handler);
-	button_attach(&btn1, DOUBLE_CLICK,     BTN1_DOUBLE_Click_Handler);
-	button_attach(&btn1, LONG_RRESS_START, BTN1_LONG_RRESS_START_Handler);
-	button_attach(&btn2, LONG_PRESS_HOLD,  BTN1_LONG_PRESS_HOLD_Handler);
-	
-	button_attach(&btn2, PRESS_DOWN,       BTN2_PRESS_DOWN_Handler);
-	button_attach(&btn2, PRESS_UP,         BTN2_PRESS_UP_Handler);
-	button_attach(&btn2, PRESS_REPEAT,     BTN2_PRESS_REPEAT_Handler);
-	button_attach(&btn2, SINGLE_CLICK,     BTN2_SINGLE_Click_Handler);
-	button_attach(&btn2, DOUBLE_CLICK,     BTN2_DOUBLE_Click_Handler);
-	button_attach(&btn2, LONG_RRESS_START, BTN2_LONG_RRESS_START_Handler);
-	button_attach(&btn2, LONG_PRESS_HOLD,  BTN2_LONG_PRESS_HOLD_Handler);
-	
-	button_start(&btn1);
-	button_start(&btn2);
-	
-	//make the timer invoking the button_ticks() interval 5ms.
-	//This function is implemented by yourself.
-	__timer_start(button_ticks, 0, 5); 
-	
-	while(1) 
-	{}
+    button_init(&btn1, read_button1_GPIO, 0);
+    button_init(&btn2, read_button2_GPIO, 0);
+
+    button_attach(&btn1, PRESS_DOWN,       BTN1_PRESS_DOWN_Handler);
+    button_attach(&btn1, PRESS_UP,         BTN1_PRESS_UP_Handler);
+    button_attach(&btn1, PRESS_REPEAT,     BTN1_PRESS_REPEAT_Handler);
+    button_attach(&btn1, SINGLE_CLICK,     BTN1_SINGLE_Click_Handler);
+    button_attach(&btn1, DOUBLE_CLICK,     BTN1_DOUBLE_Click_Handler);
+    button_attach(&btn1, LONG_RRESS_START, BTN1_LONG_RRESS_START_Handler);
+    button_attach(&btn2, LONG_PRESS_HOLD,  BTN1_LONG_PRESS_HOLD_Handler);
+
+    button_attach(&btn2, PRESS_DOWN,       BTN2_PRESS_DOWN_Handler);
+    button_attach(&btn2, PRESS_UP,         BTN2_PRESS_UP_Handler);
+    button_attach(&btn2, PRESS_REPEAT,     BTN2_PRESS_REPEAT_Handler);
+    button_attach(&btn2, SINGLE_CLICK,     BTN2_SINGLE_Click_Handler);
+    button_attach(&btn2, DOUBLE_CLICK,     BTN2_DOUBLE_Click_Handler);
+    button_attach(&btn2, LONG_RRESS_START, BTN2_LONG_RRESS_START_Handler);
+    button_attach(&btn2, LONG_PRESS_HOLD,  BTN2_LONG_PRESS_HOLD_Handler);
+
+    button_start(&btn1);
+    button_start(&btn2);
+
+    //make the timer invoking the button_ticks() interval 5ms.
+    //This function is implemented by yourself.
+    __timer_start(button_ticks, 0, 5);
+
+    while(1)
+    {}
 }
 
 void BTN1_PRESS_DOWN_Handler(void* btn)
 {
-	//do something...
+    //do something...
 }
 
 void BTN1_PRESS_UP_Handler(void* btn)
 {
-	//do something...
+    //do something...
 }
 
 ...

+ 25 - 25
examples/event_inquire.c

@@ -2,36 +2,36 @@
 
 struct Button btn1;
 
-int read_button1_GPIO() 
+int read_button1_GPIO()
 {
-	return HAL_GPIO_ReadPin(B1_GPIO_Port, B1_Pin);
+    return HAL_GPIO_ReadPin(B1_GPIO_Port, B1_Pin);
 }
 
 
 int main()
 {
-	static uint8_t btn1_event_val;
-	
-	button_init(&btn1, read_button1_GPIO, 0);
-	button_start(&btn1);
-	
-	//make the timer invoking the button_ticks() interval 5ms.
-	//This function is implemented by yourself.
-	__timer_start(button_ticks, 0, 5); 
-	
-	while(1) 
-	{
-		if(btn1_event_val != get_button_event(&btn1)) {
-			btn1_event_val = get_button_event(&btn1);
-			
-			if(btn1_event_val == PRESS_DOWN) {
-				//do something
-			} else if(btn1_event_val == PRESS_UP) {
-				//do something
-			} else if(btn1_event_val == LONG_PRESS_HOLD) {
-				//do something
-			}
-		}
-	}
+    static uint8_t btn1_event_val;
+
+    button_init(&btn1, read_button1_GPIO, 0);
+    button_start(&btn1);
+
+    //make the timer invoking the button_ticks() interval 5ms.
+    //This function is implemented by yourself.
+    __timer_start(button_ticks, 0, 5);
+
+    while(1)
+    {
+        if(btn1_event_val != get_button_event(&btn1)) {
+            btn1_event_val = get_button_event(&btn1);
+
+            if(btn1_event_val == PRESS_DOWN) {
+                //do something
+            } else if(btn1_event_val == PRESS_UP) {
+                //do something
+            } else if(btn1_event_val == LONG_PRESS_HOLD) {
+                //do something
+            }
+        }
+    }
 }
 

+ 120 - 120
multi_button.c

@@ -6,7 +6,7 @@
 #include "multi_button.h"
 
 #define EVENT_CB(ev)   if(handle->cb[ev])handle->cb[ev]((Button*)handle)
-	
+
 //button handle list head.
 static struct Button* head_handle = NULL;
 
@@ -19,11 +19,11 @@ static struct Button* head_handle = NULL;
   */
 void button_init(struct Button* handle, uint8_t(*pin_level)(), uint8_t active_level)
 {
-	memset(handle, sizeof(struct Button), 0);
-	handle->event = (uint8_t)NONE_PRESS;
-	handle->hal_button_Level = pin_level;
-	handle->button_level = handle->hal_button_Level();
-	handle->active_level = active_level;
+    memset(handle, sizeof(struct Button), 0);
+    handle->event = (uint8_t)NONE_PRESS;
+    handle->hal_button_Level = pin_level;
+    handle->button_level = handle->hal_button_Level();
+    handle->active_level = active_level;
 }
 
 /**
@@ -35,7 +35,7 @@ void button_init(struct Button* handle, uint8_t(*pin_level)(), uint8_t active_le
   */
 void button_attach(struct Button* handle, PressEvent event, BtnCallback cb)
 {
-	handle->cb[event] = cb;
+    handle->cb[event] = cb;
 }
 
 /**
@@ -45,7 +45,7 @@ void button_attach(struct Button* handle, PressEvent event, BtnCallback cb)
   */
 PressEvent get_button_event(struct Button* handle)
 {
-	return (PressEvent)(handle->event);
+    return (PressEvent)(handle->event);
 }
 
 /**
@@ -55,98 +55,98 @@ PressEvent get_button_event(struct Button* handle)
   */
 void button_handler(struct Button* handle)
 {
-	uint8_t read_gpio_level = handle->hal_button_Level();
-
-	//ticks counter working..
-	if((handle->state) > 0) handle->ticks++;
-
-	/*------------button debounce handle---------------*/
-	if(read_gpio_level != handle->button_level) { //not equal to prev one
-		//continue read 3 times same new level change
-		if(++(handle->debounce_cnt) >= DEBOUNCE_TICKS) {
-			handle->button_level = read_gpio_level;
-			handle->debounce_cnt = 0;
-		}
-	} else { //leved not change ,counter reset.
-		handle->debounce_cnt = 0;
-	}
-
-	/*-----------------State machine-------------------*/
-	switch (handle->state) {
-	case 0:
-		if(handle->button_level == handle->active_level) {	//start press down
-			handle->event = (uint8_t)PRESS_DOWN;
-			EVENT_CB(PRESS_DOWN);
-			handle->ticks = 0;
-			handle->repeat = 1;
-			handle->state = 1;
-		} else {
-			handle->event = (uint8_t)NONE_PRESS;
-		}
-		break;
-
-	case 1:
-		if(handle->button_level != handle->active_level) { //released press up
-			handle->event = (uint8_t)PRESS_UP;
-			EVENT_CB(PRESS_UP);
-			handle->ticks = 0;
-			handle->state = 2;
-
-		} else if(handle->ticks > LONG_TICKS) {
-			handle->event = (uint8_t)LONG_RRESS_START;
-			EVENT_CB(LONG_RRESS_START);
-			handle->state = 5;
-		}
-		break;
-
-	case 2:
-		if(handle->button_level == handle->active_level) { //press down again
-			handle->event = (uint8_t)PRESS_DOWN;
-			EVENT_CB(PRESS_DOWN);
-			handle->repeat++;
-			if(handle->repeat == 2) {
-				EVENT_CB(DOUBLE_CLICK); // repeat hit
-			} 
-			EVENT_CB(PRESS_REPEAT); // repeat hit
-			handle->ticks = 0;
-			handle->state = 3;
-		} else if(handle->ticks > SHORT_TICKS) { //released timeout
-			if(handle->repeat == 1) {
-				handle->event = (uint8_t)SINGLE_CLICK;
-				EVENT_CB(SINGLE_CLICK);
-			} else if(handle->repeat == 2) {
-				handle->event = (uint8_t)DOUBLE_CLICK;
-			}
-			handle->state = 0;
-		}
-		break;
-
-	case 3:
-		if(handle->button_level != handle->active_level) { //released press up
-			handle->event = (uint8_t)PRESS_UP;
-			EVENT_CB(PRESS_UP);
-			if(handle->ticks < SHORT_TICKS) {
-				handle->ticks = 0;
-				handle->state = 2; //repeat press
-			} else {
-				handle->state = 0;
-			}
-		}
-		break;
-
-	case 5:
-		if(handle->button_level == handle->active_level) {
-			//continue hold trigger
-			handle->event = (uint8_t)LONG_PRESS_HOLD;
-			EVENT_CB(LONG_PRESS_HOLD);
-
-		} else { //releasd
-			handle->event = (uint8_t)PRESS_UP;
-			EVENT_CB(PRESS_UP);
-			handle->state = 0; //reset
-		}
-		break;
-	}
+    uint8_t read_gpio_level = handle->hal_button_Level();
+
+    //ticks counter working..
+    if((handle->state) > 0) handle->ticks++;
+
+    /*------------button debounce handle---------------*/
+    if(read_gpio_level != handle->button_level) { //not equal to prev one
+        //continue read 3 times same new level change
+        if(++(handle->debounce_cnt) >= DEBOUNCE_TICKS) {
+            handle->button_level = read_gpio_level;
+            handle->debounce_cnt = 0;
+        }
+    } else { //leved not change ,counter reset.
+        handle->debounce_cnt = 0;
+    }
+
+    /*-----------------State machine-------------------*/
+    switch (handle->state) {
+    case 0:
+        if(handle->button_level == handle->active_level) {	//start press down
+            handle->event = (uint8_t)PRESS_DOWN;
+            EVENT_CB(PRESS_DOWN);
+            handle->ticks = 0;
+            handle->repeat = 1;
+            handle->state = 1;
+        } else {
+            handle->event = (uint8_t)NONE_PRESS;
+        }
+        break;
+
+    case 1:
+        if(handle->button_level != handle->active_level) { //released press up
+            handle->event = (uint8_t)PRESS_UP;
+            EVENT_CB(PRESS_UP);
+            handle->ticks = 0;
+            handle->state = 2;
+
+        } else if(handle->ticks > LONG_TICKS) {
+            handle->event = (uint8_t)LONG_RRESS_START;
+            EVENT_CB(LONG_RRESS_START);
+            handle->state = 5;
+        }
+        break;
+
+    case 2:
+        if(handle->button_level == handle->active_level) { //press down again
+            handle->event = (uint8_t)PRESS_DOWN;
+            EVENT_CB(PRESS_DOWN);
+            handle->repeat++;
+            if(handle->repeat == 2) {
+                EVENT_CB(DOUBLE_CLICK); // repeat hit
+            }
+            EVENT_CB(PRESS_REPEAT); // repeat hit
+            handle->ticks = 0;
+            handle->state = 3;
+        } else if(handle->ticks > SHORT_TICKS) { //released timeout
+            if(handle->repeat == 1) {
+                handle->event = (uint8_t)SINGLE_CLICK;
+                EVENT_CB(SINGLE_CLICK);
+            } else if(handle->repeat == 2) {
+                handle->event = (uint8_t)DOUBLE_CLICK;
+            }
+            handle->state = 0;
+        }
+        break;
+
+    case 3:
+        if(handle->button_level != handle->active_level) { //released press up
+            handle->event = (uint8_t)PRESS_UP;
+            EVENT_CB(PRESS_UP);
+            if(handle->ticks < SHORT_TICKS) {
+                handle->ticks = 0;
+                handle->state = 2; //repeat press
+            } else {
+                handle->state = 0;
+            }
+        }
+        break;
+
+    case 5:
+        if(handle->button_level == handle->active_level) {
+            //continue hold trigger
+            handle->event = (uint8_t)LONG_PRESS_HOLD;
+            EVENT_CB(LONG_PRESS_HOLD);
+
+        } else { //releasd
+            handle->event = (uint8_t)PRESS_UP;
+            EVENT_CB(PRESS_UP);
+            handle->state = 0; //reset
+        }
+        break;
+    }
 }
 
 /**
@@ -156,14 +156,14 @@ void button_handler(struct Button* handle)
   */
 int button_start(struct Button* handle)
 {
-	struct Button* target = head_handle;
-	while(target) {
-		if(target == handle) return -1;	//already exist.
-		target = target->next;
-	}
-	handle->next = head_handle;
-	head_handle = handle;
-	return 0;
+    struct Button* target = head_handle;
+    while(target) {
+        if(target == handle) return -1;	//already exist.
+        target = target->next;
+    }
+    handle->next = head_handle;
+    head_handle = handle;
+    return 0;
 }
 
 /**
@@ -173,15 +173,15 @@ int button_start(struct Button* handle)
   */
 void button_stop(struct Button* handle)
 {
-	struct Button** curr;
-	for(curr = &head_handle; *curr; ) {
-		struct Button* entry = *curr;
-		if (entry == handle) {
-			*curr = entry->next;
+    struct Button** curr;
+    for(curr = &head_handle; *curr; ) {
+        struct Button* entry = *curr;
+        if (entry == handle) {
+            *curr = entry->next;
 //			free(entry);
-		} else
-			curr = &entry->next;
-	}
+        } else
+            curr = &entry->next;
+    }
 }
 
 /**
@@ -191,9 +191,9 @@ void button_stop(struct Button* handle)
   */
 void button_ticks()
 {
-	struct Button* target;
-	for(target=head_handle; target; target=target->next) {
-		button_handler(target);
-	}
+    struct Button* target;
+    for(target=head_handle; target; target=target->next) {
+        button_handler(target);
+    }
 }
 

+ 24 - 24
multi_button.h

@@ -2,7 +2,7 @@
  * Copyright (c) 2016 Zibin Zheng <znbin@qq.com>
  * All rights reserved
  */
- 
+
 #ifndef _MULTI_BUTTON_H_
 #define _MULTI_BUTTON_H_
 
@@ -19,33 +19,33 @@
 typedef void (*BtnCallback)(void*);
 
 typedef enum {
-	PRESS_DOWN = 0,
-	PRESS_UP,
-	PRESS_REPEAT,
-	SINGLE_CLICK,
-	DOUBLE_CLICK,
-	LONG_RRESS_START,
-	LONG_PRESS_HOLD,
-	number_of_event,
-	NONE_PRESS
+    PRESS_DOWN = 0,
+    PRESS_UP,
+    PRESS_REPEAT,
+    SINGLE_CLICK,
+    DOUBLE_CLICK,
+    LONG_RRESS_START,
+    LONG_PRESS_HOLD,
+    number_of_event,
+    NONE_PRESS
 }PressEvent;
 
 typedef struct Button {
-	uint16_t ticks;
-	uint8_t  repeat : 4;
-	uint8_t  event : 4;
-	uint8_t  state : 3;
-	uint8_t  debounce_cnt : 3; 
-	uint8_t  active_level : 1;
-	uint8_t  button_level : 1;
-	uint8_t  (*hal_button_Level)(void);
-	BtnCallback  cb[number_of_event];
-	struct Button* next;
+    uint16_t ticks;
+    uint8_t  repeat : 4;
+    uint8_t  event : 4;
+    uint8_t  state : 3;
+    uint8_t  debounce_cnt : 3;
+    uint8_t  active_level : 1;
+    uint8_t  button_level : 1;
+    uint8_t  (*hal_button_Level)(void);
+    BtnCallback  cb[number_of_event];
+    struct Button* next;
 }Button;
 
-#ifdef __cplusplus  
-extern "C" {  
-#endif  
+#ifdef __cplusplus
+extern "C" {
+#endif
 
 void button_init(struct Button* handle, uint8_t(*pin_level)(), uint8_t active_level);
 void button_attach(struct Button* handle, PressEvent event, BtnCallback cb);
@@ -55,7 +55,7 @@ void button_stop(struct Button* handle);
 void button_ticks(void);
 
 #ifdef __cplusplus
-} 
+}
 #endif
 
 #endif