gpt4 book ai didi

c - 通过函数返回和外部变量

转载 作者:行者123 更新时间:2023-11-30 17:56:05 25 4
gpt4 key购买 nike

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

最佳答案

您是否尝试在以下时间之间等待:

    printf("MAIN:count = %lu clock_time %lu",count, clock_time());
wait(1000);
flag = 0;

也许时钟非常快,而变量的单位太小而无法表示它。或者可能是变量类型的 printf 中的转换。

关于c - 通过函数返回和外部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13806912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com