int LCD_Position(unsigned int X, unsigned int Y) { int Pos; if (X==1) X=0x80; else if (X==2) X=0x90; else if (X==3) X=0x88; else if (X==4) X=0x98; Pos = X+Y ; write_cmd(Pos); //显示地址 }和void LCD_Position(unsigned int X, unsigned int Y) { int Pos; if (X==1) X=0x80; else if (X==2) X=0x90; else if (X==3) X=0x88; else if (X==4) X=0x98; Pos = X+Y ; write_cmd(Pos); //显示地址 }区别
时间: 2023-08-28 13:05:31 浏览: 53
这两个代码片段的区别在于函数的返回类型。
第一个代码片段中的函数定义为`int LCD_Position(unsigned int X, unsigned int Y)`,表示`LCD_Position()`函数返回一个`int`类型的值。然而,在函数的实现中,并没有返回任何值(没有返回语句),因此这个返回类型在实际上是没有意义的。
第二个代码片段中的函数定义为`void LCD_Position(unsigned int X, unsigned int Y)`,表示`LCD_Position()`函数不返回任何值(即void类型)。这也是比较合适的,因为函数内部没有任何地方将返回值赋给任何变量或表达式。
总之,这两个代码片段在函数的返回类型上有所区别,但在函数实现及功能上是相同的,它们都会根据`X`和`Y`的值计算出`Pos`并调用`write_cmd()`函数来显示地址。
相关问题
int LCD_Position(unsigned int X, unsigned int Y) { int Pos; if (X==1) X=0x80; else if (X==2) X=0x90; else if (X==3) X=0x88; else if (X==4) X=0x98; Pos = X+Y ; write_cmd(Pos); //显示地址 }和
根据给出的代码,`LCD_Position()`函数接受两个参数 `X` 和 `Y`,用于设置LCD显示的位置。根据 `X` 的不同值,函数会设置不同的位置。
具体来说,如果 `X` 的值为 `1`,则将其转换为十六进制 `0x80`;如果 `X` 的值为 `2`,则转换为 `0x90`;如果 `X` 的值为 `3`,则转换为 `0x88`;如果 `X` 的值为 `4`,则转换为 `0x98`。
然后,将 `Pos` 设置为 `X + Y` 的值。最后,调用一个名为 `write_cmd()` 的函数,并将 `Pos` 作为参数传递给它。这个函数可能用于将显示地址发送给LCD。
请注意,根据代码中的实现,`LCD_Position()`函数没有返回任何值(没有返回类型声明)。如果你希望该函数返回某个值,并在条件语句中进行判断,你需要修改函数的定义并添加一个合适的返回语句。
在LCD12864中void LCD_Position(unsigned int X, unsigned int Y) { int Pos; if (X == 1) X = 0x80; else if (X == 2) X = 0x90; else if (X == 3) X = 0x88; else if (X == 4) X = 0x98; Pos = X + Y; // 将计算结果赋值给全局变量 lcdPosition = Pos; write_cmd(Pos); // 显示地址 }Pos=0x80和Pos=0x80+1;有啥区别
在这个函数中,`Pos = X + Y` 表示计算得到的结果是根据输入的 `X` 和 `Y` 值计算得到的 LCD 显示地址。如果 `Pos = 0x80`,表示 `X` 值为 1,`Y` 值为 0,即 LCD 的位置在第一行第一列。
而 `Pos = 0x80 + 1`,表示 `X` 值为 1,`Y` 值为 1,即 LCD 的位置在第一行第二列。
所以,两者之间的区别是 `Pos=0x80` 表示显示在第一行第一列,而 `Pos=0x80+1` 表示显示在第一行第二列。
你可以根据具体的需求选择适合的计算方式来确定 LCD 的位置。