高中生
最后登录1970-1-1
在线时间 小时
注册时间2014-9-24
|
float f = 0;
unsigned int k1 = 400;
unsigned short int u = 400;
void TIM2_IRQHandler(void)
{
if ( TIM_GetITStatus(TIM2 , TIM_IT_Update) != RESET )
{
time++;
f--;
k1 = -u;
printf("The unsigned short int 0X%0X\r\n",-u);
printf("The unsigned int 0X%0X\r\n",-k1);
if(f <= -u)
{
f = 0;
LED3_TOGGLE;
}
//return 0;
TIM_ClearITPendingBit(TIM2 , TIM_FLAG_Update);
}
}
请注意在这段代码是一个累计数的f--,当f <= -u,也就是-400,led闪一下,也就是400ms闪一下
其中u为unsigend short int ,不过当我把u的类型改为unsigned int 时也就是代码里面的k1,if语句总是为真这是怎么回事呢?
我用printf把他们的十六进制形式输出来了,unsigned short int 是0XFFFFFE70,而unsigned int 是0x190
这是怎么回事呢?
|
|