我的问题与变量total
有关。调试器就像它甚至不在那里一样,或者如果你摆脱了*
,它会运行并运行,并提供一个奇怪的数字。该计划的想法是向角色total
添加角钱(或10),直到它大于目标10000
。C变化量正在被越过
我正在用C语言编写IAR Embedded Workbench,并使用MSP430G2553。
#include <msp430g2553.h>
#include <stdio.h>
volatile unsigned int i;
int dime=0;
int goalz =10000;
int main(void)
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
P1DIR |= 0x00;
for(;;){
P1OUT =0x01;
while(1)
{
if((BIT4 & P1IN))
{
P1OUT |= 0x01;
dime++;
int *total = 0;
*total = &dime;
}
else
{
P1OUT |= 0x00;
}
}
}
}
请注意,'P1OUT | = 0x00;'是一个无操作。您是否记得'P1OUT&=〜0x01;'重置最低有效位?编译器应该警告类型不匹配的地方'* total = &dime;' - 注意编译器的警告。如果它警告的话,那是因为你的代码错了,它认为它不能在不让你知道你可能犯了错误的情况下编译它。 –