我的这个单片机程序 同时启用定时器0和1 怎么不能实现呢个,单个使用正常

我的这个单片机程序 同时启用定时器0和1 怎么不能实现呢个,单个使用正常,同时启用定时器0和1 定时1用于串口中断 ,定时0用于定时1MS中断 求助前辈们指导指导一下 是怎么回事呢…

我的这个单片机程序 同时启用定时器0和1 怎么不能实现呢个,单个使用正常,同时启用定时器0和1 定时1用于串口中断 ,定时0用于定时1MS中断 求助前辈们指导指导一下 是怎么回事呢?把我给搞蒙了

单片机源程序如下:

void ConfigSUART(unsigned int baud)
{
    ACC = P_SW1;
    ACC &= ~(S1_S0 | S1_S1);    //S1_S0=0 S1_S1=0
    //ACC |= S1_S1;               //(P1.6/RxD_3, P1.7/TxD_3)
    //ACC |= S1_S0;               //(P3.6/RxD_2, P3.7/TxD_2)
    P_SW1 = ACC;                //(P3.0/RxD, P3.1/TxD)
   
  
   SCON = 0x50;                //8位可变波特率
    AUXR |= 0x40;                //定时器1为1T模式
    AUXR &= 0xFE;   
    TMOD &= 0x80;                //定时器1为模式0(16位自动重载)
    TL1 = (65536 – (FOSC/4/BAUD));   //设置波特率重装值
    TH1 = (65536 – (FOSC/4/BAUD))>>8;
    TR1 = 1;                    //定时器1开始启动
    ET1=1;
    TI = 1;   //在串口使用printf的时候,需要将T1=1;
    ES = 1;                     //使能串口中断
    printf(“\n 串口初始化\n”);   
}

/* 配置并启动T0,ms-T0定时时间 */
void ConfigTimer0(unsigned int ms)
{
    unsigned long tmp;  //临时变量
   
    tmp = 11059200 / 12;      //定时器计数频率
    tmp = (tmp * ms) / 1000;  //计算所需的计数值
    tmp = 65536 – tmp;        //计算定时器重载值
    tmp = tmp + 33;           //补偿中断响应延时造成的误差
   
   //AUXR |= 0x80;                   //定时器0为1T模式
    AUXR &= 0xFE;                   //定时器0为12T模式
    TMOD &= 0xF8;                    //设置定时器为模式0(16位自动重装载)
    TH0 = (unsigned char)(tmp>>8);  //定时器重载值拆分为高低字节
    TL0 = (unsigned char)tmp;

    ET0 = 1;        //使能T0中断
    TR0 = 1;        //启动T0
}

void main()
{
    P0M1 = 0;    P0M0 = 0;    //设置为准双向口
    P1M1 = 0;    P1M0 = 0;    //设置为准双向口
    P2M1 = 0;    P2M0 = 0;    //设置为准双向口
    P3M1 = 0;    P3M0 = 0;    //设置为准双向口
    P4M1 = 0;    P4M0 = 0;    //设置为准双向口
    P5M1 = 0;    P5M0 = 0;    //设置为准双向口
    P6M1 = 0;    P6M0 = 0;    //设置为准双向口
    P7M1 = 0;    P7M0 = 0;    //设置为准双向口
    //上面这些是必要的,除非用到PWM
   
  

  ConfigSUART(115200);

    ConfigTimer0(1);   //配置T0定时1ms

     EA = 1;            //开总中断
     
    while (1)
    {

    }
}

,顶一下

作者: soufei

为您推荐


Fatal error: Can't use function return value in write context in /www/wwwroot/www.qianrushi.com.cn/wp-content/themes/news/footer.php on line 115