hpw422移植新的sdk

This commit is contained in:
xushaoxiang
2026-07-03 18:08:25 +08:00
commit 945a5a5b0b
2583 changed files with 713209 additions and 0 deletions
+91
View File
@@ -0,0 +1,91 @@
#include "Includes.h"
#define u32 uint32_t
volatile uint32_t GulSystickCount=0;
void SysTick_Handler(void)
{
GulSystickCount++;//
gpio_output_low(0);
gpio_output_high(0);
}
/*
nus:要延时的us数.
nus:0~204522252(最大值即(2^32)/32)
*/
//#define TICK_PER_US 16
//#define TICK_PER_US 32
//#define TICK_PER_US 12
#define TICK_PER_US 24
void delay_us(u32 nus)
{
u32 ticks;
u32 told,tnow,tcnt=0;
u32 reload=SysTick->LOAD; //LOAD的值
ticks=nus*TICK_PER_US; //需要的节拍数 32M速度 1us需要32个时钟周期
told=SysTick->VAL; //刚进入时的计数器值
while(1)
{
tnow=SysTick->VAL;
if(tnow!=told)
{
if(tnow<told)tcnt+=told-tnow; //这里注意一下SYSTICK是一个递减的计数器就可以了.
else tcnt+=reload-tnow+told;
told=tnow;
if(tcnt>=ticks)break; //时间超过/等于要延迟的时间,则退出.
}
};
}
void delay_ms(u32 nms)
{
for(uint32_t i=0;i<nms;i++) delay_us(1000);
}
//#define configCPU_CLOCK_HZ ( ( unsigned long ) 16000000 )
//#define configCPU_CLOCK_HZ ( ( unsigned long ) 32000000 )
//#define configCPU_CLOCK_HZ ( ( unsigned long ) 12000000 )
#define configCPU_CLOCK_HZ ( ( unsigned long ) 24000000 )
//#define configTICK_RATE_HZ ( 20 ) //50ms滴答定时器中断一次调度一次
#define configTICK_RATE_HZ ( 1000 ) //1ms滴答定时器中断一次调度一次
void delay_Init(void)
{
// SysTick->LOAD=( configCPU_CLOCK_HZ / configTICK_RATE_HZ ) - 1UL;
// SysTick->CTRL|=SysTick_CTRL_CLKSOURCE_Msk;
// SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk;
SysTick_Config(configCPU_CLOCK_HZ / configTICK_RATE_HZ);
}
extern void test_systick(void)
{
gpio_mux_ctl(0,0);gpio_fun_inter(0,0);gpio_fun_sel(0,0);gpio_direction_output(0);
gpio_mux_ctl(1,0);gpio_fun_inter(1,0);gpio_fun_sel(1,0);gpio_direction_output(1);
SysTick_Config(configCPU_CLOCK_HZ / configTICK_RATE_HZ);
while(1)
{
#if 0
delay_ms(5);
gpio_output_low(1);
delay_ms(5);
gpio_output_high(1);
#endif
#if 1
delay_us(200);
gpio_output_low(1);
delay_us(200);
gpio_output_high(1);
#endif
}
}