我的問題與變量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;' - 注意編譯器的警告。如果它警告的話,那是因爲你的代碼錯了,它認爲它不能在不讓你知道你可能犯了錯誤的情況下編譯它。 –