先说下AD1,AD2,AD3,这个是我错,没有注释清楚。
我要访问的ic是8mbit,也就说有0x00 00 00 ~~0x10 00 00 的寻址空间。而SPI接口的latch每次只能发送8bit,则要访问ic就需连续发3次8bit的地址。这就是为什么要AD1,AD2,AD3了。比如说要访问:0x7c 56 12,则AD1= 0x7c, AD2= 0x56, AD3= 0x12.
static有3大特性(建议看一下潜入式 程序员应制到的0x10个问题),其中一个特性为:static 定义的函数只能模块内调用。 因为我只想让Flash_Busy()被模块内的函数调用,不想让别的模块知道甚至调用它。
volatile是这样一个定义,当每次访问被它调用的变量时,因为它是“易挥发的”,所以每次都要重新访问一下它的寄存器。即:while(temp) equal to while(ReadSPIMemStatus() &1).如不用volatile 定义的话,在while(temp)中的temp的值将不会改变,则这个function 就毫无意义了。
[此贴子已经被作者于2006-10-17 9:23:16编辑过] |