搜索
bottom↓
回复: 45

MCU特种兵入门考核题

  [复制链接]
(240633525)

出0入0汤圆

发表于 2013-12-14 22:36:45 | 显示全部楼层 |阅读模式
几个简单的练手题目,考察是否可以进入特种兵训练。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
(240631889)

出0入0汤圆

发表于 2013-12-14 23:04:01 | 显示全部楼层
我来给马老师顶一顶!
(240631582)

出0入0汤圆

发表于 2013-12-14 23:09:08 | 显示全部楼层
看一下。。。。
(240631389)

出0入0汤圆

发表于 2013-12-14 23:12:21 | 显示全部楼层
基础         
(240628050)

出0入0汤圆

 楼主| 发表于 2013-12-15 00:08:00 | 显示全部楼层
本帖最后由 machao 于 2013-12-15 00:14 编辑
error_dan 发表于 2013-12-14 23:10
半个小时了还木有沙发?
我来献个丑~只有思路木有代码~
设计题一


第1题,有那么点意思,但不完整
第2题,其实也是MCU运用,外围接个三极管驱动蜂鸣器,产生方波就行
16*16,需要看硬件驱动的,不过也是“基础”的硬件。


需要完整的设计报告,代码也要。还要看时间的。

建议看一看2011年的电视连续剧“我是特种兵”。
什么是特种兵?特种兵是兵中之王!一个军区各个侦察连选拔一百多个优秀的士兵参加特种兵训练,最后就剩下10个左右能成为特种兵的。

5楼的,直接淘汰!
(240627032)

出0入0汤圆

发表于 2013-12-15 00:24:58 | 显示全部楼层
machao 发表于 2013-12-15 00:08
第1题,有那么点意思,但不完整
第2题,其实也是MCU运用,外围接个三极管驱动蜂鸣器,产生方波就行
16*16 ...

马老师这么晚还在线?没写完,按了一下enter就直接提交了~请看更新过的完整答卷~
(240626302)

出0入0汤圆

发表于 2013-12-15 00:37:08 | 显示全部楼层
顶一下,今晚先确定了思路,明早起来赶马老师的报告!
(240625630)

出0入0汤圆

 楼主| 发表于 2013-12-15 00:48:20 | 显示全部楼层
本帖最后由 machao 于 2013-12-15 00:50 编辑
error_dan 发表于 2013-12-15 00:24
马老师这么晚还在线?没写完,按了一下enter就直接提交了~请看更新过的完整答卷~ ...


看过了,思路有对的地方,也有不好的地方。如果你手边有开发板,最好实际试一下,作出可能不难,但你会发现效果可能不佳,会产生这样或那样的问题。16*16是单色的。
因为是说道特种兵入门考核,所以60分肯定淘汰的,至少需要80分以上才能进入训练营。
不过以学校的标准衡量,从你的那些描述看,水平是可以达到80分以上,但对于是否达到“特种兵”入门线,还要看更具体的东西。
(240624526)

出0入0汤圆

 楼主| 发表于 2013-12-15 01:06:44 | 显示全部楼层
题目一本身来自一个小小小小的课题。改造一个学校作逻辑电路实验的实验箱(把箱改成板,让学生人手一块,拿到宿舍作实验),上面有一个产生8路信号源的部分,使用了4片逻辑电路组成的,我希望用一片16脚或20脚的MCU实现,故才有这个题。

我给研究生上MCU嵌入式系统设计的课程,已经3届了,每届都有10-20人左右,每次这个都是第一个测试练手题,没有一届学生开始就作出的。实际上使用标准的MCS-51比如89S51就根本作不到的。

为什么说4楼还不错,就是因为他知道STC有PCA,现在就看他怎么用了。如果是MAGE16,那时没有问题的,不过也需要方法对头,否则也不能实现的。

只学过标准51MCU的朋友,作这些题会碰到很大的困难,要看你使用的是什么样的51了。
(240596747)

出0入0汤圆

