设为首页收藏本站

八达网

 找回密码
 注册
查看: 363|回复: 35
打印 上一主题 下一主题

这段代码能不能改成if语句的?

[复制链接]

3

主题

0

好友

4万

积分

光明执政官

混在德州

跳转到指定楼层
1
发表于 2009-1-9 12:07 |只看该作者 |倒序浏览
for (j=0;j<task1;j++)
   {for(i=0;i<=j;i++)
        *(int *) 0x10000000 |= 0x04;
    m=task1-j;
        for(i=1;i<m;i++)
        *(int *) 0x10000000 &= 0xFB;
   }

求教呀~~~

3

主题

0

好友

4万

积分

光明执政官

混在德州

2
发表于 2009-1-9 12:08 |只看该作者
还有11个小时报告要交了
他妈是编个嵌入式程序的 完全不会
大家救命呀
回复

使用道具 举报

3

主题

0

好友

4万

积分

光明执政官

混在德州

3
发表于 2009-1-9 12:11 |只看该作者
我贴火星笑话来顶贴。。帮个忙吧

那不行,身体吃不消啊

今儿,我一哥们去上货。问服务员:小丽,快过年了搞活动不? 小丽说:搞啊,现在就搞。 我哥们:搞到什么时候? 小丽:你要来咱们天天搞! 我哥们:那不行,身体吃不消啊!小丽:... ...
回复

使用道具 举报

3

主题

0

好友

4万

积分

光明执政官

混在德州

4
发表于 2009-1-9 12:12 |只看该作者
我贴火星笑话来顶贴。。帮个忙吧

你也和他做那种事了啊!?

有一牧场的主人雇用一个年轻人,在牧场工作。
一日,年轻人将主人的小女儿带进仓库成其好事,小女儿回房后,对姐姐说:

「这次雇用的年轻人,可真是专家啊!」姐姐听了之后就往仓库跑,点来之后,也承认年轻人的技术高超。
门口她们的母亲听到了,这次轮到女主人到仓库去,回来之后,对家人说:
「这年轻人真不简单呀!会各种技巧,真不愧是行家。」
男主人听了此话,也往仓库里去。
年轻人看到男主人来到,就假装认真工作,一手扛著牧草,一手推著轮车,而且还熟练的喂食牛崽、挤牛奶。男主人回到家便说:
「你们说得没错,这年轻人果然厉害,什么都会啊!」
「什么?」太太与女儿异口同声地说:「你也和他做那种事了啊!?」
回复

使用道具 举报

780

主题

0

好友

13万

积分

主区版主

Rank: 8Rank: 8Rank: 8Rank: 8

5
发表于 2009-1-9 12:13 |只看该作者
为什么要改if?
回复

使用道具 举报

3

主题

0

好友

4万

积分

光明执政官

混在德州

6
发表于 2009-1-9 12:15 |只看该作者
本帖最后由 nkwd 于 2009-1-9 12:21 编辑

8个led灯 要实现不同周期的渐亮渐灭 反正好的方法我是不会的
用这个for循环能实现单独一个led的渐亮渐灭 但是合在一起就不能同时执行 要等上一个for执行完了才能执行下一个for
for能改成if来表达的话 也许还能糊弄过去
回复

使用道具 举报

3

主题

0

好友

4万

积分

光明执政官

混在德州

7
发表于 2009-1-9 12:18 |只看该作者
主要是嵌入式的东西要在芯片板上调试 国内又不用这个板的

问都问不到
回复

使用道具 举报

3

主题

0

好友

4万

积分

光明执政官

混在德州

8
发表于 2009-1-9 12:18 |只看该作者
哥哥些 救命呀
回复

使用道具 举报

0

主题

0

好友

1万

积分

航母

9
发表于 2009-1-9 12:20 |只看该作者
使用goto?
= =
回复

使用道具 举报

3

主题

0

好友

4万

积分

光明执政官

混在德州

10
发表于 2009-1-9 12:23 |只看该作者
ls大哥。。我C语言烂啊 所以搞不出
你看看得行不
回复

使用道具 举报

0

主题

0

好友

1万

积分

航母

11
发表于 2009-1-9 12:25 |只看该作者
问题是。。。你单纯改if的话,代码本身其实没有变

原来怎么样的还是怎么样

还是要从算法改起啊

不清楚你具体要实现什么东西
= =
回复

使用道具 举报

2

主题

1

好友

3万

积分

大和

12
发表于 2009-1-9 12:25 |只看该作者
用while或do while行不
回复

使用道具 举报

kkk1234486 该用户已被删除
13
发表于 2009-1-9 12:25 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

3

主题

0

好友

4万

积分

光明执政官

混在德州

14
发表于 2009-1-9 12:26 |只看该作者
就是这么类似的8个for循环 摆在一起的话只能依次执行 要搞成同时执行
回复

使用道具 举报

2

主题

1

好友

3万

积分

大和

15
发表于 2009-1-9 12:28 |只看该作者
#include <stdio.h>
#include <string.h>

void main(void)
{
        int i,j,task1,m;
        for (j=0;j<task1;j++)
        {
                i=0;
                while(i<=j)
                {
                        *(int *) 0x10000000 |= 0x04;
                        i++;
                }
                m=task1-j;
                i=1;
                while(i<m)
                {
                        *(int *) 0x10000000 &= 0xFB;
                        i++;
                }
         }
}
回复

