打印

*俺来出题了:一道题区分你是编程老手还是菜鸟

[复制链接]
楼主: xwj
手机看帖
扫描二维码
随时随地手机跟帖
21
puppyh| | 2007-12-4 11:32 | 只看该作者 回帖奖励 |倒序浏览

太简单了

上半年刚刚用51做了一个与这个几乎差不多的产品,功能还多了两个。只用了一个定时器。
献丑了...

使用特权

评论回复
22
平常人| | 2007-12-4 11:33 | 只看该作者

Anchor

Watching.......

使用特权

评论回复
23
athlon64fx| | 2007-12-4 11:35 | 只看该作者

re:

这个不需要用OS,也不能用.有人动不动就OS.

使用特权

评论回复
24
bird777| | 2007-12-4 11:37 | 只看该作者

给个框架

裸奔情况下:先将1/2/3/4/5/6当作任务来分析,找到出最小时间片/6,作为主循环扫描的最大周期值.
其它的可以切割用最小时间片*N(N=1,....)来分时驱动.
比如 最小时间片18us(举个例子)
 while(1){
 case 0:1() //处理小于3US ,18US执行1次
 case 1:2() //处理小于3US ,18US执行1次
 case 2:3() //处理小于3US ,18US执行1次
 case 3:4() //处理小于3US ,18US执行1次
 case 4:5() //处理小于3US ,18US执行1次
 case 5:6() //处理小于3US ,18US执行1次
 }

使用特权

评论回复
25
yewuyi| | 2007-12-4 11:37 | 只看该作者

~~,有人做过了啊!

puppyh 发表于 2007-12-4 11:32 侃单片机 ←返回版面    

22楼: 太简单了 

上半年刚刚用51做了一个与这个几乎差不多的产品,功能还多了两个。只用了一个定时器。
献丑了... 
 




忽忽,俺没做过,还以为这东西是洗碗机编出来的题呢,呵呵,原来是来源于实际项目啊……

使用特权

评论回复
26
yewuyi| | 2007-12-4 11:40 | 只看该作者

LS好强,18US!?

狂晕~~


太短了把……


红外的0=1.2MS , 1=2.4MS ,呵呵,感觉弄成200US比较好。

使用特权

评论回复
27
xwj|  楼主 | 2007-12-4 11:44 | 只看该作者

呵呵,不是我的题,是fxmxh出的一个题,他用16C54的512字节完成的

肯定是"来源于实际项目"了:-)


呵呵,25楼,你的18uS能做什么啊???

使用特权

评论回复
28
bird777| | 2007-12-4 11:55 | 只看该作者

呵呵

本来不想回答的,我不是说是举个例子啊.
红外我没有做过,yewuyi传授了知识,谢谢,以后印象很深了.

使用特权

评论回复
29
fuzichun| | 2007-12-4 12:08 | 只看该作者

用16C54才困难点

RAM和ROM等的资源很少,不过要做出几种不同的声音有点难度

使用特权

评论回复
30
程序匠人| | 2007-12-4 12:20 | 只看该作者

支持

使用特权

评论回复
31
fsaok| | 2007-12-4 12:36 | 只看该作者

用16C54,难度高了一些

设定合适的时间片,

一、这个时间片里做完所有的事件检测,
二、综合控制(计算键盘值、红外解码等)。
三、输出全部应有的驱动
四、等待时间片(option)结束(还悠着呢),重复一。

显示不用164更好,直接驱动就OK,

蜂鸣器要求的速度不会很快的,弹奏时,才几百赫


使用特权

评论回复
32
古道热肠| | 2007-12-4 12:53 | 只看该作者

好呀,等着看热闹

XWJ肯定有自己的方案了,到时候一并晒出来,俺是没空玩了。

使用特权

评论回复
33
yewuyi| | 2007-12-4 13:05 | 只看该作者

打击一下用16C54的

洗碗机的这个设计要求用16C54是完成不了的,因为ROM不够用……

16C54没有中断并没什么,通过查询/比较定时器是否溢出翻转不是什么大事情。


忽忽,我可是大把大把用过16C5X的哦……

使用特权

评论回复
34
yewuyi| | 2007-12-4 13:06 | 只看该作者

俺提出了比较典型的答案,赶快给俺发奖品……

~~,哈哈……

使用特权

评论回复
35
lucidmask| | 2007-12-4 13:21 | 只看该作者

我一点头绪都没有,给我奖品鼓励一下吧!

使用特权

评论回复
36
forest_j| | 2007-12-4 13:40 | 只看该作者

TIMER无中断

TIMER无中断的话,要把各功能模块的运行状态细分,确保在一个时基内完成条件判断和状态迁移。
其实这些功能基本都是ms级,RISC单片机可以干不少事儿了。


使用特权

评论回复
37
110xia| | 2007-12-4 14:04 | 只看该作者

没空陪你们玩,


如果cpu 足够快,一切都很简单,
一个time 做时基,足够了 

使用特权

评论回复
38
computer00| | 2007-12-4 14:51 | 只看该作者

呵呵,产生音乐也比较简单

标准的A音是440Hz。低一个八度就是频率降低一半,高一个八度就是频率升高一倍。
把一个八度按照指数关系分成12等份,每一等份就是一个小二度(或者叫一个半音)。
两等份就是一个大二度(或者叫一个全音)。这样就可以将各个音的频率算出来了。
然后可以随便取一个当作1(这里我们暂时不管什么调啦),再升高一个全音就是2,
注意3和4之间、7和1之间是半音,其它两个之间都是全音,按照这个关系,就可以
将7个自然音阶定出来了。然后随便找个歌谱就可以按照这个来编程了。


如果需要按照原调来写的话,只需要选择不同的主音就行了,例如A大调,就选择A作为1,
A小调,就选择A作为6。绝对音高用ABCDEFG这7个字母表示,B和C,E和F之间是半音,
其它之间是全音。这样全音之间就还有个半音,例如C和D之间,C升高一个半音,
可以用#C表示。

使用特权

评论回复
39
一朝成名| | 2007-12-4 15:31 | 只看该作者

俺的想法跟21楼有点相似

使用特权

评论回复
40
DSZ| | 2007-12-4 15:50 | 只看该作者

照圈圈这样可以让声音随着电机转

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则