天嵌 ARM开发社区

 找回密码
 注册
查看: 2754|回复: 1

2440定时器问题

[复制链接]
范程浩 发表于 2014-11-17 23:07:33 | 显示全部楼层 |阅读模式
悬赏5未解决
写了一个2440的定时器4的程序,时钟为FCLK=400M,HCLK=100M,PCLK=50M;定时器为0.5s进入中断。
为什么断的频率不是0.5s。中断控制的LED闪烁很快。贴出程序,求高人指点
void Timer_Init(void)
{                                                        //使能定时器4的自动重装,定时器启动,手动更新
       
         rINTPND = rINTPND | (0x1<<14);         
         rINTMSK = ~(0x1<<14);            //打开定时器4中断                  
         rTCFG0 &= 0xFF00FF;         
         rTCFG0 |= 0xf900;        // prescaler等于249      
         rTCFG1 &= ~0xF0000;           
         rTCFG1 |= 0x20000;     //divider等于8,则设置定时器4的时钟频率为25kHz
     rTCNTB4 = 12500;              //让定时器4每隔0.5秒中断一次

     rTCON &= ~0xF00000;        
     rTCON |= 0x700000;         
     rTCON &= ~0x200000;              //定时器4开始工作

         pISR_TIMER4 = (U32)Timer4_ISR;
}

void __irq Timer4_ISR(void)
{
       static int count;
       count ++;
       rSRCPND = rSRCPND | (0x1<<14);//定时器4 清零
       rINTPND = rINTPND | (0x1<<14);//清中断
       //每隔2秒蜂鸣器响一次,持续时间为0.5秒,并伴随着LED亮
                       if(count %4 == 0)
                       {
              LED1_ON;
            }
            else if(count %4 == 1)
            {
             LED1_OFF;
            }

}

TQ-ZQL 发表于 2014-11-18 09:51:10 | 显示全部楼层
参考一下我们裸机程序里的2440lib.c里的delay与pwm的相关设置函数
回复

使用道具 举报

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

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2025-10-28 07:36 , Processed in 2.046571 second(s), 18 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表