48 lines
1.2 KiB
C
48 lines
1.2 KiB
C
|
#include "delay.h"
|
|||
|
/******************************************************************************/
|
|||
|
//<2F>ӳ<EFBFBD>nus
|
|||
|
void delay_us(unsigned long nus)
|
|||
|
{
|
|||
|
unsigned long temp;
|
|||
|
|
|||
|
|
|||
|
SysTick->LOAD =nus*9; //9=??72MHz
|
|||
|
SysTick->VAL =0;
|
|||
|
SysTick->CTRL =SysTick_CTRL_ENABLE_Msk; //HCLK/8
|
|||
|
do
|
|||
|
{
|
|||
|
temp=SysTick->CTRL;
|
|||
|
}while((temp&0x01)&&!(temp&(1<<16)));
|
|||
|
|
|||
|
SysTick->CTRL=0;
|
|||
|
SysTick->VAL =0;
|
|||
|
}
|
|||
|
/******************************************************************************/
|
|||
|
//<2F>ӳ<EFBFBD>nms
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1><CAB1>=0xFFFFFF/9MHz=1864ms
|
|||
|
void delay_ms(unsigned short nms)
|
|||
|
{
|
|||
|
unsigned long temp;
|
|||
|
|
|||
|
SysTick->LOAD=(u32)nms*9000; //9=??72MHz
|
|||
|
SysTick->VAL =0;
|
|||
|
SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk ; //HCLK/8
|
|||
|
do
|
|||
|
{
|
|||
|
temp=SysTick->CTRL;
|
|||
|
}while((temp&0x01)&&!(temp&(1<<16)));
|
|||
|
|
|||
|
SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk;
|
|||
|
SysTick->VAL =0;
|
|||
|
}
|
|||
|
/******************************************************************************/
|
|||
|
//0xFFFFFF<46><46>0ѭ<30><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
void systick_CountMode(void)
|
|||
|
{
|
|||
|
SysTick->LOAD = 0xFFFFFF-1; //set reload register
|
|||
|
SysTick->VAL = 0;
|
|||
|
SysTick->CTRL = SysTick_CTRL_ENABLE_Msk; //Enable SysTick Timer
|
|||
|
}
|
|||
|
/******************************************************************************/
|
|||
|
|