发表于 2013-12-15 08:49:43 | 显示全部楼层
看到特种兵这三个字就想吐
(240590606)

出0入0汤圆

发表于 2013-12-15 10:32:04 | 显示全部楼层
看看,顺便顶一下
(240589169)

出0入0汤圆

发表于 2013-12-15 10:56:01 | 显示全部楼层
mega16的 定时器 中断的 使用  按键 状态机的思想   
(240587254)

出0入0汤圆

 楼主| 发表于 2013-12-15 11:27:56 | 显示全部楼层
本帖最后由 machao 于 2013-12-15 11:36 编辑
北回归线 发表于 2013-12-15 10:56
mega16的 定时器 中断的 使用  按键 状态机的思想


后面当然是特种兵训练的部分科目,也是基本的科目。
但定语不准确,只要是新型的MCU,如:51系列(当然必须是改进性兼容51的)、AVR、STM8、STM32等,都行。

主要是思路和方法,不局限AVR。有兴趣可以过些时间来看我贴上的参考,是用51芯片的。
(240586575)

出0入85汤圆

发表于 2013-12-15 11:39:15 | 显示全部楼层
人眼看点阵屏的刷新频率闪不闪并不是24帧/秒,而是闪光临界融合频率(是视觉心理物理学中的一个概念),只有高于这个频率人眼才不感觉到闪,这个频率有个公式:
CCF = a * lg(I) + b
其中CCF是闪光临界融合频率,a和b为系数,I为亮度均值
这个频率不是绝对值,是个统计值。因此实际要确定刷新频率,最好实际调试下,并且高于这个临界频率使用(不同人感受不同),当然对于16*16的小屏刷新频率应该要求不会太高
市面上的大LED屏,240帧/秒、400帧/秒,960帧/秒,甚至有4800帧/秒的!
(240584921)

出0入0汤圆

发表于 2013-12-15 12:06:49 | 显示全部楼层
帮顶
头像被屏蔽
(240583346)

出0入0汤圆

发表于 2013-12-15 12:33:04 来自手机 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
(240577834)

出0入0汤圆

发表于 2013-12-15 14:04:56 | 显示全部楼层
这里是学生的答卷,请马老师过目

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
(240577748)

出0入0汤圆

发表于 2013-12-15 14:06:22 | 显示全部楼层
本人是14届毕业的应届毕业生,不过还希望能跟老师多多学习!
(240569246)

出0入0汤圆

发表于 2013-12-15 16:28:04 | 显示全部楼层
我只关心特种x的待遇如何?
头像被屏蔽
(240568866)

出0入0汤圆

发表于 2013-12-15 16:34:24 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
(240568812)

出0入0汤圆

发表于 2013-12-15 16:35:18 | 显示全部楼层
状态机 状态机 状态机
(240420253)

出0入0汤圆

发表于 2013-12-17 09:51:17 | 显示全部楼层
armok 发表于 2013-12-15 16:34
等你的水平达到了特种兵的时候,再来关心待遇吧。

我相信能入选特种兵,以后出去找工作,只要简历上有这 ...

是诶,如果老板想跟这种人扯皮,就有意思了。。
(240414786)

出10入0汤圆

发表于 2013-12-17 11:22:24 | 显示全部楼层
关注一下,向马老师学习!
(239885306)

出0入0汤圆

发表于 2013-12-23 14:27:04 | 显示全部楼层
学习马老师这种跟实践紧密相连的教学思路。
(239876046)

出0入0汤圆

发表于 2013-12-23 17:01:24 | 显示全部楼层
第1题,用AVR或者改进型的51还有点难度,如果用上STM32,基本上没什么难度了,IO速度能到10M以上,主频72M,就是直接用定时器都能输出了。
(239809971)

出0入0汤圆

 楼主| 发表于 2013-12-24 11:22:39 | 显示全部楼层
