这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » 2407A 2407A求助

共2条 1/1 1 跳转至

2407A 2407A求助

院士
2006-09-17 18:14:16     打赏
2407A 2407A求助



关键词: 2407A     求助    

院士
2006-12-22 22:43:00     打赏
2楼
问 我在用2407A调试LCD的时候一老是不正确(有时候对)我单步执行看程序的时候就在,
for(i=100;i<480;i++)  

  for(j=100;j<800;j++)
  {      
  x=i;
  y=j;
  ink=(unsigned long int )(x*0x0400)+y;
  first=(unsigned int)((ink&0x070000)>>8)+(unsigned int)0x0aa;
  second=((unsigned int )(ink&0xffff));
  } 这里出问题,有时候可以进第2个for,有时候x,y的值乱变我把所有程序都贴出来,请大家帮我看看 1: c程序#include "f2407.h"      
//#define first port1000  
//#define second port1008   
#define first port1000
#define second port1008
#define uchar unsigned char

//#define fore 0x011
//#define back 0x044
ioport unsigned port0ffff;
ioport unsigned port1000;
ioport unsigned port1008;
void inline disable()
{
asm( " setc INTM ");
}
void inline enable()
{
asm(" clrc INTM ");
}
main()
{       
unsigned long  int ink;
unsigned int  x,y=0;  
//unsigned  char x,y   ;    
uchar i,j;
//disable();
asm(" clrc INTM ");

asm( " clrc SXM ");
asm( " clrc OVM ");
asm( " clrc CNF ");
*SCSR1=0X86FE;
*WDCR=0X0E8;
*IMR=0X0000;
*IFR=0X0FFFF;
*MCRA=*MCRA&0X00FF;
*PBDATDIR=(*PBDATDIR|0X0FfFF)&0X0FF0f;
*PBDATDIR=(*PBDATDIR|0X0FfFF)&0X0FF00;
*PBDATDIR=(*PBDATDIR|0X0FfFF)&0X0FF04;
*MCRC=*MCRC&0X0FFE1;
*PEDATDIR=*PEDATDIR|0X0FF00;
//*PEDATDIR=0X0FF02;
//while(1);    
x=0;  
//y=0;
for(i=100;i<480;i++)  

  for(j=100;j<800;j++)
  {      
  x=i;
  y=j;
  ink=(unsigned long int )(x*0x0400)+y;
  first=(unsigned int)((ink&0x070000)>>8)+(unsigned int)0x0aa;
  second=((unsigned int )(ink&0xffff));
  }

while(1);
//{
//;
//}
}
//KEY INT PROCEDURE
void interrupt key()
{
int k;
disable();
// START();
enable();
}
void interrupt nothing()
{
int i;
i=0;
return;
} 2: CMD文件-stack 512
MEMORY
{
  PAGE 0:    /* Program Memory */
    VECS:           org=00000h,   len=00040h   /* internal FLASH */
    FLASH:          org=0100h,   len=07F00h   /* internal FLASH */
    //EXTPROG:        org=08800h,   len=07000h   /* external SRAM  */

  PAGE 1:    /* Data Memory */
    B2:             org=00060h,   len=00020h   /* internal DARAM */
    B0:             org=00200h,   len=00100h   /* internal DARAM */
    B1:             org=00300h,   len=00100h   /* internal DARAM */
    SARAM:          org=00800h,   len=00800h   /* internal SARAM */
    EXTDATA:        org=08000h,   len=08000h   /* external SRAM  */
}

SECTIONS
{
/* Sections generated by the C-compiler */
        .text:  >   FLASH    PAGE 0   /* initialized */
       .cinit:  >   FLASH    PAGE 0   /* initialized */
       .const:  >   FLASH    PAGE 0   /* initialized */
      .switch:  >   FLASH    PAGE 0   /* initialized */
         .bss:  >   EXTDATA       PAGE 1   /* uninitialized */
       .stack:  >   SARAM      PAGE 1   /* uninitialized */
      .sysmem:  >   B1         PAGE 1   /* uninitialized */

/* Sections declared by the user */
      vectors:  >   VECS       PAGE 0   /* initialized */
}

3: 还有在写I/O口的时候在写I/O口的时候也是有时候对(用示波器看)我怀疑是CCS,还是CMD有问题?只要X,Y(I,J)值是对的,LCD也就正常 4: 还有一个问题有时候程序改一点点(比如变量初值)都会使程序跳不高主程序(方针的时候)
我是初学的请大家帮帮忙 5: 个人见解首先把对端口IO的操作改为对内部RAM的操作,软件跟踪几次 确保数据的无误性 否则先修改之
其次 加长你的IO口访问周期,以达到LCD的访问时序要求. 6: 你好zgl7903,你QQ是多少我还问你问题 7: 个人见解不好意思,我个人对2407并不熟悉,我只是提醒你一种方法,具体问题还得你老兄自己努力。 8: uchar i,j;uchar i,j;
你的uchar是几位的,如果是8位会出问题 9: 不是不是8位是16位的 10: 请大家帮忙看看,谢谢 11: 怎么?怎么? 12: 好了重新找了个计算机,没有问题了郁闷

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]