#define ADDR1 0x000000FF<br />#define ADDR2 0x0000FF00<br /><br /><br />void w_addr1(uint32 addr)<br />{<br /> PINSEL0&=0xFFFF0000;<br /> IO0DIR=ADDR1; <br /> IO0PIN=(IO0PIN&0xFFFFFF00)|addr;<br />}<br /><br />void w_addr2(uint32 addr)<br />{<br /> PINSEL0=0x0000FFFF;<br /> IO0DIR=ADDR1;<br /> IO0PIN=(IO0PIN&0xFFFF00FF)|(addr<<8);<br /> <br />}<br /><br />int main(void)<br />{<br /><br /> uint32 myaddr1;<br /> uint32 myaddr2;<br /> myaddr1=0x55;<br /> myaddr2=0xaa;<br /><br /> while(1)<br /> {<br /> w_addr1(myaddr1);<br /> w_addr2(myaddr1);<br /> }<br /> return 0;<br />}<br /><br />P0.2,P0.3,P0.11,P0.14等接口都加了上拉电阻了(在板子背面将跳线处短接了),在main()的while(1)里,只写一个函数w_addr1(myaddr1)或w_addr2(myaddr1),用示波器看管脚电平都对,如果两个函数一起写有的管脚是个方波,不是高低电平了.<br />w_addr1(myaddr2);<br />w_addr2(myaddr2);<br />P0.14,P0.2,P0.5是方波,其它管脚正常.<br /><br />w_addr1(myaddr1);<br />w_addr2(myaddr1);<br />P0.3,P0.7,P0.11,P0.4,P0.6是方波,其它管脚正常.<br /><br />为什么是这样啊??谢谢. |
|