我使用ccs5.4 ,28335,使用printf打印时,只能打印出高16位。想打印32位数。。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我使用ccs5.4 ,28335,使用printf打印时,只能打印出高16位。想打印32位数。。
不知您的代码是怎样的.我附上之前测试的代码,您可以参考一下
#include <stdint.h>
#include <stdio.h>
typedef int64_t S64;
typedef int32_t S32;
typedef int16_t S16;
S32 OSDC__s32Time_Error;
S16 OSDC__s16ProportionalGain, OSDC__s16LoopGain;
S64 s64Time_Error, s64ProportionalGain, s64LoopGain;
S64 s64PropComponent, OSDC__s64IntegratorState;
S64 s64PropComponentTest, OSDC__s64IntegratorStateTest;
void init()
{
OSDC__s32Time_Error = 0x24F235C2;
OSDC__s16ProportionalGain = 0x5000;
OSDC__s16LoopGain = 0x0028;
}
void TestFunction1(void)
{
s64Time_Error = (S64)OSDC__s32Time_Error;
s64ProportionalGain = (S64)OSDC__s16ProportionalGain;
s64LoopGain = (S64)OSDC__s16LoopGain;
s64PropComponent = s64Time_Error * s64ProportionalGain;
OSDC__s64IntegratorState += s64Time_Error * s64LoopGain;
}
void TestFunction2(void)
{
S64 s64Time_Error__STACK;
S64 s64ProportionalGain__STACK;
S64 s64LoopGain__STACK;
s64Time_Error__STACK = (S64)OSDC__s32Time_Error;
s64ProportionalGain__STACK = (S64)OSDC__s16ProportionalGain;
s64LoopGain__STACK = (S64)OSDC__s16LoopGain;
s64PropComponentTest = s64Time_Error__STACK * s64ProportionalGain__STACK;
OSDC__s64IntegratorStateTest += s64Time_Error__STACK * s64LoopGain__STACK;
}
void main()
{
init();
TestFunction1();
puts("After TestFunction1");
printf("s64PropComponent: 0x%llx, expected 0xB8BB0CCA000\n",
s64PropComponent);
printf("OSDC__s64IntegratorState: 0x%llx, expected 0x5C5D86650\n",
OSDC__s64IntegratorState);
TestFunction2();
puts("After TestFunction2");
printf("s64PropComponentTest: 0x%llx, expected 0xB8BB0CCA000\n",
s64PropComponentTest);
printf("OSDC__s64IntegratorStateTest: 0x%llx, expected 0x5C5D86650\n",
OSDC__s64IntegratorStateTest);
}