我在通过 UART 发送浮点数以绘制在 Microchip 的数据可视化器上的图表中时遇到问题。
int
我可以毫无问题地绘制数字,但浮点数让我发疯。
我用 Laplace trnasform 做了一个正弦波。之后通过双线性 z 变换将其放在“z”平面上,然后将方程放入 dsPIC33FJ128GP802 的主程序中。它工作正常。在终端中,我可以看到这些值,如果我在 gnumeric 上复制/粘贴这些值并制作图表,它会显示我的离散正弦波。
当我尝试在 MPLABX 的数据可视化器中绘制浮点数“yn”时,问题就出现了。我在中间缺少一些东西。
我在 Debian Bullseye 上使用 MPLABX v5.45、XC16 v1.61。与微控制器的通信是透明的@9600-8N1。
这是我的主要代码:
int main(void)
{
InitClock(); // This is the PLL settings
Init_UART1();// This is the UART Init values for 9600-8-N-1
float states[6] = {0,0,0,0,0,0};
// states [xn-2 xn-1 xn yn yn-1 yn-2]
xn = 1.0; //the initial value
while (1)
{
yn = 1.9842*yn1-yn2+0.0013*xn1+0.0013*xn2; // equation for the sine wave
yn2 = yn1;
yn1 = yn;
xn2 = xn1;
xn1 = xn;
putc(0x03,stdout);
//Here I want to send the xn to plot in MDV
putc(0xFC,stdout);
}
}
方程中的变量
yn = 1.9842*yn1-yn2+0.0013*xn1+0.0013*xn2;
像#define
这样
#define xn states[2]
#define xn1 states[1]
#define xn2 states[0]
#define yn states[3]
#define yn1 states[4]
#define yn2 states[5]
和WriteUART1(0x03);
用于WriteUART1(0xFC);
Data Visualizer 查看第一个字节和最后一个字节。就像 Microchip 视频中的示例一样。
问题是:如何管理yn
要由 Microchip Data Visualizer 绘制的浮点数。
提前致谢。