共2条
1/1 1 跳转至页
问
我在用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: 好了重新找了个计算机,没有问题了郁闷
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 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【笔记】生成报错synthdesignERROR被打赏50分 | |
【STM32H7S78-DK评测】LTDC+DMA2D驱动RGBLCD屏幕被打赏50分 | |
【STM32H7S78-DK评测】Coremark基准测试被打赏50分 | |
【STM32H7S78-DK评测】浮点数计算性能测试被打赏50分 | |
【STM32H7S78-DK评测】Execute in place(XIP)模式学习笔记被打赏50分 | |
每周了解几个硬件知识+buckboost电路(五)被打赏10分 | |
【换取逻辑分析仪】RA8 PMU 模块功能寄存器功能说明被打赏20分 | |
野火启明6M5适配SPI被打赏20分 | |
NUCLEO-U083RC学习历程2-串口输出测试被打赏20分 | |
【笔记】STM32CUBEIDE的Noruletomaketarget编译问题被打赏50分 |