|
楼主 |
发表于 30-10-2007 09:11 AM
|
显示全部楼层
回复 #20 pic 的帖子
回复 #13 pic 的帖子
谢谢版主。!!
如果 WHILE() 有error
Line 211(11,12): A numeric expression must appear here
加了 WHILE(1)就可以了。
一定要在WHILE 的 ()里放CONDITION吗? |
|
|
|
|
|
|
|
发表于 30-10-2007 09:38 AM
|
显示全部楼层
原帖由 PenBrush 于 30-10-2007 09:11 AM 发表
回复 #13 pic 的帖子
谢谢版主。!!
如果 WHILE() 有error
Line 211(11,12): A numeric expression must appear here
加了 WHILE(1)就可以了。
一定要在WHILE 的 ()里放CONDITION吗?
对,因为这 while 语句是条件循环。 |
|
|
|
|
|
|
|
发表于 30-10-2007 10:35 AM
|
显示全部楼层
原帖由 PenBrush 于 30-10-2007 09:11 AM 发表
加了 WHILE(1)就可以了。
一定要在WHILE 的 ()里放CONDITION吗?
可以用While(1), 或while (true)
另一种,也可以用这个没有condition 的for loop 也是可以。
另一种,也可以用, 但不建议, C的架构很弱。- aLoop:
- // do your code here
- goto aloop;
复制代码 注: 在这里Post code 时, 请加"[ code]", "[/code]", (space 拿掉)
[ 本帖最后由 pic 于 30-10-2007 10:38 AM 编辑 ] |
|
|
|
|
|
|
|
楼主 |
发表于 30-10-2007 12:19 PM
|
显示全部楼层
谢谢。。!!
又有问题了。。。
- while(1)
- {
- if (input(STH)==1)
- {
- output_high(FAN);
- delay_ms(30000);
- output_high(COMP);
- }
- else
- {
- output_low(FAN);
- output_low(COMP);
- }
- }
复制代码
当 STH=1 的 Loop 启动过后。。。如 condition 变 了 STH=0 也要Delay 30s 才会跳STH=0 的loop。
要怎样才能让它立刻跳去Else Loop?
[ 本帖最后由 PenBrush 于 30-10-2007 12:21 PM 编辑 ] |
|
|
|
|
|
|
|
楼主 |
发表于 30-10-2007 12:39 PM
|
显示全部楼层
我在CCSC的reference manual里看到
#INT_RA // any change on A0-A5
#INT_RB // : B4-B7
怎样使用以上interrupts? 能解决我的问题吗? |
|
|
|
|
|
|
|
发表于 30-10-2007 01:35 PM
|
显示全部楼层
原帖由 PenBrush 于 30-10-2007 12:19 PM 发表
当 STH=1 的 Loop 启动过后。。。如 condition 变 了 STH=0 也要Delay 30s 才会跳STH=0 的loop。
要怎样才能让它立刻跳去Else Loop?
我在CCSC的reference manual里看到
#INT_RA // any change on A0-A5
#INT_RB // : B4-B7
怎样使用以上interrupts? 能解决我的问题吗?
你的Logic基本上有问题,
1.可以先请问你要做什么?
2.要得到什么样的效果?
有很多种方法作, 但要先知道你要做什么。 |
|
|
|
|
|
|
|
楼主 |
发表于 30-10-2007 04:53 PM
|
显示全部楼层
整个流程讲出来问你,你会不会向我收钱啊?
因为我是拿我工作的公司以前的产品作为我的练习题目。
我想以后转去写Frimware。
现在在工作。。。放工后才把FlowChart画出来。
谢谢。。!!! |
|
|
|
|
|
|
|
发表于 30-10-2007 05:30 PM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 30-10-2007 07:39 PM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 30-10-2007 08:29 PM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 30-10-2007 09:27 PM
|
显示全部楼层
原帖由 pic 于 30-10-2007 08:29 PM 发表
不, 你们Training应该去大厂, 见一下世面, 学一下有organize , 有Procedure, 有ISO的,凡是讲Black & White 的, 看一下别人/上司/同事如何耍太极,部门和部门的政治斗争如何进行 , 如何写Email, 措词 ...
讲得也是。 现在目前为止也是做firmware.
都是在写program..哈哈 。
[ 本帖最后由 fritlizt 于 30-10-2007 09:31 PM 编辑 ] |
|
|
|
|
|
|
|
发表于 31-10-2007 02:06 PM
|
显示全部楼层
|
|
|
|
|
|
|
楼主 |
发表于 1-11-2007 01:18 AM
|
显示全部楼层
|
|
|
|
|
|
|
楼主 |
发表于 1-11-2007 08:37 PM
|
显示全部楼层
回复 #26 pic 的帖子
你的Logic基本上有问题,
1.可以先请问你要做什么?
2.要得到什么样的效果?
有很多种方法作, 但要先知道你要做什么。
Input 是Float Switch
分别放在两个桶里,以下是Switch的排法.
Tank A
S1 HIGH=0 LOW=1
Tank B
S2 HIGH=0 LOW=1
S3 HIGH=1 LOW=0
1. S1 low level 就要从Tank B Pump水 如果S3是High Level
S1 high level 就要 OFF pump && routine 1 (OUTPUTC ON 30s OFF 20minutes 要不停的Loop直到S2 high level)
2. S2 low level 就要 ON OUTPUTA 30second 后 ON OUTPUTB
S2 high level 就要 OFF OUTPUTB 30second 后 OFF OUTPUTA && routine 2 (OUTPUTC ON 1minutes OFF 20minutes 要不停的Loop)
3. S3 low level 就要 ON OUTPUTA 30second 后 ON OUTPUTB && OFF PUMP && OFF OUTPUTC
S3 high level 就要 Pump水 如 S1 low level.
4. PUMP ON要确定OUTPUTC曾经有在20Minutes前有ON过。
Only 5 condition could be happen , all output is active high
S1=1 S2=1 S3=0 PUMP =0 OUTPUTA=1 OUTPUTB=1 OUTPUTC=0
S1=1 S2=1 S3=1 PUMP =1 OUTPUTA=1 OUTPUTB=1 OUTPUTC=1(routine loop ON 30s OFF 20minutes)
S1=0 S2=1 S3=1 PUMP =0 OUTPUTA=1 OUTPUTB=1 OUTPUTC=1(routine loop ON 30s OFF 20minutes)
S1=1 S2=0 S3=1 PUMP =1 OUTPUTA=0 OUTPUTB=0 OUTPUTC=1(routine loop ON 1minute OFF 20minutes)
S1=1 S2=0 S3=0 PUMP =0 OUTPUTA=0 OUTPUTB=0 OUTPUTC=1(routine loop ON 1minute OFF 20minutes)
[ 本帖最后由 PenBrush 于 1-11-2007 08:38 PM 编辑 ] |
|
|
|
|
|
|
|
发表于 2-11-2007 12:16 AM
|
显示全部楼层
回复 #34 PenBrush 的帖子
OUTPUTA, OUTPUTB, OUTPUTC 是什么? Pump 吗?
TankA 有S1,TankB 有S2 和 S3? |
|
|
|
|
|
|
|
楼主 |
发表于 2-11-2007 08:58 AM
|
显示全部楼层
回复 #35 pic 的帖子
OUTPUTA=FAN
OUTPUTB=compressor
OUTPUTC=UV light
OUTPUTD=Pump
TankA 有S1,TankB 有S2 和 S3....是的TankB大 |
|
|
|
|
|
|
|
楼主 |
发表于 2-11-2007 05:13 PM
|
显示全部楼层
- void main()
- void main(void)
- main()
复制代码
请问以上的三个--main--有什么分别? |
|
|
|
|
|
|
|
发表于 4-11-2007 09:49 PM
|
显示全部楼层
原帖由 PenBrush 于 2-11-2007 05:13 PM 发表
void main()
void main(void)
main()
请问以上的三个--main--有什么分别?
在这里, 3个都可以用。
但习惯用 void main()
void, 是告诉compiler, 这个function 不会return value。 |
|
|
|
|
|
|
|
发表于 4-11-2007 10:20 PM
|
显示全部楼层
原帖由 PenBrush 于 1-11-2007 08:37 PM 发表
Input 是Float Switch
分别放在两个桶里,以下是Switch的排法.
Tank A
S1 HIGH=0 LOW=1
Tank B
S2 HIGH=0 LOW=1
S3 HIGH=1 LOW=0
1. S1 low lev ...
我收到了楼主写的程序, (有问题, 有缺点的)
我完全重写了他要的程序, 用Simple Multi-task (Round Robin)的方式写。
已写好, 交给楼主测试, 除错。
这个程序是用来制造水, 原理是用冷热, 从空气里提取水份, 储存, UV杀菌后供人饮用。(就像冷气机那样, 使用时有水产生)
因为是商业的产品, 我不方便在这里公开源码, 对不起。
注:
如网友有兴趣得到我写的那个源码,我可以发一份给他,但作为学习为前提,我希望你先写你自己的code , 按楼主的条件,按你自己的方法重写,我看到你努力后, 就会发给你, 说难不难, 说容易不容易。。。 |
|
|
|
|
|
|
|
发表于 4-11-2007 11:56 PM
|
显示全部楼层
round robin 是 RTOS 的方法吗?
是 CCS optimize ?
还是写时跟着某些方法?
对不起, 因为对这类的情况不是很了解。。 |
|
|
|
|
|
|
| |
本周最热论坛帖子
|