[DemoCode下载] ISD9100系列的TALARM

[复制链接]
505|5
 楼主| 幸福小强 发表于 2020-1-31 20:51 | 显示全部楼层 |阅读模式
ARM, sd, TE, ck
  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: 1 $
  5. * $Date: 14/07/01 10:00p $
  6. * [url=home.php?mod=space&uid=247401]@brief[/url]    Access temperature alarm event via TALARM interrupt.
  7. * @note
  8. * Copyright (C) 2014 Nuvoton Technology Corp. All rights reserved.
  9. *
  10. ******************************************************************************/
  11. #include <stdio.h>
  12. #include <string.h>
  13. #include "ISD9100.h"

  14. /* Config-Bit to start or stop the SysTick Timer */
  15. #define SYSTICK_ENABLE              0   
  16. /* Clocksource has the offset 2 in SysTick Control and Status Register */
  17. #define SYSTICK_CLKSOURCE           2
  18. /* Waiting for 12M Xtal stalble */
  19. #define SYSTEM_DELAY_US             5000

  20. void TALARM_IRQHandler(void)
  21. {
  22.         /* Clear tempture alarm interrupt flag */
  23.         TALARM_ClearIntFlag(BODTALM);

  24.         printf("Temperature Sense event occurs\n");
  25. }

  26. void SYS_Init(void)
  27. {
  28.     /*---------------------------------------------------------------------------------------------------------*/
  29.     /* Init System Clock                                                                                       */
  30.     /*---------------------------------------------------------------------------------------------------------*/
  31.     /* Unlock protected registers */
  32.     SYS_UnlockReg();

  33.     /* Enable External OSC49M */
  34.     CLK_EnableXtalRC(CLK_PWRCTL_LXTEN_Msk);

  35.         /* Assume the internal 22MHz RC used(waiting for 12Xtal stalble) */
  36.     SysTick->LOAD = SYSTEM_DELAY_US * 22;
  37.     SysTick->VAL = (0x00);
  38.     SysTick->CTRL = (1 << SYSTICK_CLKSOURCE) | (1<<SYSTICK_ENABLE);

  39.     /* Waiting for down-count to zero(waiting for 12Xtal stalble) */
  40.     while((SysTick->CTRL & (1 << 16)) == 0);

  41.         /* Set Uart CLK source */
  42.         CLK_SetModuleClock(UART_MODULE, NULL, CLK_CLKDIV0_UART(1));
  43.        
  44.     /* Enable IP clock */
  45.     CLK_EnableModuleClock(UART_MODULE);
  46.        
  47.     /* Update System Core Clock */
  48.     /* User can use SystemCoreClockUpdate() to calculate SystemCoreClock. */
  49.     SystemCoreClockUpdate();

  50.     /*---------------------------------------------------------------------------------------------------------*/
  51.     /* Init I/O Multi-function                                                                                 */
  52.     /*---------------------------------------------------------------------------------------------------------*/
  53.     /* Set GPG multi-function pins for UART0 RXD and TXD */
  54.         SYS->GPA_MFP  = (SYS->GPA_MFP & (~SYS_GPA_MFP_PA8MFP_Msk) ) | SYS_GPA_MFP_PA8MFP_UART_TX;
  55.         SYS->GPA_MFP  = (SYS->GPA_MFP & (~SYS_GPA_MFP_PA9MFP_Msk) ) | SYS_GPA_MFP_PA9MFP_UART_RX;

  56.     /* Lock protected registers */
  57.     SYS_LockReg();
  58. }

  59. /* Main */
  60. int main(void)
  61. {
  62.     /* Init System, IP clock and multi-function I/O */
  63.     SYS_Init();       

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

  66.     printf("\n+------------------------------------------------------------------------+\n");
  67.     printf("|                           TALAM Sample Code                            |\n");
  68.     printf("+------------------------------------------------------------------------+\n");
  69.     printf("| Temperature Alarm Sense Level = 105C                                   |\n");
  70.     printf("+------------------------------------------------------------------------+\n");
  71.     printf("\n");
  72.        
  73.         /* Initate tempture alarm & detect value */
  74.         TALARM_Open(TALARM_TALMVL_105C);
  75.         /* Enable interrupt */
  76.         TALARM_EnableInt(BODTALM);
  77.         NVIC_EnableIRQ(TALARM_IRQn);

  78.     while(1);
  79. }

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


 楼主| 幸福小强 发表于 2020-1-31 21:04 | 显示全部楼层
temperature alarm 报警事件
 楼主| 幸福小强 发表于 2020-1-31 21:05 | 显示全部楼层
超过后就报警。
zhuomuniao110 发表于 2020-1-31 21:33 | 显示全部楼层
还用到了滴答时钟。
643757107 发表于 2020-1-31 22:19 | 显示全部楼层
分享的资料非常不错。
734774645 发表于 2020-1-31 22:35 | 显示全部楼层
定时器有上下计数之分。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

143

主题

1727

帖子

3

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