我正在从 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() 没有返回正确的计数值。有谁知道我做错了什么?