小张 发表于 2014-6-16 22:18:12

样例程序修改成库文件

买了一块带字库的OLED,样例程序中的字库查询程序没有使用库文件,现在将其修改成库文件后,编译通不过。
原样例程序中代码:

/****从字库IC中取汉字或字符数据(1个字节)***/
static uchar get_data_from_ROM( )
{
uchar i;
uchar ret_data = 0;

digitalWrite(Rom_SCK, HIGH);
for (i = 0; i < 8; i++)
{
    // pinMode(Rom_OUT,INPUT_PULLUP); // pull high
    digitalWrite(Rom_SCK, LOW);
    ret_data = ret_data << 1;
    if (digitalRead(Rom_OUT)) ret_data++;
    digitalWrite(Rom_SCK, HIGH);
}
return (ret_data);
}
/*
从相关地址
      addrHigh :地址高字节
      addrMid:地址中字节
      addrLow:地址低字节
中连续读出DataLen个字节的数据到 pBuff的地址
*/
/*连续读取*/
void get_n_bytes_data_from_ROM(uchar addrHigh, uchar addrMid, uchar addrLow, uchar *pBuff, uchar DataLen )
{
uchar i;
digitalWrite(lcd_cs, HIGH);
digitalWrite(Rom_CS, LOW);
digitalWrite(Rom_SCK, LOW);
send_command_to_ROM(0x03);
send_command_to_ROM(addrHigh);
send_command_to_ROM(addrMid);
send_command_to_ROM(addrLow);
for (i = 0; i < DataLen; i++ )
    *(pBuff + i) = get_data_from_ROM();
digitalWrite(Rom_CS, HIGH);
}
/******************************************************************/


现修改为库文件时的代码:
/****从字库IC中取汉字或字符数据(1个字节)*/
static uchar get_data_from_ROM( )
{
uchar i;
uchar ret_data=0;
digitalWrite(rsck, HIGH);
for(i=0;i<8;i++)
{
    digitalWrite(rsck, LOW);
    ret_data = ret_data<<1;
    if(digitalRead(rout)) ret_data++;
    digitalWrite(rsck, HIGH);
}
return(ret_data);
}

/*连续读取*/
void SSD1306::get_n_bytes_data_from_ROM(uchar addrHigh,uchar addrMid,uchar addrLow,uchar *pBuff,uchar DataLen )
{
uchar i;
digitalWrite(rcs, LOW);
digitalWrite(rsck, LOW);
send_command_to_ROM(0x03);
send_command_to_ROM(addrHigh);
send_command_to_ROM(addrMid);
send_command_to_ROM(addrLow);
for(i = 0; i < DataLen; i++ )
   *(pBuff+i) = get_data_from_ROM();
digitalWrite(rcs, HIGH);
}

结果编译就报错了o

I:\Program Files\arduino-1.5.6-r2\libraries\SSD1306\SSD1306.cpp: In function 'unsigned char get_data_from_ROM()':
I:\Program Files\arduino-1.5.6-r2\libraries\SSD1306\SSD1306.cpp:530: error: 'rsck' was not declared in this scope
I:\Program Files\arduino-1.5.6-r2\libraries\SSD1306\SSD1306.cpp:535: error: 'rout' was not declared in this scope

高手请教,应该如何修改?
页: [1]
查看完整版本: 样例程序修改成库文件