zoukankan      html  css  js  c++  java
  • 定时器延时

     1 #include <iocc2540.h>
     2 
     3 typedef unsigned char uchar;
     4 typedef unsigned int uint;
     5 
     6 uint flag = 0;          //用于定时器计数
     7 
     8 #define LED1 P1_0
     9 #define LED2 P1_1
    10 #define LED3 P1_2
    11 #define LED4 P1_3
    12 
    13 void led_init(void)
    14 {
    15   P1DIR |= 0X0F;                //I/O方向设置,P1.0定义为输出
    16   P1SEL &= ~0X0F;               //作为普通的io口
    17   LED1 = 0;
    18   LED2 = 0;
    19   LED3 = 0;
    20   LED4 = 0;
    21 }
    22 
    23 
    24 /******************************
    25 *name: T3_Init
    26 *function: 定时器初始化,系统不配置工作时钟默认是2分频,即16MHZ
    27 *******************************/
    28 void T3_Init(void)
    29 {
    30   T3IE = 1;             //T3中断使能
    31   T3CCTL0 = 0XCA;       //捕捉上边缘
    32   T3CTL |= 0xF8;         //128分频
    33   //T1STAT = 0x21;        //选择0通道
    34   EA = 1;
    35 }
    36 
    37 //定时器T3中断处理函数
    38 #pragma vector = T3_VECTOR
    39 __interrupt void T3_ISR(void)
    40 {
    41   IRCON = 0X00;         //清中断标志
    42   flag++;
    43   if(flag>230)          //计数值为245,230次中断后LED灯取反,闪烁一轮为1秒延时
    44   {
    45     flag = 0;           //clr count
    46     LED2 = ~LED2;       //中断执行的任务
    47     
    48   }
    49 }
    50 
    51 void main(void)
    52 {
    53   //initialize hardware
    54   led_init();
    55   T3_Init();
    56   
    57   //uchar count = 0;
    58   while(1)
    59   {
    60     /*if(IRCON>0)
    61     {
    62       //进入中断
    63       IRCON = 0;        //进入中断,首先关闭中断
    64       if (count++ >=2)
    65       {
    66         count = 0;              //count清除
    67         LED1 = ~LED1;
    68       }
    69     }*/
    70   }
    71   
    72 }
  • 相关阅读:
    mongodb搭建
    使用systemctl管理服务
    常用命令--find
    linux中的常用信号
    bash 中的特殊变量
    tomcat开启PID文件
    django基础入门
    Redis源码编译安装
    DRF路由组件
    Django/DRF序列化
  • 原文地址:https://www.cnblogs.com/Blue-Moniter4/p/9710573.html
Copyright © 2011-2022 走看看