浏览代码

向 wch-riscv-bsp 添加 drv_common.c/.h 文件 (#7671)

self-confident neko 1 年之前
父节点
当前提交
bf4594870e
共有 2 个文件被更改,包括 53 次插入0 次删除
  1. 28 0
      bsp/wch/risc-v/Libraries/ch32_drivers/drv_common.c
  2. 25 0
      bsp/wch/risc-v/Libraries/ch32_drivers/drv_common.h

+ 28 - 0
bsp/wch/risc-v/Libraries/ch32_drivers/drv_common.c

@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) 2006-2023, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date           Author       Notes
+ * 2023-06-14     muaxiaohei   first version
+ */
+
+#include <rtthread.h>
+#include "drv_common.h"
+
+void rt_hw_us_delay(rt_uint32_t us)
+{
+    uint64_t total_delay_ticks, us_ticks, start, now, delta, reload;
+
+    start = SysTick->CNT;
+    reload = SysTick->CMP;
+    us_ticks = SystemCoreClock / 8000000UL;
+    total_delay_ticks = (uint32_t)us * us_ticks;
+    RT_ASSERT(total_delay_ticks < reload);
+
+    do{
+        now = SysTick->CNT;
+        delta = start > now ? start - now : reload + start - now;
+    }while(delta < total_delay_ticks);
+}

+ 25 - 0
bsp/wch/risc-v/Libraries/ch32_drivers/drv_common.h

@@ -0,0 +1,25 @@
+/*
+ * Copyright (c) 2006-2023, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date           Author       Notes
+ * 2023-06-14     muaxiaohei   first version
+ */
+
+#ifndef __DRV_COMMON_H__
+#define __DRV_COMMON_H__
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void rt_hw_us_delay(rt_uint32_t us);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif