2284|2

286

帖子

1

TA的资源

一粒金砂(中级)

楼主
 

瑞萨电子设计大赛-自动化控制盒四 [复制链接]

本帖最后由 liaoyuanhong 于 2015-9-26 02:15 编辑

        大家晚上好,首选,祝大中秋节快乐。
        上次我学习了LED的点亮,那么,今天我们来学什么呢。个人觉得定时器是很重要的,它可以做为一个定时的时基,也可以设定时间在低功耗中唤醒CPU,还有PWM输出等等,所以学习定时器还是很重要的。
        定时器, 我就先从最基本的学起吧。我们用定时器中断做一个1S的闪LED灯程序。所以我们要用到的功能就是作为间隔定时器了。看下图:  
           
        作为间隔定时器输出。首先我们应该先选择定时器的时钟(CK00,CK01),设定好定时器的周期(TDR0N),开启中断,然后打开定时器,软件触发一个中断进行计时了。
            

        从规格书上,我们也看到了,定时器设置的例子。

        
          从上面,可以看出,定时器寄存器的设定了。我们写定时器的初始化函数。


     TAU0EN = 1;      /* Supplies input clock */
          TPS0 =0x05;      /* CK00, fMCLK = fCLK/(2^5) = 625kHz */
          TMR00H =0;      /* TPS0 setting available, only software trigger */
          TMR00L =0;      /*Falling edge, Interval timer mode */
          TDR00H =0xf4;   /*Interval time = (0xf423+1)/625kHz = 100ms */
          TDR00L = 0x23;
          TMIF00 =0;       /*Clears INTTM00 and INTTM01 interrupt flag */
          TMMK00 =0;     /*Enables INTTM01 interrupt */
          TMPR100 =1;     /*Sets INTTM01 low priority */
          TMPR000 = 1;
          TS0 |= 0x01;      /* Starts TAU00 */

然后我们在头文件上面添加中断入口地址:

#pragma interrupt INTTM00 TAU0_Channel0_Interrupt

编写中断函数:

void TAU0_Channel0_Interrupt(void)
{
              TMIF00=0;         /*Clears INTTM00 and INTTM01 interrupt flag */
              dat++;
}

       //初始化GPIO

       void PORT_Init(void)
{
             PM0 = 0XFD;          /*Set the output*/
             PU0 = 0X02;            /*On the pull*/
             P0 = 0X00;        /* output 0 */
             POM0 = 0X00; /*Usually the output of the model*/
}

      //MAIN数据

void main(void)
{      
        System_Init();        /* Initializes some function moudle */
        while(1)
        {   
              if(dat == 10 )
              {
                  //P0 ^= (1 << 1);
                    dat = 11;
                    P0 = 0x00;
                    dar = 0;
              }
             if(dar ==10 )
              {
                   //P0 ^= (1 << 1);
                     dar = 11;
                     P0 = 0xff;
                     dat = 0;
                }
         }
}
        这样,定时器就可以工作了。


最新回复

  详情 回复 发表于 2015-9-26 08:47
点赞 关注
个人签名

失恋中。。。


回复
举报

1891

帖子

2

TA的资源

纯净的硅(中级)

沙发
 
 
个人签名
分享铸就美好未来。。。




 

回复

286

帖子

1

TA的资源

一粒金砂(中级)

板凳
 
写的不好。见谅哈。
 
个人签名

失恋中。。。

 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表