ADS1.2中二维数组的问题

[复制链接]
1947|1
 楼主| mm7989680 发表于 2008-9-19 10:23 | 显示全部楼层 |阅读模式
ADS1.2中二维数组的问题<br />&nbsp;AT91RM9200驱动240*128点阵液晶屏(T6963C),程序中用二维数组存储字模数据,如下:<br />unsigned&nbsp;char&nbsp;ASCII[][16]={<br />&nbsp;&nbsp;&nbsp;&nbsp;0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,&nbsp;&nbsp;//&nbsp;-&nbsp;-<br />&nbsp;&nbsp;&nbsp;&nbsp;0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;0x00,0x00,0x18,0x3C,0x3C,0x3C,0x18,0x18,&nbsp;&nbsp;//&nbsp;-!-<br />&nbsp;&nbsp;&nbsp;&nbsp;0x18,0x00,0x18,0x18,0x00,0x00,0x00,0x00,<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;0x00,0x66,0x66,0x66,0x24,0x00,0x00,0x00,&nbsp;&nbsp;//&nbsp;-&quot;-<br />&nbsp;&nbsp;&nbsp;&nbsp;0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;0x00,0x00,0x00,0x6C,0x6C,0xFE,0x6C,0x6C,&nbsp;&nbsp;//&nbsp;-#-<br />&nbsp;&nbsp;&nbsp;&nbsp;0x6C,0xFE,0x6C,0x6C,0x00,0x00,0x00,0x00,<br />***********等等<br />在程序中调用:<br />void&nbsp;LcdDisString(uchar&nbsp;x,uchar&nbsp;y,uchar&nbsp;z,uchar&nbsp;*str,uchar&nbsp;mm,uchar&nbsp;bk)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;uchar&nbsp;i,j,temp1,temp2;<br />&nbsp;&nbsp;&nbsp;&nbsp;uint&nbsp;&nbsp;StartAddr,StartAddr1;<br />&nbsp;&nbsp;&nbsp;&nbsp;uchar&nbsp;Line;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;Line=x*8+z;<br />&nbsp;&nbsp;&nbsp;&nbsp;StartAddr1=Line*LineChar+y;<br />&nbsp;&nbsp;&nbsp;&nbsp;i=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;if(bk==0)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&ltmm;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StartAddr=StartAddr1+i;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(j=0;j&lt16;j++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SendLcdData((uchar)StartAddr);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SendLcdData((uchar)(StartAddr&gt&gt8));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SendLcdCommand(0x24);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//定位<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SendLcdData(ASCII[(str-32)][j]^LcdA);//这里调用二维数组<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SendLcdCommand(0xc4);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StartAddr=StartAddr+LineChar;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&ltmm;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StartAddr=StartAddr1+i;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(j=0;j&lt16;j++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SendLcdData((uchar)StartAddr);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SendLcdData((uchar)(StartAddr&gt&gt8));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SendLcdCommand(0x24);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//定位&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SendLcdData(~ASCII[(str-32)][j]^LcdA);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SendLcdCommand(0xc4);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StartAddr=StartAddr+LineChar;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br />其中str的指针指向二维数组基地址,程序中定义uchar&nbsp;StrFreq[]&nbsp;=&nbsp;&quot;Freq.&quot;;//<br />调用LcdDisString(2,0,0,StrFreq,5,0);<br />单步执行来看,ASCII[(str-32)][j]的值不是我在二维数组中对应的点阵数据,而我在keil中编译通过,并且可以正确调<br />用二维数组显示字符,<br />难道ADS1.2中的编译器和keil中的相差很大,不支持这种写法?<br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

113

主题

374

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部