阅读魏坤第一版示波器的程序,有处地方不明白,阅读过魏坤程序的朋友进来帮忙下,谢谢了。
if(qqq==1){
for(i=0;i<121;i++)
{
cdd=add;
cdd=add/2+add/2;
}
for(j=0;j<30;j++)
{
m=128;
for(i=j*8;i<(j+1)*8;i++)
{
k=cdd;
lcd_buffer=(lcd_buffer|m);
lcd_buffer=(lcd_buffer|m);
if(cdd<cdd)
{
for(k=cdd;k<cdd;k++)
{
lcd_buffer=(lcd_buffer|m);
}
}
else
{
for(k=cdd;k>cdd;k--)
{
lcd_buffer=(lcd_buffer|m);
}
}
m>>=1;
}
for(h=0;h<240;h++)
{
lcd_bus = 0x60;
_CS = 0;
RS = 0;
_WR = 0;
_WR = 1;
RS = 1;
_CS = 1;
lcd_bus = j;
_CS = 0;
RS = 0;
_WR = 0;
_WR = 1;
RS = 1;
_CS = 1;
lcd_bus = 0x70;
_CS = 0;
RS = 0;
_WR = 0;
_WR = 1;
RS = 1;
_CS = 1;
lcd_bus = h;
_CS = 0;
RS = 0;
_WR = 0;
_WR = 1;
RS = 1;
_CS = 1;
lcd_bus = lcd_buffer;
_CS = 0;
RS = 1;
_WR = 0;
_WR = 1;
RS = 0;
_CS = 1;
lcd_buffer=0;
}
}
}
else
{
for(j=0;j<30;j++)
{
m=128;
for(i=j*8;i<(j+1)*8;i++)
{
k=add;
lcd_buffer=(lcd_buffer|m);
lcd_buffer=(lcd_buffer|m);
if(add<add)
{
for(k=add;k<add;k++)
{
lcd_buffer=(lcd_buffer|m);
}
}
else
{
for(k=add;k>add;k--)
{
lcd_buffer=(lcd_buffer|m);
}
}
m>>=1;
}
for(h=0;h<240;h++)
{
lcd_bus = 0x60;
_CS = 0;
RS = 0;
_WR = 0;
_WR = 1;
RS = 1;
_CS = 1;
lcd_bus = j;
_CS = 0;
RS = 0;
_WR = 0;
_WR = 1;
RS = 1;
_CS = 1;
lcd_bus = 0x70;
_CS = 0;
RS = 0;
_WR = 0;
_WR = 1;
RS = 1;
_CS = 1;
lcd_bus = h;
_CS = 0;
RS = 0;
_WR = 0;
_WR = 1;
RS = 1;
_CS = 1;
lcd_bus = lcd_buffer;
_CS = 0;
RS = 1;
_WR = 0;
_WR = 1;
RS = 0;
_CS = 1;
lcd_buffer=0;
}
}
} else后面的程序明白了,但if(qqq==1) 后面的语句不明白,而且我找遍了整个程序都没有看到给qqq附初始值的情况,感觉if(qqq==1)后面的程序,好象是实现双通道,上下半屏两个波形的显示的?
for(i=0;i<121;i++)
{
cdd=add;
cdd=add/2+add/2;
}
有谁可以解释下这个for循环吗, 尤其是这一句,cdd=add/2+add/2; 为什么要把前后两个数据,除以2然后在相加呢?
还有就是这段程序
for(i=j*8;i<(j+1)*8;i++)
{
k=cdd;
lcd_buffer=(lcd_buffer|m);
lcd_buffer=(lcd_buffer|m);
if(cdd<cdd)
{
for(k=cdd;k<cdd;k++)
{
lcd_buffer=(lcd_buffer|m);
}
}
我觉的这一句好象有点多余,lcd_buffer=(lcd_buffer|m); 知道的朋友可以解释下,这个语句的用途吗?
在这里先谢谢大家了。 准备硬件中,软件还没怎么看!看一下那数组在那里用到,就知道那语句有没有用了! 移位. 是波型正反显示标志位
页:
[1]