| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 8611 人关注过本帖
标题:C如何实现延迟10ms
只看楼主 加入收藏
一心爱你
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2009-2-18
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:10 
C如何实现延迟10ms
看到一个关于用C实现延迟10ms的程序,不明白是如何实现的,请高手多多指点阿
  程序如下
程序代码:
.........
unsigned char count;

void delay10ms(void)
{
unsigned char i,j;
for(i=20;i>0;i--)
for(j=248;j>0;j--);
}
.....

  
搜索更多相关主题的帖子: 延迟10ms 
2009-08-14 16:23
godbless
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:216
专家分:950
注 册:2009-7-24
收藏
得分:0 
这个好像是让电脑执行248*20次的无效操作,作者可能认为需要10ms,

但我觉得机器不一样时间是不一样的..
2009-08-14 16:32
wxjeacen
Rank: 7Rank: 7Rank: 7
等 级:禁止访问
帖 子:1291
专家分:628
注 册:2009-3-22
收藏
得分:0 
你牛B,

这么延时10ms.

生命不熄,战斗不止.
2009-08-14 22:30
mingzxcv
Rank: 2
等 级:论坛游民
帖 子:11
专家分:17
注 册:2009-8-6
收藏
得分:0 
我一样遇见过延时1ms的程序:
void delay1ms(uchar)
{
uint i,j;
for(i=1;i>0;i--)
   for(j=110;j>0;j--);
}
你要是看懂了,麻烦告诉我一下,谢谢

 
2009-08-15 09:07
godbless
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:216
专家分:950
注 册:2009-7-24
收藏
得分:0 
回复 4楼 mingzxcv

受不了这样的延时,我要是电脑,我就罢工。。。
2009-08-15 09:37
wxjeacen
Rank: 7Rank: 7Rank: 7
等 级:禁止访问
帖 子:1291
专家分:628
注 册:2009-3-22
收藏
得分:20 
以下是引用mingzxcv在2009-8-15 09:07的发言:我一样遇见过延时1ms的程序:void delay1ms(uchar) { uint i,j; for(i=1;i>0;i--)    for(j=110;j>0;j--); } 你要是看懂了,麻烦告诉我一下,谢谢  
只能说明你看到的那段代码是垃圾代码。要是一个系统两个进程相互通信,一个要等10ms,让另一个进程操作完某些操作之后再被唤醒。按你这个怎么实现? 第一个进程压根就不释放cpu

生命不熄,战斗不止.
2009-08-15 16:56
wangyf
Rank: 2
等 级:论坛游民
帖 子:40
专家分:45
注 册:2009-6-27
收藏
得分:0 
#include<sys/timeb.h>
#include<sys/types.h>
#include<windows.h>
#include<time.h>
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<conio.h>
int main(void)
{
    char q='A';
    int a[4],b[4]={0,0,0,0},i,j=0,m,x=0,y=0;
    time_t s_time;
    time_t e_time;
    srand((int)time(0));
    printf("\n\n\n\n\n\n               *********************_zerg*********************\n");
    printf("                     ____   _   _  ______   ____    ____      \n");
    printf("                    / ___\\ | | | ||  ____| / ___\\  / ___\\  \n");
    printf("                   | /  __ | | | || |___  | (___  | (___      \n");
    printf("                   | | |_ || | | ||  ___|  \\___ \\  \\___ \\ \n");
    printf("                   | \\__/ || \\_/ || |____  ____) | ____) |  \n");
    printf("                    \\____/  \\___/ |______| \\____/  \\____/ \n");
    printf("                                                              \n");
    printf("               *****************QQ: 453743739*****************\n");
    system("COLOR 2f");
    Sleep(500);
    system("COLOR 3e");
    Sleep(500);
    system("COLOR 4d");
    Sleep(500);
    system("COLOR d4");
    Sleep(500);
    system("COLOR e3");
    Sleep(500);
    system("COLOR f2");
    Sleep(500);
    system("COLOR 2f");
    system("Pause>nul");
    system("cls");
    while(j==0)
    {
        for(i=0;i<=3;i++)
            b[i]=rand()%10;
        if((b[0]!=b[1])&&(b[0]!=b[2])&&(b[0]!=b[3])&&(b[1]!=b[2])&&(b[1]!=b[3])&&(b[2]!=b[3]))
            break;
    }
    ///*DEBUG*/printf("%d %d %d %d\n",b[0],b[1],b[2],b[3]);
    while(q!='N')
    {
        for(m=1;m<=8;m++)
        {
            printf("S%d: 输入 4 个数字: ",m);
            if(m==1)
                time(&s_time);
            scanf("%d %d %d %d",&a[0],&a[1],&a[2],&a[3]);
            x=0;y=0;
            for(i=0;i<=3;i++)
                for(j=0;j<=3;j++)
                {
                    if((a[i]==b[j])&&(i!=j))
                        y++;
                    if((a[i]==b[j])&&(i==j))
                        x++;
                }
            for(i=0;i<=18;i++)
                printf(" ");
            printf("%d A %d B",x,y);
            putchar(10);
            if(x==4)
                m=9;
        }
        time(&e_time);
        system("cls");
        printf("共花费时间: %d 秒\n\n",e_time-s_time);
        if(x==4)
            printf("胜利!再来一次?[Y/N]:");
        else
            printf("失败!再来一次?[Y/N]:");
        getchar();
        q=getch();
        if(q=='n')
            q='N';
        system("cls");
    }
    return 0;
}
//找到头和Sleep就是它了~~~
2009-08-15 17:13
wangyf
Rank: 2
等 级:论坛游民
帖 子:40
专家分:45
注 册:2009-6-27
收藏
得分:0 
Sleep();//ms毫秒记的
2009-08-15 17:14
wangyf
Rank: 2
等 级:论坛游民
帖 子:40
专家分:45
注 册:2009-6-27
收藏
得分:0 
回复 2楼 godbless

顶,换386和i7比,呵呵
2009-08-15 17:16
土匪老二
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2009-8-15
收藏
得分:0 
对于一个单进程的系统,这样做不失为一种方法,循环的时间要看cpu的速度。对于多进程的系统,6楼的解释挺好的。
2009-08-15 17:50
快速回复:C如何实现延迟10ms
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029211 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved