下面的程序当运行到最下面的“SET_MAX7032_CS();”后不会停止而是跳到第一个for循环。当把两个for循环分别用i和j做计数后正常!为什么? -------------------------------- #include "SM89516AC.h" #define CS P3_4 #define DIO P3_5 #define SCLK P3_7
void CLR_MAX7032_CLK(void) { SCLK=0;} void SET_MAX7032_CLK(void) {SCLK=1;} void CLR_MAX7032_DAT(void) { DIO=0;} void SET_MAX7032_DAT(void) {DIO=1;} void CLR_MAX7032_CS(void) { CS=0;} void SET_MAX7032_CS(void) {CS=1;} void Max7032Write(char addr,char dat) { char i; CLR_MAX7032_CS(); for(i=0;i<8;i++) { CLR_MAX7032_CLK(); if(addr&0x80)SET_MAX7032_DAT(); else CLR_MAX7032_DAT(); SET_MAX7032_CLK(); addr<<=1; }
for(i=0;i<8;i++) { CLR_MAX7032_CLK(); if(dat&0x80)SET_MAX7032_DAT(); else CLR_MAX7032_DAT(); SET_MAX7032_CLK(); dat<<=1; } CLR_MAX7032_CLK(); SET_MAX7032_CS(); }
main() {
Max7032Write(0x40,0xBA);
} |