用c语言写一个基于F28335的ms延时函数
时间: 2024-05-01 21:20:59 浏览: 223
使用C语言写的延时程序
在F28335上实现一个基于毫秒的延时函数,可以使用定时器和中断来完成。下面是一个简单的例子:
首先,需要初始化定时器,设置它的时钟频率和计数器周期。在这个例子中,我们使用的是Timer0,并设置它的时钟频率为150MHz,计数器周期为150000。
```c
void Init_Timer0(void)
{
ConfigCpuTimer(&CpuTimer0, 150, 150000); // 150MHz时钟,计数器周期为150000
CpuTimer0Regs.TCR.all = 0x4000; // 计数器清零
}
```
然后,我们可以编写一个基于毫秒的延时函数,它将计算所需的计数器值,并在计数器达到该值时返回。
```c
void Delay_ms(uint32_t ms)
{
uint32_t count = (ms * 150000) / 1000; // 计算所需的计数器值
CpuTimer0Regs.TCR.bit.TSS = 0; // 启动计时器
while(CpuTimer0Regs.TIM.all < count); // 等待计时器计数达到目标值
CpuTimer0Regs.TCR.bit.TSS = 1; // 停止计时器
}
```
在这个函数中,我们首先计算所需的计数器值,然后启动计时器并等待计时器计数达到目标值,最后停止计时器。这就是一个基于F28335的ms延时函数的实现。
阅读全文