编译器是KEIL,片子是PLC2138,PINSEL和IODIR寄存器都已经设置。Wclk为P1.22,已经设置为输出口,下面的这小段程序却出了问题。 1)执行过程中IO口的状态不变!只有加延时,IO口状态才会变化。 2)把这段程序放在一个while(1){...}里死循环执行,IO口也是变化的,可以达到1MHz左右。
查了相关的帖子,把PCLK由1/4*CPU频率改为和CPU频率相同,发现只是状态转换的时间短了,没有解决问题。IOSET1和直接写IO1PIN的方法也试过了,不行。 for(j=0; j<32; j++) { Wclk_H; //Delay(1); Wclk_L; //Delay(1); } 请大家分析下原因,谢谢了! |