소스 검색

[components][drivers] update : Move clear_count() function from ops->control() to ops->clear_count()

tangweikang 5 년 전
부모
커밋
2b9a9e0163
2개의 변경된 파일4개의 추가작업 그리고 1개의 파일을 삭제
  1. 1 0
      components/drivers/include/drivers/encoder.h
  2. 3 1
      components/drivers/misc/encoder.c

+ 1 - 0
components/drivers/include/drivers/encoder.h

@@ -38,6 +38,7 @@ struct rt_encoder_ops
 {
     rt_err_t (*init)(struct rt_encoder_device *encoder);
     rt_int32_t (*get_count)(struct rt_encoder_device *encoder);
+    rt_err_t (*clear_count)(struct rt_encoder_device *encoder);
     rt_err_t (*control)(struct rt_encoder_device *encoder, rt_uint32_t cmd, void *args);
 };
 

+ 3 - 1
components/drivers/misc/encoder.c

@@ -77,12 +77,14 @@ static rt_err_t rt_encoder_control(struct rt_device *dev, int cmd, void *args)
     encoder = (struct rt_encoder_device *)dev;
     switch (cmd)
     {
+    case ENCODER_CMD_CLEAR_COUNT:
+        result = encoder->ops->clear_count(encoder);
+        break;
     case ENCODER_CMD_GET_TYPE:
         *(enum rt_encoder_type *)args = encoder->type;
         break;
     case ENCODER_CMD_ENABLE:
     case ENCODER_CMD_DISABLE:
-    case ENCODER_CMD_CLEAR_COUNT:
         result = encoder->ops->control(encoder, cmd, args);
         break;
     default: