[DemoCode下载] NANO112的定时器延时函数

[复制链接]
1651|10
 楼主| huangcunxiake 发表于 2017-3-18 23:31 | 显示全部楼层 |阅读模式

  1. /******************************************************************************
  2. * [url=home.php?mod=space&uid=288409]@file[/url]     main.c
  3. * [url=home.php?mod=space&uid=895143]@version[/url]  V1.00
  4. * $Revision: 4 $
  5. * $Date: 14/11/25 1:09p $
  6. * [url=home.php?mod=space&uid=247401]@brief[/url]    Demonstrate the usage of TIMER_Delay() API to generate a 1 second delay.
  7. *
  8. * @note
  9. * Copyright (C) 2013-2014 Nuvoton Technology Corp. All rights reserved.
  10. *****************************************************************************/
  11. #include <stdio.h>
  12. #include "Nano1x2Series.h"

  13. void SYS_Init(void)
  14. {
  15.     /*---------------------------------------------------------------------------------------------------------*/
  16.     /* Init System Clock                                                                                       */
  17.     /*---------------------------------------------------------------------------------------------------------*/
  18.     /* Unlock protected registers */
  19.     SYS_UnlockReg();

  20.     /* Enable External XTAL (4~24 MHz) */
  21.     CLK_EnableXtalRC(CLK_PWRCTL_HXT_EN_Msk);

  22.     /* Waiting for 12MHz clock ready */
  23.     CLK_WaitClockReady( CLK_CLKSTATUS_HXT_STB_Msk);

  24.     /* Switch HCLK clock source to HXT */
  25.     CLK_SetHCLK(CLK_CLKSEL0_HCLK_S_HXT,CLK_HCLK_CLK_DIVIDER(1));

  26.     /* Enable IP clock */
  27.     CLK_EnableModuleClock(UART0_MODULE);
  28.     CLK_EnableModuleClock(TMR0_MODULE);


  29.     /* Select IP clock source */
  30.     CLK_SetModuleClock(UART0_MODULE, CLK_CLKSEL1_UART_S_HXT, CLK_UART_CLK_DIVIDER(1));
  31.     CLK_SetModuleClock(TMR0_MODULE, CLK_CLKSEL1_TMR0_S_HXT, CLK_TMR0_CLK_DIVIDER(1));

  32.     /* Update System Core Clock */
  33.     /* User can use SystemCoreClockUpdate() to calculate SystemCoreClock. */
  34.     SystemCoreClockUpdate();


  35.     /*---------------------------------------------------------------------------------------------------------*/
  36.     /* Init I/O Multi-function                                                                                 */
  37.     /*---------------------------------------------------------------------------------------------------------*/
  38.     /* Set GPB multi-function pins for UART0 RXD and TXD */
  39.     SYS->PB_L_MFP &= ~(SYS_PB_L_MFP_PB0_MFP_Msk | SYS_PB_L_MFP_PB1_MFP_Msk);
  40.     SYS->PB_L_MFP |= (SYS_PB_L_MFP_PB0_MFP_UART0_TX | SYS_PB_L_MFP_PB1_MFP_UART0_RX);


  41.     /* Lock protected registers */
  42.     SYS_LockReg();
  43. }

  44. int main(void)
  45. {
  46.     /* Init System, IP clock and multi-function I/O
  47.        In the end of SYS_Init() will issue SYS_LockReg()
  48.        to lock protected register. If user want to write
  49.        protected register, please issue SYS_UnlockReg()
  50.        to unlock protected register if necessary */
  51.     SYS_Init();

  52.     /* Init UART to 115200-8n1 for print message */
  53.     UART_Open(UART0, 115200);

  54.     printf("\nThis sample code use timer to create a small delay \n");
  55.     while(1) {
  56.         printf("Delay 1 second\n");
  57.         TIMER_Delay(TIMER0, 1000000);
  58.     }

  59. }

  60. /*** (C) COPYRIGHT 2014 Nuvoton Technology Corp. ***/



643757107 发表于 2017-3-19 00:29 | 显示全部楼层
  TIMER_Delay(TIMER0, 1000000);
库函数实现。
天灵灵地灵灵 发表于 2017-3-19 18:23 | 显示全部楼层
新唐比较靠谱,在定时器相关的库函数里已经考虑到这个延时函数了。
zhuomuniao110 发表于 2017-3-19 23:44 | 显示全部楼层
IP时钟是什么,看操作就是模块的时钟啊。
wahahaheihei 发表于 2017-3-20 18:39 | 显示全部楼层
如果时钟配置修改,后面的延时函数不修改,那么延时还是一样的吗
dongnanxibei 发表于 2017-3-21 13:14 | 显示全部楼层
新唐的库函数提供的很齐全。
yiyigirl2014 发表于 2017-3-21 16:22 | 显示全部楼层
串口和定时器的操作都很容易。
 楼主| huangcunxiake 发表于 2017-3-21 19:41 | 显示全部楼层
比哪个HAL库还好用。
598330983 发表于 2017-3-22 17:56 | 显示全部楼层
不知道这个如果用那个小系统的话,延时怎么写。
598330983 发表于 2017-3-24 09:43 | 显示全部楼层
配置好内核时钟,就要进行更新,使配置生效。
 楼主| huangcunxiake 发表于 2017-3-25 20:37 | 显示全部楼层
简单的用delay
您需要登录后才可以回帖 登录 | 注册

本版积分规则

223

主题

3745

帖子

11

粉丝
快速回复 在线客服 返回列表 返回顶部