嵌入式C实战项目开发技巧:如何对一个有规律的数组表进行位移操作

就像下面的这个表

之前写过上面这个标题的一篇文章,讲的是以位移的方式去遍历表中的数据,效率非常高,但是,如果要实现一个乱序的流水灯或者跑马灯的话,思考一个这样的算法是不可取的,很费时间,也很费脑力,于是,今天就说一说查表法,如果在程序中运用查表法,不论多么复杂的程序,只要符合一张表,那都可以实现,非常简单,体力活而已,接下来看看下面这个程序,对上面这个进行操作吧。

#include <stdio.h>
#include <windows.h>
//这里的行可以自由写,这样就不受限制,想做出什么样的效果都可以。
int array[][10] =  {0x03,0x00,0x00,0x00,0x00,//第一列0x00,0x02,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,//第二列0x00,0x04,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,//第三列0x00,0x08,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x00,//第四列0x00,0x10,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x00,//第五列0x00,0x20,0x00,0x00,0x00,0xAA,0x55,0x00,0x00,0xC0,//end0x00,0x00,0x00,0x00,0x00,};void to_Q112_cmd_designator_LED(int *array)
{int i;for(i = 0; i < 10; i++){printf(" %3d ", *(array+i));    }printf("\n");
}void delay_500ms(void)
{Sleep(500);
}int main(void)
{int i,j;int tick;int count = 0;while(array[count][0] != 0xAA || array[count][1] != 0x55)//如果当数组第count行第0列等于0xAA,或者第count行第1列等于0x55时,那么就退出,否则就循环执行遍历数据 {   to_Q112_cmd_designator_LED((int *)(&array[0][0]+count*10) );//以首元素每次向后偏移10个字节delay_500ms();count++;}return 0;
}

运行结果:

3    0    0    0    0    0    2    0    0    0
  12    0    0    0    0    0    4    0    0    0
  16    0    0    0    0    0    8    0    0    0
  96    0    0    0    0    0   16    0    0    0
 128    1    0    0    0    0   32    0    0    0

嵌入式C语言查表法的项目应用相关推荐

  1. c语言利用查表法画正弦波,嵌入式C语言查表法在项目中的应用

    就像下面的这个表 之前写过上面这个标题的一篇文章,讲的是以位移的方式去遍历表中的数据,效率非常高,但是,如果要实现一个乱序的流水灯或者跑马灯的话,思考一个这样的算法是不可取的,很费时间,也很费脑力,于 ...

  2. c语言查表程序,C语言查表法问题

    在设计内存管理器时,经常需要根据内存的size找到对应的数组index,查表是个不错的解决办法. 假设有一个数组,数组中每个元素代表一个范围,任意给定一个数,要尽可能快得找到其对应的数组索引,有什么好 ...

  3. c语言查表法编程流水灯,通过查表法的流水灯汇编程序

    ORG   0              ;程序从0地址开始 START:    MOV   DPTR,#TAB      ;将DPTR指向编码表位置 LOOP:     CLR   A        ...

  4. C语言查表法实现CRC-16计算

    文章目录 函数实现 示例代码 运行结果 函数实现 /*16 bit CRC with polynomial x^16+x^12+x^5+1 */ uint16_t crc16_compute(cons ...

  5. 【转载】CRC32校验算法C语言版(查表法)

    先放原文链接:CRC32校验算法C语言版(查表法) 这几天搞串口通信,用到CRC32,把以前用到的东西整理一下,方便以后使用. STM32F103 芯片自带的CRC32硬件算法,匹配上位机CRC32算 ...

  6. CRC16查表法的C语言实现

    循环冗余码校验英文名称为Cyclical Redundancy Check,简称CRC.它是利用除法及余数的原理来作错误侦测(Error Detecting)的.实际应用时,发送装置计算出CRC值并随 ...

  7. 单片机c语言NTC温度查表程序,STM32查表法读NTC值并显示温度

    STM32查表法读NTC值并显示温度 #include "stm32f10x.h"Y'+F0IZ+ #include "delay.h"pU'`9fLi_ #i ...

  8. 100分制的成绩转换(C语言)(查表法)

    问题简述:将100分制的成绩转换成A.B.C.D.E和F. 问题分析: 一般教科书上,实现成绩转换功能用if语句或switch语句.用 查表法 来实现,可以做到逻辑简单,程序运行速度快,语句简洁. # ...

  9. CRC16 - CCITT 计算方法(查表法)| C语言实现

    // CRC16_CCITT 计算方法一 unsigned short CRC16_CCITT (unsigned char *pdata, int len) {//初始值 unsigned shor ...

最新文章

  1. 时间计时android程序,Android 时间计时器控件 Chronometer
  2. 【开源方案共享】无序点云快速的线段分割算法
  3. PHP学习笔记 第八讲 Mysql.简介和创建新的数据库
  4. ​GPT-3好“搭档”:这种方法缓解模型退化,让输出更自然
  5. 【5】青龙面板系列教程之Nolanjdc的安装【1月17作者删库,不用尝试了】
  6. leetcode算法题--买卖股票的最佳时机含手续费
  7. RMQ+1/-1算法
  8. 某些书籍翻译的太屎了,误导人!
  9. 前端学习(484):html之实体
  10. 远程桌面超出最大连接数问题
  11. 湖州机器人上课时间_【倒计时5天】燃到炸!湖州吾悦广场10月30日开业狂欢指南,请收下...
  12. wordpress博客加载缓慢解决:去除Open Sans和Lato 字体
  13. 小度wifi当无线网卡
  14. linux游戏盒子恢复默认,dnf多玩补丁_多玩dnf盒子我用了补丁,怎么还原成默认?具体点,......
  15. 23Exchange Server 2010跨站点部署-公网邮箱系统配置及公网记录
  16. SqlServer 备份还原
  17. 《艺多不压身 艺多不养家》反思
  18. Error loading property file
  19. moviepy音视频剪辑:与大小相关的视频变换函数详解
  20. LazyBrush论文笔记(4):问题建模-平滑项与数据项

热门文章

  1. 写在阿里去IOE一周年
  2. 条款20 :宁以pass-by-reference-to-const 替换pass-by-value
  3. Java判断文件类型
  4. hdu1501 记忆化搜索
  5. 【C 语言】字符串模型 ( strstr-while 模型 | 抽象函数模型 | 业务子函数接口定义要点 | 形参指针间接赋值 | 返回值状态 | 形参指针处理 | 形参指针判空 | 形参返回值 )
  6. 【计算机网络】数据链路层 : 信道划分 介质访问控制 ( 数据链路 | 介质访问控制分类 | 频分多路复用 FDM | 时分多路复用 TDM | 波分复用 WDM | 码分多路复用 CDM 计算 )★
  7. 【Android 电量优化】JobScheduler 源码分析 ( JobServiceContext 源码分析 | 闭环操作总结 | 用户提交任务 | 广播接收者接受相关广播触发任务执行 )★
  8. 【Android 应用开发】BluetoothClass详解
  9. Mysql 8.0安装
  10. .net core mvc 区域路由设置(配置)