微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 渴望看懂这个复杂程序!

渴望看懂这个复杂程序!

时间:10-02 整理:3721RD 点击:

//定时器0中断函数

void T0_INT() interrupt 1

{

       TL0=LO_LIST[Song[Song_Index][Tone_Index]];

       TH0=HI_LIST[Song[Song_Index][Tone_Index]];

       SPK=~SPK;

}
   其中LO_LIST[Song[Song_Index][Tone_Index]]怎么理解?一般都是TL0=0x**;

LO_LIST[Song[Song_Index][Tone_Index]];
HI_LIST[Song[Song_Index][Tone_Index]];
这两个是什么呢?

一个二维数组的值做为一个一维数组的下标。然后这个一维数组里的值就是你想要的 0x** 或是十进制值了嘛。

要说这个语句写的还是很好的嘛,从变量就能看出意思来。
Song 是一个二维数组,第一维保存了几首歌,第一维的每个数组是歌中的每一个音(相应的高低计数值对应的下标,即LO_LIST 和 HI_LIST)。然后用下标 Song_Index 和 Tong_Index 来获得相应歌曲的相应音符计数值下标,再去两个 LIST 中获取计数值,赋值给计时器,从而达到简化程序的目的。
我觉得这个设计很高级。学习学习。

我觉得就是一个二维数组而已,但是他的值在不断的变化,他的定时时间也在变化的,

麻烦说详细一点,谢谢。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top