|
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统 驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe |
2407A求助 |
作者:qq_xiaoxin 栏目:DSP技术 |
我在用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的值乱变我把所有程序都贴出来,请大家帮我看看 |
2楼: | >>参与讨论 |
作者: qq_xiaoxin 于 2005/3/29 10:02:00 发布:
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; } |
3楼: | >>参与讨论 |
作者: qq_xiaoxin 于 2005/3/29 10:03:00 发布:
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 */ } |
4楼: | >>参与讨论 |
作者: qq_xiaoxin 于 2005/3/29 10:07:00 发布:
还有在写I/O口的时候 在写I/O口的时候也是有时候对(用示波器看)我怀疑是CCS,还是CMD有问题?只要X,Y(I,J)值是对的,LCD也就正常 |
5楼: | >>参与讨论 |
作者: qq_xiaoxin 于 2005/3/29 10:13:00 发布:
还有一个问题 有时候程序改一点点(比如变量初值)都会使程序跳不高主程序(方针的时候) 我是初学的请大家帮帮忙 |
6楼: | >>参与讨论 |
作者: zgl7903 于 2005/3/29 10:49:00 发布:
个人见解 首先把对端口IO的操作改为对内部RAM的操作,软件跟踪几次 确保数据的无误性 否则先修改之 其次 加长你的IO口访问周期,以达到LCD的访问时序要求. |
7楼: | >>参与讨论 |
作者: qq_xiaoxin 于 2005/3/29 11:00:00 发布:
你好 zgl7903,你QQ是多少我还问你问题 |
8楼: | >>参与讨论 |
作者: zgl7903 于 2005/3/29 11:36:00 发布:
个人见解 不好意思,我个人对2407并不熟悉,我只是提醒你一种方法,具体问题还得你老兄自己努力。 |
9楼: | >>参与讨论 |
作者: sjnh 于 2005/3/29 12:24:00 发布:
uchar i,j; uchar i,j; 你的uchar是几位的,如果是8位会出问题 |
10楼: | >>参与讨论 |
作者: qq_xiaoxin 于 2005/3/29 13:24:00 发布:
不是 不是8位是16位的 |
11楼: | >>参与讨论 |
作者: qq_xiaoxin 于 2005/3/29 14:14:00 发布:
请大家帮忙看看,谢谢 |
12楼: | >>参与讨论 |
作者: qq_xiaoxin 于 2005/3/29 16:02:00 发布:
怎么? 怎么? |
13楼: | >>参与讨论 |
作者: qq_xiaoxin 于 2005/3/29 21:07:00 发布:
好了 重新找了个计算机,没有问题了郁闷 |
|
|
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入 |
Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号 |