打印

定时器不工作

[复制链接]
636|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
CallReceiver|  楼主 | 2015-11-15 16:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void Timer0_Init(void)
{
    AUXR0 |= T0XL;
    AUXR2 &= ~T0X12;   //选定时器时钟源为SYSCLK
//    AUXR2 |= 0X01;     //使能T0从P3.4输出
    AUXR2 &= 0xFE;       //禁止T0从P3.4输出
    TMOD&=0XF0;
    TMOD|=0X01;         //定时器0工作于方试1,即16位定时器

    TH0=0xec;                              
    TL0=0x78;                             
   
    ET0=1;              //定时器0开启中断
        EA=1;
    TR0=1;
}
void timer0_isr(void) interrupt 1
{
         xs(1,6);
         delay(100);
         P37=0;
         delay(100);
         P37=1;
     
}
void main
{
     void Timer0_Init();
    while(1)
    {
    }

}
沙发
CallReceiver|  楼主 | 2015-11-15 16:24 | 只看该作者
哪位大神解释下为什么定时器不工作,那个p37控制蜂蜜器叫!

使用特权

评论回复
板凳
sourceInsight| | 2015-11-15 16:31 | 只看该作者

检查下具体配置,还有,你把中断里的处理程序放出来,中断里面不要放延时!浪费资源

使用特权

评论回复
地板
handleMessage| | 2015-11-15 16:35 | 只看该作者
用示波器看看P37是否有变化,蜂鸣器响的条件是什么?

使用特权

评论回复
5
boy1990| | 2015-11-15 16:41 | 只看该作者
delay不知道是啥,会不会造成还没跳出delay就到下一次定时中断了。

使用特权

评论回复
6
boy1990| | 2015-11-15 16:41 | 只看该作者
这代码写的真够烂的,方式1,中断服务程序中要重新赋值的。。

使用特权

评论回复
7
forget345| | 2015-11-16 09:50 | 只看该作者
delay(100);
P37=0;
delay(100);
P37=1;

直接改为 P37=~P37;  当然这达不到你要的效果。但是会叫

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

64

主题

1695

帖子

1

粉丝