【AT-START-F403A测评】六、你好!雅特力
<p>上次显示字符没显示出来,今天有点时间,进函数单步了一下,原来是背景色和前景色一样了。</p><pre>
<code>for(pos=0;pos<16;pos++)
{
temp=asc2_1608[(u16)num*16+pos]; //μ÷óÃ1608×Öìå
for(t=0;t<8;t++)
{
if(temp&0x01)POINT_COLOR=colortemp;
else POINT_COLOR=BACK_COLOR;
LCD_WR_DATA(POINT_COLOR);
temp>>=1;
x++;
}
x=x0;
y++;
} </code></pre>
<p>而POINT_COLOR和BACK_COLOR根本就没有赋值。</p>
<p>默认是黑的,0x0000再追这两个变量,都是外部变量。</p>
<p>上回思想上有点报怨卖我屏的厂家。现在看来是我错了。</p>
<p>接着看了看屏的函数,有汉字显示,那就显示个“你好!雅特力!”吧。</p>
<p>说干就干,先分析一下函数:</p>
<pre>
<code>void showhanzi(unsigned int x,unsigned int y,unsigned char index)
{
unsigned char i,j;
unsigned char *temp=hanzi;
Address_set(x,y,x+31,y+31); //éèÖÃÇøóò
temp+=index*128;
for(j=0;j<128;j++)
{
for(i=0;i<8;i++)
{
if((*temp&(1<<i))!=0)
{
LCD_WR_DATA(POINT_COLOR);
}
else
{
LCD_WR_DATA(BACK_COLOR);
}
}
temp++;
}
}</code></pre>
<p>可见是32*32逐行显示的,那就取个模吧:</p>
<p>取模设置如下:</p>
<p></p>
<p>生成的字模得处理一下,总是有中括号在数组里面,全删掉可以编译不报错:</p>
<p>在主程序就显示就行了:</p>
<pre>
<code>
showhanzi(10,100,0);
showhanzi(42,100,1);
showhanzi(42+32,100,2);
showhanzi(42+32*2,100,3);
showhanzi(42+32*3,100,4);
showhanzi(42+32*4,100,5);
showhanzi(42+32*5,100,6);
</code></pre>
<p>运行效果如下:</p>
<p></p>
<p>好显眼</p>
<p><a href="https://bbs.eeworld.com.cn/thread-1143018-1-1.html" target="_blank">雅特力AT-START-F403A测评汇总</a></p>
<p>汇总贴:<a href="https://bbs.eeworld.com.cn/thread-1143018-1-1.html" target="_blank">https://bbs.eeworld.com.cn/thread-1143018-1-1.html</a></p>
页:
[1]