问题找到,检测两个上升沿的程序执行时间太长,导致有的数据比正确值大2倍或3倍。现在要怎么减少程序执行时间,嵌套汇编?该怎么做啊?版主帮帮忙啊!!!
void TIM_Init(void)
{
TIOS_IOS0 = 0;
TFLG1_C0F = 1;
TCTL4_EDG0A = 1;
TCTL4_EDG0B = 0;
TSCR1_TEN = 1;
}
void main(void)
{
TIM_Init();
uint temp,i,data[16],TIC,TICH;
DisableInterrupts;
while(!TFLG1_C0F);
TFLG1_C0F=1;
TICH = TC0;
for(i=0;i<16;i++)
{
while(!TFLG1_C0F);
TFLG1_C0F=1;
TIC=TC0;
if(TICH>TIC)temp=TIC+(65535-TICH+1);
else temp=TIC-TICH;
data=temp;
TICH=TIC;
} |