在C中执行查找表的最佳方式是什么?

在C中执行查找表的最佳方式是什么?,第1张

概述我正在搞嵌入式C项目.我有一个LCD显示屏,每个字符有一个5×7点阵.要显示一个特定的字符,你必须要移动5个字节,这些点与点打开.所以我需要使用一个键进行某种查找表,我可以传递一个ASCII字符,并获得一个5个字节的数组返回… 例如,这样调用这个函数, GetDisplayBytes( ‘A’); 应该返回一个这样的数组… C [0] = 0x7E:C [1] = 0x90:C [2] = 0x9 我正在搞嵌入式C项目.我有一个LCD显示屏,每个字符有一个5×7点阵.要显示一个特定的字符,你必须要移动5个字节,这些点与点打开.所以我需要使用一个键进行某种查找表,我可以传递一个ASCII字符,并获得一个5个字节的数组返回…
例如,这样调用这个函数,

GetdisplayBytes( ‘A’);

应该返回一个这样的数组…

C [0] = 0x7E:C [1] = 0x90:C [2] = 0x90:C [3] = 0x90:C [4] = 0x7E

在C中做什么是最好的方法?

解决方法 我将为要使用的连续ASCII块创建数组.数据.这样的事情
uint8_t displayBytesLetters[] = {  0x73,0x90,0x73,// 'A'  .  .  .};uint8_t displayBytesDigits[] = {  0x12,0x15,0x25,0x58,0x80,// '0'  .  .  .};

那么你的GetdisplayBytes()就像:

uint8_t *GetdisplayBytes(char c){  if (isdigit(c))    return &displayBytes[5*(c - '0')];  else if (isupper(c))    return &displayBytes[5*(c - 'A')];  else    return NulL;}

将返回的指针传递给任何函数输出数据:

voID Dodisplay(uint8_t *displayBytes){  int i;  for (i = 0; i < 5; i++)   {     SendOutput(displayBytes[i]);  }}
总结

以上是内存溢出为你收集整理的在C中执行查找表的最佳方式是什么?全部内容,希望文章能够帮你解决在C中执行查找表的最佳方式是什么?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1249301.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存