gpt4 book ai didi

c - Dynamic C (Teso PC1620-PLC) 控制 LDC

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

我对任何形式的 C 编程都是新手。

我有一个带有液晶屏(矩阵轨道LK204-7T-1U-USB-WB)的PLC(Teso PC1620)(使用rabbit处理器)。我正在尝试使用 LCD 内置的水平条形/图表功能。

下面的代码可以工作,但我希望能够更改条形的长度(“bar”数组中的第六个值)。我尝试使用注释掉的代码而不是“bar”的静态常量,这似乎不起作用并在 LCD 上给出随机条。

什么可能导致这种情况,是否有一种更简单/更好的方法来分配“bar”数组。

#use "oempc16xxdrivers.elib"                            //Include the OEM pro-teso PC16XO driver library
#define DINBUFSIZE 31 //Defining the serial IN buffer size
#define DOUTBUFSIZE 31 //Defining the serial OUT buffer size

void main()
{

static const char clear[] = {254,88}; //Clear LCD command
static const char load[] = {254,104}; //Initialize horizontal bar
static const char bar[] = {254,124,1,1,0,54}; //Place horizontal bar(245,124) column,Row,Direction,Length

auto int percentage;
auto int rxKey;
//auto char bar[6];

IOInit(); //Initialises the PC1600 (PLC).
serDopen(19200L); //Setting the baudrate of the serial port
serDrdFlush(); //Flushes the serial port D input buffer
serDwrFlush(); //Flushes the serial port D transmit buffer

serDwrite(clear,sizeof(clear)); //Clear LCD
serDwrite(load,sizeof(load)); //Initialize horizontal bar

// bar[0] = 254;
// bar[1] = 124;
// bar[2] = 1;
// bar[3] = 1;
// bar[4] = 0;
// bar[5] = 54;

for(;;)
{
rxKey = serDgetc();

percentage = 10;
//bar[5] = percentage;

if (0x42 == rxKey)
{
serDwrite(bar,sizeof(bar));
}
}

serDclose ();
}

动态c版本9.62

链接:

液晶显示屏: https://www.matrixorbital.com/advanced_search_result.php?keywords=LK204-7T-1U+usb&search.x=0&search.y=0

PLC: http://www.teso.com.au/pro-teso/PC1-Controllers/PC1600-Controller.aspx

最佳答案

您的代码似乎是正确的。

是否有可能堆栈空间非常不足?这很可能是罪魁祸首,因为您添加了自动变量。

如果将 bar 定义为全局/静态,请尝试是否有效。

关于c - Dynamic C (Teso PC1620-PLC) 控制 LDC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29612756/

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