定时器问题?
if (weight > g_w)
{ P20 = 0 ; }//低电平输出
if(weight < g_w)
P20=1; //高电平输出
这样 程序可以正常工作
if (weight > g_w)
{ P20 = 0 ; } //这里可以工作
if(weight < g_w)
Timer0_Init();
{if(B_2ms == 1) { B_2ms = 0; zt++;}
if(zt==5)P20=1;
}
这样P20=1始终不能动作。那位大佬。看一看什么问题?感觉定时器怎么也没有打开。 void Timer0_Init(void) //2毫秒@24.000MHz
{
AUXR |= 0x80; //定时器时钟1T模式
TMOD &= 0xF0; //设置定时器模式
TL0 = 0x80; //设置定时初始值
TH0 = 0x44; //设置定时初始值
TF0 = 0; //清除TF0标志
TR0 = 1; //定时器0开始计数
ET0 = 1; //使能定时器0中断
EA = 1;
//IP=0X02;
//IPH=0X02;
} 这个问题稿了几天了。哪位大佬帮忙分析下。32g12k128的U 你就说想实现什么功能吧,而且你的C语言语法不过关,代码比较乱,从下面方框最后的分号,这个if语句就结束了。
可以编过 DHBT2023 发表于 2024-9-24 21:39
可以编过
编译正确≠逻辑正确
你的初始化看样子是每次都在执行,这样是无法做到定时功能的。
定时器初始化执行一次就够了 if (weight > g_w)
{ P20 = 0 ; }
Timer0_Init();
if(weight < g_w)
{if(B_2ms == 1) { B_2ms = 0; zt++;}
if(zt==5)P20=1; }
// delayms(10); DHBT2023 发表于 2024-9-24 21:44
if (weight > g_w)
{ P20 = 0 ; }
Timer0_Init();
这个语法没有问题。还是不能动 我刚刚放了delayms(10);在里面。动作了。