渴望看懂这个复杂程序!
时间: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 中获取计数值,赋值给计时器,从而达到简化程序的目的。
我觉得这个设计很高级。学习学习。
我觉得就是一个二维数组而已,但是他的值在不断的变化,他的定时时间也在变化的,
麻烦说详细一点,谢谢。