xjmlfm1 发表于 2013-12-23 17:01
第1题,用AVR或者改进型的51还有点难度,如果用上STM32,基本上没什么难度了,IO速度能到10M以上,主频72M ...

你已经被淘汰了。就是6个方波的输出,还要用STM32?
(238989018)

出0入0汤圆

发表于 2014-1-2 23:25:12 | 显示全部楼层
马老师,您好!我是孙军(就是这学期在上您的嵌入式系统课程但没有选课的那个同学),您周二送了我一套开发板,但是那张光盘好像坏了,读不出来。如果您有光盘的资料可以麻烦发我一下(邮箱1410632767@qq.com),谢谢马老师!
(238944995)

出0入0汤圆

发表于 2014-1-3 11:38:55 | 显示全部楼层
对这个片子不熟悉,说说大概设计吧
第一个题,高频率的方波可以用定时器来完成,低频率的就直接控制IO口,定时器在产生PWM的同时也开启定时器中断,如果只有一个定时器的话,将定时器设置成PWM输出1Mhz,如果定时器是那种自动比较寄存器的值来翻转IO口的话,每进入5次定时器中断就翻转一个IO口,就能得到100K,进入50次翻转一次,就是10K。。。
如果有两个定时器,就把1Mhz和100K都用定时器,然后低频率的就从100K的中断里分,这样高频率的输出是硬件完成,受指令执行时间影响几乎没有,如果是两个定时器,100K的中断频率对系统负担也不大。主要的影响就在于后面低频率的需要用软件反转IO口,软件的判断计数和执行反转都是需要时间的,但是因为输出频率低,影响较小。
按键的话,可以用按键扫描,放在主循环里,每检测到按键被按下,一个counter计数,如果下次循环到这个位置,按键还是按下的,counter++,否则counter清零,当counter加到n时,就是在循环中已经确认了n次,这个按键是按下的了,就可以认为这个按键确实按下了,就反转IO口。。


第二题的话就使用一个定时器。宏定义ABCDEFG七个音高对应的产生该频率中断的定时器值,然后再宏定义出音长,因为定时器的频率根据音高不一样,所以同样长度的音,在不同的音高下计数次数也不一样,可以直接写成宏,最好写个宏函数让编译的时候编译器来算。
然后依次加载音高,音长,等待音长计数完成后,加载下一个音高,音长。。。

第三题,按键扫描就用上面的方法,因为没有原地等待,所以不会影响刷屏。
显示的点阵显示一个二维数组,比如那个箭头,定义成一个16*20的点阵图像,其中20里面有四行是空行,在显示向上的时候,定义一个row变量,这个变量可以放在主循环或者中断中,它的变化速度就是箭头的移动速度,显示的时候从这个16*20的点阵中取16行,定义一个row_counter变量,该变量指示刷新的时候该刷哪一行了,row_counter=row,得到现在该从哪一行开始刷,刷完一行, row_counter++,if(row_counter >=20)说明一个箭头刷完了,row_counter = 0,开始刷一个新的箭头。要向上移动箭头的话,就row++,这样就改变了刷屏从箭头的哪个位置开始刷,定义成16*(16+4个空行),就省掉了空行的单独处理流程。
横着竖着显示原理都差不多了。

题四,如果要融入的话,还需要考虑片上的资源,对这个片子不太熟悉。。。
(238925737)

出0入0汤圆

发表于 2014-1-3 16:59:53 | 显示全部楼层
产生6路方波输出信号:M16在12M下使用T2,TO分别产生1M和100KHZ方波,不分频,不用中断,硬件使OC2和OC0翻转输出。T1采用8分频,OC1产生10KHZ方波,同时开比较匹配中断,软件计数定时翻转P0.0,P0.1,P0.2分别产生1K,100,10HZ方波。请马老师看看我的这个方案行不?如果行我再继续往下做

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
(238918318)

出0入0汤圆

发表于 2014-1-3 19:03:32 | 显示全部楼层
请问马老师,这个训练什么时候有消息??
(235564282)

