初级会员

- 积分
- 78
- 金钱
- 78
- 注册时间
- 2012-7-21
- 在线时间
- 0 小时
|

楼主 |
发表于 2012-11-1 22:20:48
|
显示全部楼层
要不我发我的程序给你看:
void  rogram_Display(unsigned char program_i) //一行数据最大32*8个字节
{
static u16 i,j,n1,n2,up_offset,left_offset,count,ccount;
u8 flag; u16 num;
SPI_Flash_Read(buff_char_parameter,0x0,256);
n_Screen_Long=buff_char_parameter[0];
n_Screen_High=buff_char_parameter[1];
n_Str_High=buff_char_parameter[2]; //取模字符串有点阵屏显示行数,字符高度
// n_Str_Long=buff_char_parameter[4];
n_NumofChar=buff_char_parameter[3];//对应n个字符对应长度放在【5~】之后的一段空间当中
//n行字符串
m_Screen_Long_Str=(unsigned char *)malloc(n_Screen_Long*8); //开辟适合屏幕长度相适应该的长度数组
m_Char_Long=(unsigned char *)malloc(n_NumofChar); //开辟装载字符长度标量的数组
SPI_Flash_Read(m_Char_Long,0xff,n_NumofChar); //将字符串长度参数存放入数组中;
//比较得出一个长度最大的字符串长度
for(num=0;num<n_NumofChar-1;num++)
{
flag=(m_Char_Long[num]>m_Char_Long[num+1])?m_Char_Long[num]:m_Char_Long[num+1] ;
}
myfree(m_Flash_char_Str);
m_Flash_char_Str=(unsigned char *)malloc(flag); //每个字符串长度单行相适应的数组大小空间
while(1)
{ /* for(unsigned char k=0;k<n_NumofChar;k++) */
// m_Flash_char_Str=(unsigned char *)malloc(m_Char_Long[k]); //每个字符串长度单行相适应的数组大小空间
// SPI_Flash_Read(m_Flash_char_Str,512+offset_Flah_Char,m_Char_Long[k]); //512地址开始
// offset_Flah_Char+=m_Char_Long[k];
//清屏
/* for(i=0;i<32;i++)
{
for(j=0;j<8;j++)
WriteByte(i,0xff);
Port(i);
led_LT=1;
led_LT=0;
}
*/
frame1(); //边框
// m_Flash_char_Str=(unsigned char *)malloc(m_Char_Long[k]); //每个字符串长度单行相适应的数组大小空间
for(n1=0;n1<32;n1++)
{
SPI_Flash_Read(m_Flash_char_Str,512+offset_Flah_Char+up_offset,m_Char_Long[k]); //512地址开始+读一行数据
offset_Flah_Char+=m_Char_Long[k];
for(n2=0;n2<n_Screen_Long*8;n2++)
{
trim_function2(); //预显示一行
WriteByte(n1,m_Screen_Long_Str[ccount++]);
}
ccount=0;
count++;
if(count==n_Str_High)
{
count=0;
// m_offset++; 动态时用到
k++;if(k==n_NumofChar) k=0;
}
Port(n1);
led_LT=1;
led_LT=0;
}//myfree(m_Flash_char_Str);
}
}> |
|