diff options
| author | self-confident neko <[email protected]> | 2023-06-14 19:34:37 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2023-06-14 19:34:37 +0800 |
| commit | bf4594870e9f8a533450d34a1ea2b4f035e89c96 (patch) | |
| tree | 07872e4459463594e7acc83ac51fa0aa3c8d2b9c /bsp | |
| parent | d256d742d1766c84c881f02902858ece1315725e (diff) | |
向 wch-riscv-bsp 添加 drv_common.c/.h 文件 (#7671)
Diffstat (limited to 'bsp')
| -rw-r--r-- | bsp/wch/risc-v/Libraries/ch32_drivers/drv_common.c | 28 | ||||
| -rw-r--r-- | bsp/wch/risc-v/Libraries/ch32_drivers/drv_common.h | 25 |
2 files changed, 53 insertions, 0 deletions
diff --git a/bsp/wch/risc-v/Libraries/ch32_drivers/drv_common.c b/bsp/wch/risc-v/Libraries/ch32_drivers/drv_common.c new file mode 100644 index 0000000000..79145ea939 --- /dev/null +++ b/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);
+}
diff --git a/bsp/wch/risc-v/Libraries/ch32_drivers/drv_common.h b/bsp/wch/risc-v/Libraries/ch32_drivers/drv_common.h new file mode 100644 index 0000000000..df9bed2794 --- /dev/null +++ b/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
|
