[DemoCode下载] NM1200利用定时器自动翻转一个IO

[复制链接]
1002|10
 楼主| wanduzi 发表于 2018-2-9 17:15 | 显示全部楼层 |阅读模式

  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: 2 $
  5. * $Date: 15/04/08 11:44a $
  6. * [url=home.php?mod=space&uid=247401]@brief[/url]    Demonstrate the timer 0 toggle out function on pin P3.4.
  7. *
  8. * @note
  9. * Copyright (C) 2015 Nuvoton Technology Corp. All rights reserved.
  10. *****************************************************************************/
  11. #include <stdio.h>
  12. #include "NM1200_NM1100.h"

  13. void SYS_Init(void)
  14. {
  15.     /*---------------------------------------------------------------------------------------------------------*/
  16.     /* Init System Clock                                                                                       */
  17.     /*---------------------------------------------------------------------------------------------------------*/

  18.     /* Unlock protected registers */
  19.     SYS_UnlockReg();

  20.     /* Read User Config to select internal high speed RC */
  21.     SystemInit();

  22.     /* Enable external 12MHz XTAL (UART), and HIRC */
  23.     CLK->PWRCTL = CLK_PWRCTL_XTL12M | CLK_PWRCTL_HIRCEN_Msk;

  24.     /* Waiting for clock ready */
  25.     CLK_WaitClockReady(CLK_STATUS_XTLSTB_Msk | CLK_STATUS_HIRCSTB_Msk);

  26.     /* Enable UART and Timer 0 clock */
  27.     CLK->APBCLK = CLK_APBCLK_UART0CKEN_Msk | CLK_APBCLK_TMR0CKEN_Msk;

  28.     /* Select UART clock source from external crystal*/
  29.     CLK->CLKSEL1 = (CLK->CLKSEL1 & ~CLK_CLKSEL1_UART0SEL_Msk) | CLK_CLKSEL1_UART0SEL_XTAL;

  30.     /* Update System Core Clock */
  31.     /* User can use SystemCoreClockUpdate() to calculate SystemCoreClock and CycylesPerUs automatically. */
  32.     SystemCoreClockUpdate();


  33.     /*---------------------------------------------------------------------------------------------------------*/
  34.     /* Init I/O Multi-function                                                                                 */
  35.     /*---------------------------------------------------------------------------------------------------------*/
  36.     /* Set P1 multi-function pins for UART RXD, TXD */
  37.     SYS->P0_MFP = SYS_MFP_P00_TXD | SYS_MFP_P01_RXD;

  38.     /* Set P3 multi-function pins for Timer toggle output pin */
  39.     SYS->P3_MFP = SYS_MFP_P34_T0;

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

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

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

  53.     printf("\nThis sample code use timer 0 to generate 1kHz toggle output to T0 pin (P3.4) \n");

  54.     /* To generate 1kHZ toggle output, timer frequency must set to 2000Hz.
  55.        Because toggle output state change on every timer timeout event */
  56.     TIMER_Open(TIMER0, TIMER_TOGGLE_MODE, 2000);
  57.     TIMER_Start(TIMER0);

  58.     while(1);
  59. }

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




 楼主| wanduzi 发表于 2018-2-9 17:16 | 显示全部楼层
感觉这个很实用,不用担心中断后再操作造成的延时了。
yiyigirl2014 发表于 2018-2-9 17:43 | 显示全部楼层
配置了这个,定时器还可以做其他的吗
dongnanxibei 发表于 2018-2-10 17:07 | 显示全部楼层
这个功能很实用。
dongnanxibei 发表于 2018-2-10 17:07 | 显示全部楼层
可以映射到每一个IO上吗
dongnanxibei 发表于 2018-2-10 17:08 | 显示全部楼层
设置成了这个功能后,貌似就不用配置IO为输出模式了,真方便。
734774645 发表于 2018-2-10 17:38 | 显示全部楼层
比手动设置翻转方便多了
antusheng 发表于 2018-2-11 11:56 | 显示全部楼层
应该可以使用其他目的。
dongliushui 发表于 2018-2-11 12:01 | 显示全部楼层
这个设计前所未有。
zhuotuzi 发表于 2018-2-19 16:54 | 显示全部楼层
不知道这个功能影响定时器的其他中断不
heisexingqisi 发表于 2018-2-21 10:15 | 显示全部楼层
这个功能是怎么实现的,其他单片机可以这么做吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

156

主题

1922

帖子

3

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