- /************************* Copyright (c) 2014 SmartMcu Team *****************************
- *项目名称:SysTick中断-Led灯闪烁
- *开发平台:SmartM-M4系列开发板
- ****************************************************************************************/
- #include "SmartM_M4.h"
- /*-------------------------------------------------------*/
- /* 全局变量 */
- /*-------------------------------------------------------*/
- VOLATILE BOOL g_vbSysTickEvent = FALSE;
- /*-------------------------------------------------------*/
- /* 函数 */
- /*-------------------------------------------------------*/
- /****************************************
- *函数名称:SysTickInitWithInterrput
- *输 入:ms -毫秒
- *输 出:无
- *功 能:SysTick初始化并使能中断
- ******************************************/
- VOID SysTickInitWithInterrput(UINT32 ms)
- {
- /* 1.SysTick的自动重载值的设置 */
- SysTick->LOAD = ms * 12 * 1000;
-
- /* 2.为NVIC SysTick中断设置优先级 */
- NVIC_SetPriority (SysTick_IRQn, (1<<__NVIC_PRIO_BITS) - 1);
- /* 3.清零计数器*/
- SysTick->VAL = (0x00);
-
- /*4.SysTick的时钟源选择为外部晶振、使能计数器、使能SysTick中断*/
- SysTick->CTRL = SysTick_CTRL_ENABLE_Msk | SysTick_CTRL_TICKINT_Msk ;
- }
- /****************************************
- *函数名称:main
- *输 入:无
- *输 出:无
- *功 能:函数主体
- ******************************************/
- int32_t main(void)
- {
- BOOL b = FALSE;
- PROTECT_REG
- (
- /* 系统时钟初始化 */
- SYS_Init(PLL_CLOCK);
- )
- /* PB8引脚初始化为输出模式 */
- GPIO_SetMode(PB,BIT8,GPIO_MODE_OUTPUT);
-
- SysTickInitWithInterrput(250);
-
- while(1)
- {
- if(g_vbSysTickEvent)
- {
- g_vbSysTickEvent = FALSE;
-
- PB8 = b;
-
- b = !b;
-
- }
- }
- }
- /*-------------------------------------------------------*/
- /* 中断函数 */
- /*-------------------------------------------------------*/
- VOID SysTick_Handler(VOID)
- {
- g_vbSysTickEvent = TRUE;
- }
|