LPC17XX 学习之 systick
来源:互联网 发布:ubuntu和linux 编辑:程序博客网 时间:2024/06/01 10:15
LPC1768在代码里用到使用systick时,是以如下形式出现
if (SysTick_Config(SystemCoreClock /1000))/1ms进入一次中断/
{
while (1); /* 错误情况下就停在这里
}
这个函数的原型是
__STATIC_INLINEuint32_t SysTick_Config(uint32_t ticks)
{
if ((ticks - 1) > SysTick_LOAD_RELOAD_Msk)
return(1); /* Reload value impossible */
SysTick->LOAD = ticks - 1; /* set reloadregister */
NVIC_SetPriority (SysTick_IRQn,(1<<__NVIC_PRIO_BITS) - 1); /* setPriority for Systick Interrupt */
SysTick->VAL = 0; /*Load the SysTick Counter Value */
SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk |
SysTick_CTRL_TICKINT_Msk |
SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ andSysTick Timer */
return (0); /* Function successful */
}
节拍函数的初始化,需要提一下的是这个函数的形参SystemCoreClock/1000,SystemCoreClock 是CPU频率,假设是100M的情况下,100M/1000= 100K,节拍定时器在100M的时钟下计数100K次,1S可以溢出1000次,就是说1ms溢出一次,所以就是定时1ms。如果想定时10ms,就把除数改成100。
延迟函数可以这样写:
staticvoid Delay (uint32_t dlyTicks) {
uint32_t curTicks;
curTicks = msTicks;
while ((msTicks - curTicks) <dlyTicks);
}
voidSysTick_Handler(void) {
msTicks++; /* increment counternecessary in Delay() *
}
- LPC17XX 学习之 systick
- LPC17XX 学习之 uCOS-II 移植实例
- STM32之SysTick学习
- LPC17XX 学习之系统时钟与功率控制
- STM32F10x 学习笔记之SysTick 定时器
- LPC1768菜鸟学习之路systick
- NXP LPC17xx之时钟模块
- LPC17xx学习1——系统控制
- LPC17xx管脚复用之Uart部分
- STM32学习之路-不得不说的SysTick时钟
- STM32学习之路-SysTick的应用(时间延迟)
- stm32学习笔记之用systick写delay
- STM32入门学习之_SysTick_Config()函数的SysTick时钟配置
- STM32F1学习-SysTick定时器
- STM32学习--systick
- STM32之SysTick
- STM32之SysTick
- stm32之systick
- php配置memcache扩展
- python时间格式转换time模块
- linux c编程(1)
- NNU_20161027_3PAT1001. 害死人不偿命的(3n+1)猜想
- html005_style
- LPC17XX 学习之 systick
- Unable to open debugger port (127.0.0.1:51656): java.net.SocketException "socket closed"
- Qt没有找到phonon
- 将博客搬至CSDN
- Qt没有找到phonon
- 防采集 - 最看不起采集,一点技术含量都没有!
- Hardwood Species(字典树)
- 字符串处理函数
- html006_image