打印

我第一次搞ARM7,要做个产品了_续2,当前进度。

[复制链接]
1292|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
JIFENG|  楼主 | 2008-2-23 16:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1.将电路板送上电,发现焊接的三个大的滤波电容方向错了,注意这种方形的黄色的1808规格贴片电容应当是钽电容,方向是有横杠的一端是正极。
2.由于我是用的T6963的液晶屏,电压5V,所以使用电阻与S64连接。S64需要这样设置
//关闭上拉电阻
AT91F_PIO_CfgPullup(AT91C_BASE_PIOA,LCD_MASK|LCD_data);
//输出开漏
AT91F_PIO_MultiDriverEnable(AT91C_BASE_PIOA,LCD_MASK|LCD_data);
这样就可以产生5V的电平了,但是很不行,我原来的C51上的程序还是不能移植过来。
这是T6963.C的一部分。
#include "T6963.h"

void wait ( void )
{
  unsigned char i; 
  for(i=50;i>0;i--)  {}
}
void RWCheck(void)
{
  unsigned char i; 
  for(i=50;i>0;i--)  {}
}
void AutoWCheck(void)

  unsigned char i;
  for(i=50;i>0;i--) {}
}
/*    控制指令    */
void ctrl(unsigned char command)
{
  unsigned int k;
  //AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, 0x7F800000) ; 
  RWCheck(); 
  k= command<<23;//完成移位的操作
  AT91F_PIO_SetOutput( AT91C_BASE_PIOA, CD ) ;   
  wait ();
  AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, WD) ; wait ();
  AT91F_PIO_SetOutput( AT91C_BASE_PIOA, k ) ; wait ();    
  AT91F_PIO_SetOutput( AT91C_BASE_PIOA, WD ) ; wait ();
}
/*    写数据    */
void write(unsigned char dat ) 
{   unsigned int k;
  RWCheck();
  k= dat<<23;//完成移位的操作
  AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, CD ) ;    wait ();   
  AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, WD) ; wait ();
  AT91F_PIO_SetOutput( AT91C_BASE_PIOA, k ) ;  wait ();
  
  AT91F_PIO_SetOutput( AT91C_BASE_PIOA, WD ) ; wait ();
  AT91F_PIO_SetOutput( AT91C_BASE_PIOA, CD ) ; wait ();
}
/*    自动写    */
void autowrite(unsigned char dat)
{   unsigned int k;
  AutoWCheck();
  k= dat<<23;//完成移位的操作
  AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, CD ) ;   wait ();    
  AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, WD) ; wait ();
  AT91F_PIO_SetOutput( AT91C_BASE_PIOA, k ) ;  wait ();
  
  AT91F_PIO_SetOutput( AT91C_BASE_PIOA, WD ) ; wait ();
  AT91F_PIO_SetOutput( AT91C_BASE_PIOA, CD ) ; wait ();
}

相关帖子

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

本版积分规则

10

主题

25

帖子

0

粉丝