滴答定時器定時:(放在主函數即可)
volatile unsigned int delay_times = 0;//搭配滴答定時器實現的精確ms延時
void delay_ms(unsigned int ms)
{delay_times = ms;while( delay_times != 0 );
} //滴答定時器中斷
void SysTick_Handler(void)
{if( delay_times != 0 ){delay_times--;}
}
滴答定時器SYSCFG配置:
?
普通定時器.c文件:
?
#include "ti/driverlib/dl_gpio.h"
#include "ti/driverlib/m0p/dl_core.h"
#include "ti_msp_dl_config.h"
#include <stdint.h>
#include <stdio.h>//CPUCLK_FREQ 32000000 32000000/1000 = 32000 ->1ms
void delay_ms(uint32_t ms)
{while(ms--){delay_cycles(CPUCLK_FREQ/1000);}
}void delay_us(uint32_t us)
{while(us--){delay_cycles(CPUCLK_FREQ/1000000);}
}
普通定時器.h文件
#ifndef __DELAY_H
#define __DELAY_H#include <stdint.h>
void delay_ms(uint32_t ms);
void delay_us(uint32_t us);#endif
?