EDN首页   博客首页 用户登陆  |  注册

日志档案

发表于 2009/7/5 11:38:51

1

标签: arm9  定时器  ADS  mini2440  

arm9开发2-定时器

又是这样,先忙一个晚上,没有结果,但在第二天很快就把事情搞定了。终于啊,定时器的定时方法弄完了,但在RAM中运行的方法还没弄明白。

下面是源码,有注释,我就不说废话了。但自己觉得重点有:

1、  时钟的设置。

2、  定时器的设置。

3、  中断的用法,主要是中断向量的赋值方法。要看看启动代码,弄明白了那个对以后的学习肯定是大有好处的。

注:不改动的话是用了中断,把中断禁止,再把注释掉的恢复就是查询的用法了。

 

#include "def.h"

#include "2440addr.h"

 

U32 j;

 

void __irq ISR_timer4(void)

{       

         rSRCPND |= 0x00004000;

         rINTPND |= 0x00004000;

         rGPBDAT = 0x01f<<j++;

         if (j>9)

                   j = 5;

}       

 

void Main(void)

{

         U32 i;

         j = 5;

 

//init clock       

         rCLKCON = 0x02110;       //enable clk for timer,pwm and port

         rUPLLCON = 0x00038022;   //UPLL = 96Mhz

         rMPLLCON = 0x00078012;   //MPLL = 256Mhz

         rCLKDIVN = 0X0b;         //HCLK = FCLK/2 = 128Mhz

                                                      //PCLK = HCLK/2 = 64Mhz

                                                      //UCLK = UPLL/2 = 48Mhz

//flag of start                                               

         rGPBCON = 0x155555;      //PORTB5-8 for output

         rGPBUP  = 0x03ff;        //PORTB5-8 pull_up disable

    rGPBDAT = 0x80;

    for(i=0;i<500000;i++)

    ;

    rGPBDAT = 0x01e0;

    for(i=0;i<500000;i++)

    ;

 

//init timer4

         pISR_TIMER4 = (unsigned)ISR_timer4;

        

         rINTMSK ^= 0x00004000;    //intmask_timer4 = 1;

         rTCFG0 = 0x0000C700;     //pre_CLK = PCLK/200 = 320Khz

         rTCFG1 = 0x00030000;     //MUX_CLK = pre_CLK/16 = 20Khz

    rTCNTB4 = 20000;          //f_INT_timer4 = MUX_CLK/20000 = 1hz

        rTCON  = 0x00200000;//timer4:EN_UPDATE  

    rTCON  = 0x00500000;//timer4 start,DIS_UPDATE

   

     for (;;)

         {

/*

                   if (rSRCPND & 0x00004000)

                 {

                            rSRCPND |= 0x00004000;

                            rGPBDAT = 0x0ef<<j++;

                            if (j>9)

                                     j = 5;

                   }

*/

         }

}

 

系统分类: ARM   |   用户分类: ARM9 mini2440   |   来源: 原创   |   【推荐给朋友】   |   【添加到收藏夹】

阅读(422)  |  评论(0)  |  收藏(0)  |  举报  

投一票您将和博主都有获奖机会!