首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

uCOS移植出现的时序问题

uCOS移植出现的时序问题

移植过uCOS的高手请指教:
最先用结构化的编程在9S12 DP256B上运行了键盘和LCD显示的函数,整个程序正常运行显示;然后将整个程序通过uCOS移植,可是移植后虽然能运行,可是不得不将关于LCD显示的那些函数里面关于数据的读写指令后加更长的延时,比如下面这个函数:系统16MHz晶振,
uchar Lcd_ReadCom(void) //LCD读函数
{
uchar data;
RS = 0;
RW = 1;
EN = 1;
DDRM=0x00;
Delay(10); //延时10us;在结构化的程序里面,该条延时指令可要可不要,即使要也只需一条asm("nop")即可;而在uCOS系统里则至少需要延时50us以上,否则LCD什么都显示不出来。看了LCD的时序资料,数据的读写都在ns级,CPU的IO读写时序也在ns级,为什么移植后需要更长的延时才能将数据显示出来(整个程序都未做任何改动,仅仅将延时加长而已)?希望高手指点
data = PTM;
asm("nop");
asm("nop");
EN = 0;
DDRM=0xff;
return data;
}
在任务里调用吧

i=Lcd_ReadCom();

OSTimeDlyHMSM(0, 0, 1, 0);
返回列表