使用道具 举报

3

主题

0

好友

4万

积分

光明执政官

混在德州

16
发表于 2009-1-9 12:29 |只看该作者
我把全部贴上来。。。

前面那些定义的就不用看了

就中间那8个task

define LED0 0x01.doc

34.5 KB, 下载次数: 8

回复

使用道具 举报

17

主题

0

好友

2万

积分

大和

17
发表于 2009-1-9 12:29 |只看该作者
如果你的led对应的gpio寄存器为GPDX[0-7],每位表示一个 led
则不同周期的亮灭如下:
while(1)
{
//set all led on
GPDX |= 0xFF;
//delay some time and set it off
for(i=0; i<7; i++)
{
     GPDX &= ~(1 << i);
     for(j=0; j<10000; j++);   //delay some time
}
}
回复

使用道具 举报

0

主题

0

好友

1万

积分

航母

18
发表于 2009-1-9 12:30 |只看该作者
你怎么区分不同的灯的呢?
= =
回复

使用道具 举报

2

主题

1

好友

3万

积分

大和

19
发表于 2009-1-9 12:30 |只看该作者
#include <stdio.h>
#include <string.h>

void main(void)
{
        int i,j,task1,m;
        for (j=0;j<task1;j++)
        {
                i=0;

loop1:
                {
                        *(int *) 0x10000000 |= 0x04;
                        i++;
                }
                  if(i<=j)
                        goto loop1;

                m=task1-j;
                i=1;
loop2:       
                {
                        *(int *) 0x10000000 &= 0xFB;
                        i++;
                }
                if(i<m)
                        goto loop2;
         }
}
回复

使用道具 举报

3

主题

0

好友

4万

积分

光明执政官

混在德州

20
发表于 2009-1-9 12:32 |只看该作者
感谢。。先消化一下
回复

使用道具 举报

3

主题

0

好友

4万

积分

光明执政官

混在德州

21
发表于 2009-1-9 12:34 |只看该作者
你怎么区分不同的灯的呢?
ilzl 发表于 2009-1-9 12:30


就是我doc文章中间那8个task 一个task一个灯 类似的8个for循环 摆在一起的话只能依次执行 要搞成同时执行
回复

使用道具 举报

0

主题

0

好友

2957

积分

坦克

22
发表于 2009-1-9 12:34 |只看该作者
回复

使用道具 举报

17

主题

0

好友

2万

积分

大和

23
发表于 2009-1-9 12:34 |只看该作者
什么叫同事执行呢,如果是1个任务的话就是你自己定好每个灯亮灭的时间,然后delay就ok了。
回复

使用道具 举报

0

主题

0

好友

2万

积分

大和

早日大和早日仲裁

24
发表于 2009-1-9 12:35 |只看该作者
我靠 8DA竟然还有C语言贴 太高级了
回复

使用道具 举报

0

主题

0

好友

1万

积分

航母

我爱水晶

25
发表于 2009-1-9 12:36 |只看该作者
不懂的路过
回复

使用道具 举报

17

主题

0

好友

2万

积分

大和

26
发表于 2009-1-9 12:36 |只看该作者
不知道8da有没有做嵌入式linux或者dsp/fpga之类的,可以加我qq大家学习学习,89354744
回复

使用道具 举报

7

主题

0

好友

2万

积分

大和

27
发表于 2009-1-9 12:42 |只看该作者
本帖最后由 偶尔也无奈 于 2009-1-9 12:46 编辑

没搞过嵌入式编程,简单看了一下,如果task1,m都是普通变量,答案应该如下:

if (tastk1 > 0)
        *(int *) 0x10000000 |= 0x04;
if (task1 > 1)
        *(int *) 0x10000000 &= 0xFB;


循环体都是一条语句,本来就没有必要用循环的。
如果是lz自己写出来的代码,那显然楼主连c语言的基本语法都没搞清楚。
如果是哪本书里的考题,这考题也不过是考考c语言的基本语法罢了,蒙人的。
回复

使用道具 举报

0

主题

0

好友

1万

积分

航母

28
发表于 2009-1-9 12:46 |只看该作者
是不是每个灯的变化跨度不一样?
= =
回复

使用道具 举报

3

主题

0

好友

4万

积分

光明执政官

混在德州

29
发表于 2009-1-9 12:47 |只看该作者
什么叫同事执行呢,如果是1个任务的话就是你自己定好每个灯亮灭的时间,然后delay就ok了。
maddrone 发表于 2009-1-9 12:34

简单说下吧 板子芯片是ARM9 AT91SAM9261(国内应该很少用..)
课题的任务是8个led,要求分别按1s,1.1s,1.2s,1.3s,1.4s,1.5s,1.6s,1.7s的间隔时间进行渐亮和渐灭,其中前4个灯在每个tick都执行,后4个中有2个在奇数的tick执行.2个在偶数tick执行
渐亮渐灭过程要使用周期为20ms的PWM来实现
回复

使用道具 举报

6

主题

0

好友

2万

积分

大和

30
发表于 2009-1-9 12:51 |只看该作者
......
8da是什么地方,你混了这么多年还不明白?有理无理你能在这里讲清楚?你还想在这里讨个公道?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

手机版|Archiver|八达网    

GMT+8, 2026-2-12 01:05

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部