出0入0汤圆

发表于 2014-2-11 14:44:08 | 显示全部楼层
看看能做出一道题不,呵呵
(233814263)

出0入0汤圆

发表于 2014-3-3 20:51:07 | 显示全部楼层
去年的帖子,凑个热闹。
12M晶振,单指令周期就是0.083uS。1M的方波,周期就是1uS,0.5uS就得翻转一次,而0.5uS只能运行6条指令,就算是用定时器我感觉也做不出来吧!不知道马老师有什么方法可以做到。
(233564974)

出0入0汤圆

 楼主| 发表于 2014-3-6 18:05:56 | 显示全部楼层
夜尽天明 发表于 2014-3-3 20:51
去年的帖子,凑个热闹。
12M晶振,单指令周期就是0.083uS。1M的方波,周期就是1uS,0.5uS就得翻转一次,而0 ...

参考33楼的思路
(233558660)

出0入0汤圆

发表于 2014-3-6 19:51:10 | 显示全部楼层
马老师 我在30楼做的那个答案行不行啊?
(232105296)

出0入0汤圆

 楼主| 发表于 2014-3-23 15:33:54 | 显示全部楼层
sbk100 发表于 2014-3-6 19:51
马老师 我在30楼做的那个答案行不行啊?

思路是对的,所以让别人参考学习。
不过你最好说明为什么采用这样的思路,仔细分析为什么不能使用溢出中断。
另外使用51架构的MCU可以吗?哪些可以,哪些不行,为什么?
有些人用STM32,但采用溢出中断的方法,被我贬过,基本功不行,方法不对,使用什么芯片都是浮云。
(219648992)

出0入0汤圆

发表于 2014-8-14 19:38:58 | 显示全部楼层
本帖最后由 sbk100 于 2014-8-14 22:18 编辑
machao 发表于 2014-3-23 15:33
思路是对的,所以让别人参考学习。
不过你最好说明为什么采用这样的思路,仔细分析为什么不能使用溢出中 ...


采用OC0 OC1 OC2自动翻转产生的方波应该没有误差,因为是纯硬件工作;用CTC比较匹配翻转IO口产生的方波我不知道怎么计算误差,请马老师指教。不用溢出中断是因为触发中断后,计数器还在计数,在中断里重新给计数器赋初值造成了延迟,时间不准了,变长了。另外请马老师看看我产生两路脉冲信号的方法对不对?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
(219292832)

出0入0汤圆

发表于 2014-8-18 22:34:58 | 显示全部楼层
mark一下,测试题
(219261267)

出100入101汤圆

发表于 2014-8-19 07:21:03 | 显示全部楼层
马老师是不是考虑加入测试题的产品使用场景描述。
(219256993)

出0入0汤圆

发表于 2014-8-19 08:32:17 | 显示全部楼层
马老师帮我看看啊
(219256413)

出0入0汤圆

发表于 2014-8-19 08:41:57 | 显示全部楼层
帮顶,然后练习下。
(219256344)

出0入0汤圆

发表于 2014-8-19 08:43:06 | 显示全部楼层
哇 有人挖坟了啊
(219243088)

出0入0汤圆

发表于 2014-8-19 12:24:02 | 显示全部楼层
记号先,有空再下来看看。
(219083941)

出0入0汤圆

发表于 2014-8-21 08:36:29 | 显示全部楼层
青马老师帮我看看37楼的作业 谢谢
(210858841)

出0入0汤圆

发表于 2014-11-24 13:21:29 | 显示全部楼层
提交测试题三作业,由于没有16x16点阵,所以用马老师开发板上的8x8点阵做的,降低了难度,功能已经实现,请马老师点评

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
(205400834)

出0入0汤圆

发表于 2015-1-26 17:28:16 | 显示全部楼层
学习学习
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子论坛 ( 公安交互式论坛备案:44190002001997 粤ICP备09047143号 )

GMT+8, 2021-7-31 01:15

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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