天嵌 ARM开发社区

 找回密码
 注册
查看: 2212|回复: 2

wince延迟问题

[复制链接]
wang0312 发表于 2010-5-6 09:42:40 | 显示全部楼层 |阅读模式
我现在用了GPB0,GPB1,GPB5,GPB6,GPB7,GPB8,初始化成功。
用EVC开发应用程序控制一个16x32的led点阵,程序成功下载到wince中,但运行的时候速度非常慢,延迟很大,使led不能正常显示。程序部分代码如下:
void CGPIO0427Dlg::OnBUTStart()
{
        // TODO: Add your control notification handler code here
        char i,j,row,time=100;        
        while(time--)
        {
                for(row=0;row<4;row++)
                {                        
                        
           //STB上升沿有效
DeviceIoControl(gpiodriver,IO_CTL_GPIO_D_0,NULL,0,NULL,0,NULL,NULL);
DeviceIoControl(gpiodriver,IO_CTL_GPIO_D_1, NULL,0,NULL,0,NULL,NULL);
                //行选
                SelectRow(row);   //循环执行这个函数     
                }               
        }
        DeviceIoControl(gpiodriver,IO_CTL_GPIO_A_0, NULL,0,NULL,0,NULL,NULL);
}
void CGPIO0427Dlg::SelectRow(char row)
{
        bool a,b;//行选信号a,b
        a=(row & 0x01);
        b=((row>>1) & 0x01);
        if(a)
                DeviceIoControl(gpiodriver,IO_CTL_GPIO_A_1, NULL,0,NULL,0,NULL,NULL);
        else
                DeviceIoControl(gpiodriver,IO_CTL_GPIO_A_0, NULL,0,NULL,0,NULL,NULL);
        if(b)
                DeviceIoControl(gpiodriver,IO_CTL_GPIO_B_1, NULL,0,NULL,0,NULL,NULL);
        else
                DeviceIoControl(gpiodriver,IO_CTL_GPIO_B_0, NULL,0,NULL,0,NULL,NULL);
        //OE=0,使能138
        DeviceIoControl(gpiodriver,IO_CTL_GPIO_F_0, NULL,0,NULL,0,NULL,NULL);
}
从led显示上看,执行的很慢,每循环一个for(row=0;row<4;row++),执行一次SelectRow(row)函数,延迟大约0.5s。
可我只循环执行一个SelectRow(row)函数。我想wince的指令执行速度应该很快,就这么几行代码怎么会有这么大的延迟?
我想问:1、wince5.0的执行速率是多少?
           2、为什么会产生这么大的延迟?我当初裸跑的时候速度是很快的,可以正常显示。现在只是把把当初直接给寄存器赋值该为调用wince驱动给寄存器赋值,怎么会有这么大的差异?
 楼主| wang0312 发表于 2010-5-8 09:39:00 | 显示全部楼层
看了一些文章,是不是wince调度的问题?是不是要创建线程来实现?
亚瑟王 发表于 2010-5-8 16:39:10 | 显示全部楼层
就算是你创建了线程,也需要调用iocontrol啊,建议在iocontrol函数的上下两行添加printf的打印信息监控一下。我认为是iocontrol函数引起的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-5-21 12:58 , Processed in 1.031250 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表