打印

我是新手,求助 12864在系统下的驱动,与C++类有关的问题。

[复制链接]
1764|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tenme1|  楼主 | 2010-1-23 22:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 tenme1 于 2010-1-23 22:58 编辑

我想写一个12864液晶驱动,SPI接口的,所以我就编了一个Lcd12864的类,类如下
class Lcd12864:public Canvas//Canvas是液晶上层类
{  
  public
  Lcd12864();
  void Spi_Init();//SPI初始化
  void Prot_Init();//12864引脚初始化,如片选CS,复位Res,等。。。。

    PIN PIN[4];//PIN是引脚的上层类,下面还在实际芯片的引脚类。
  void Back_Lcd(uint8 on);//0为关闭,1为打开
  void Clc_Lcd(uint8 flag);
  void Put_Pixel(U8 x,U8 y,U8 flag);
  /*在液晶屏上打印一个像素
  void Line(U8 x1, U8 y1,U8 x2,U8 y2,U8 flag);
   void Circle(int x, int y, int radius, unsigned char flag);
  void Rectangle(int x1, int y1, int x2, int y2, unsigned char flag);

  void glcd_degree_line(int x, int y, int degree, int inner_radius, int outer_radius, unsigned char flag);

void PutString(unsigned int x,unsigned int y ,char *p);/


}

上面红色的函数是引脚初始化,主要想对12864液晶运用到的引脚如,SPI接口,片选CS,复位RES ,指令数据选通A0这些端口进行初始化。如果这样的话,问题就来了,因为这只是驱动,在实用中,用哪些芯片也不知道,这些片选,复位引脚也不知道用到哪 些GPIO口,所以我现在不能定义这个连接和初始化这些端口。。。。。。
我想到了在这个类里多定义了Publice引脚的几个对象:如:Pin PIN[4]//PIN[4]这4个对象分别用在片选,复位,选通端,与背光的四个接口,再由初始化引脚函数调用它们来进行初始化。(PIN是一个上层的引脚类,继承它的有LPC2138_PIN,LPC2103_PIN等类)   本人想到一个问题,上面定义的引脚是PIN[4]一个虚拟类的对象,应该定义对象改了LPC2138_PIN PIN[4];或LPC2103_PIN PIN[4];是不是?????,但如果我改了,在用12864时,芯片用什么型号我还不确定,不能直接定义对象。所以我应该怎么解决这个问题。帮帮帮我,有谁写过类似的,请加我QQ:525135916 讨论一下 。:Q


例如一个问题:
void Lcd12864:: Lcd_BackLed(uint8 on){
if(on==1){
  IO0CLR=1<<15;  //打开背光
}
else if(on==0){
  IO0SET=1<<15;  //关闭背光
}//假定如果背光引脚我知道用的是P0.15.则上面类函数的定义就是对的了。但现在就是事先还不知道背光要用到哪些引脚。我只能调用类里定义的对象,修改为如下:


void Lcd12864:: Lcd_BackLed(uint8 on){
if(on==1){
  IO0CLR=1<<;PIN1->;Pinselord;  //打开背光.Pin1->pinseord是引脚编号
}
else if(on==0){
  IO0SET=1<<;PIN1->;Pinselord;  //关闭背光

}

这样,当我用12864时,知道背光用到了哪个GPIO引脚了,我只要在main()函数里,对12864类里的PIN1这个对象进行初始化设置了那个引脚就行了。这样的想法对不对呀,如果对的话,那在类里的PIN[4]这几个对象定义了哪个类呢,是PIN,还是LPC2138_PIN呢?????????

相关帖子

沙发
HWM| | 2010-1-23 22:24 | 只看该作者
这些“引脚”和GPIO的对应关系是在硬件设计时就应决定了,而编程时必须知道具体是如何对应的。

使用特权

评论回复
板凳
tenme1|  楼主 | 2010-1-23 22:55 | 只看该作者
2# HWM
嗯 ,如果知道硬件电路的路,这个驱动就简单了,现在还不知道哦.所以我事先事实定义好了他们PIN[4],当实际用时,编程时只要对接引脚就行了。现在就是不知道怎么对接引脚??

使用特权

评论回复
地板
HWM| | 2010-1-23 23:06 | 只看该作者
给每个引脚一个名字,然后根据具体GPIO的对应关系建立一个头文件,内含相应脚的宏定义。

使用特权

评论回复
5
tenme1|  楼主 | 2010-1-24 23:38 | 只看该作者
帮帮我呀

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

31

帖子

1

粉丝