Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
动态C(Teso PC1620-PLC)控制LDC_C_Arrays_Embedded_Lcd_Dynamic C - Fatal编程技术网

动态C(Teso PC1620-PLC)控制LDC

动态C(Teso PC1620-PLC)控制LDC,c,arrays,embedded,lcd,dynamic-c,C,Arrays,Embedded,Lcd,Dynamic C,我对任何形式的C语言编程都是新手 我有一个PLC(Teso PC1620)(使用rabbit处理器)和一个LCD屏幕(矩阵轨道LK204-7T-1U-USB-WB)。 我正在尝试使用LCD内置的水平条形图/图形功能 下面的代码可以工作,但我希望能够更改条的长度(“条”数组中的第6个值)。 我试着用注释掉的代码来代替“bar”的静态常量,这似乎不起作用,在LCD上会出现随机条 这是什么原因造成的?是否有一种更简单/更好的方法来分配“条形”数组 动态c 9.62版 链接: 液晶显示器: 可编程逻辑

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

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

下面的代码可以工作,但我希望能够更改条的长度(“条”数组中的第6个值)。 我试着用注释掉的代码来代替“bar”的静态常量,这似乎不起作用,在LCD上会出现随机条

这是什么原因造成的?是否有一种更简单/更好的方法来分配“条形”数组

动态c 9.62版

链接:

液晶显示器:

可编程逻辑控制器:
您的代码似乎是正确的

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


如果您将条形图定义为全局/静态,请尝试它是否有效。

更改条形图长度是否适用于
static
声明?在Rabbit编译器中,
auto
是否有特殊意义<代码>自动通常不是必需的。“声明为静态当然不起作用”我以为问题说的是确实起作用,但不是
auto
localdef。对不起,我之前的评论完全错误,所以我删除了它。不使用“auto”造成了不同,它将条声明为:
charbar[6]使它工作。也像
静态字符条[6]一样声明它工作。我不知道
auto
在Rabbit编译器中是否有特殊意义,我在自学,我所知道的一切都是因为我的代码不起作用。不使用“auto”造成了不同,声明了如下条:
char-bar[6]使它工作。也像
静态字符条[6]一样声明它工作。谢谢你的帮助!
#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 ();
}