我開始從Microchip編程dspic33和我有問題,當我嘗試返回一個外部變量。我的代碼在3個文件被分割,是這樣的:返回和外部變量通過函數
main.c
#include <stdio.h> /*printf definition ... */
#include "clock.h"
volatile unsigned long count = 0;
int16_t main(void)
{
clock_init();
while(1)
{
if(flag)
{
printf("MAIN:count = %lu clock_time %lu",count, clock_time());
flag = 0;
}
}
return 0;
}
clock.h
...
extern volatile unsigned long count;
...
clock.c
#include "clock.h"
void __attribute__((__interrupt__, no_auto_psv)) _T1Interrupt(void)
{
count++;
flag=1;
IFS0bits.T1IF = 0;
}
unsigned long clock_time(void)
{
return count;
}
的輸出是一樣的東西:
MAIN:count = 1 clock_time : 590106798
MAIN:count = 2 clock_time : 590106798
MAIN:count = 3 clock_time : 590106798
等。 ..
我想知道爲什麼clock_time()沒有返回count的正確值。有誰知道我做錯了什麼?
在這種情況下,「正確的」值是多少?是什麼讓你斷定你現在看到的是不正確的? – AnT