笔者上课时,往往思绪如天马行空,很多想法而出,受限于课堂种种约束,未必能当堂发挥,课后必反复思考。有些想法成为书的一部分,而有的想法,虽令我感觉确能令人有“茅塞顿开”、“醍醐灌顶”之妙用,却登不得大雅之堂。以下选取一、二,以博大家一笑。
1.缓冲区
编程时往往会用到“缓冲区”,如显示缓冲区、串行通信缓冲区等,可为何要开辟缓冲区?我自学时有此疑惑,也曾被学生问起这个问题。多年来一直找不到确切的回答方式,也就是说,我能回答出显示缓冲区的用途、串行通信缓冲区的用途,但对于缓冲区这个公共的词汇,我找不出回答的理由。一日思绪天马行空之际,突然有些感悟,后经反复思考,总结出下面一段话来,或许可作说明。
为何要缓冲区呢?凡是“随机产生”或“连续产生”但要“集中处理”的问题,就必须要用到缓冲区。如人体的设计就非常科学,人体当中就有“缓冲区”。人是不可以随时尿尿的,但人体内的化学反映却在无时不刻地进行着,废料在不断产生,这样,人就需要一个“缓冲区”,让这些连续不断产生的废料集中起来,到了一定时间集中处理--排泄掉。如异步通信,其特点就是通信是随机发生的,而且往往需要获得一批数据才能进行集中处理(如这一批数据之间有相互关联的关系,仅获得一个数据时根本无法进行处理;或者为了提高效率,需要在获得一批数据后集中进行处理)。这样,异步通信几乎不可避免地需要开辟缓冲区,当然,极简单的通信除外。
有些应用编程中,也可以用上面的说法来说明显示缓冲区的用途。但有些应用中用上面的说法还是有些牵强。所以我们进一步推论,凡是“产生”与“处理”异步进行的事件,就需要缓冲区。这样一来,显示缓冲区的说明没有问题了,AD转换采样缓冲区也没有问题了,还有什么有问题吗?。。。。。。
2.中断
有了上面的想法,我开始找“人”的例子,于是又有了下面的一些感悟。。。。。提醒一下,先准备个垃圾袋,以备呕吐之用哦。。。^_^
----------------------------------------------------------------
你真的想看下去???
---------------------------------------------------------------
年纪大了,难免毛病多了,某日终于要用到*泰了。遵医嘱,将其轻轻推入**,忽然一阵强烈的**反应,将其排出。
由此,我感悟到,人体排泄系统原来设计非常之精巧!
肛门周围必如有外部中断信号送入脑部,而脑部必有中断处理机制,这也就是为何我们会有便意,从而知道要去拉屎。而当那屎到了肛门口,必有一动作将其排出,其实那是因为屎压迫了肛门口周围的神经未梢,神经末梢产生中断请求,从而控制肌肉产生相应的动作。所以*泰一进入,压迫神经末稍,立马产生同样效果--排便动作。
仔细想来,人体的设计比我们的单片机高级许多,尿尿的中断请求信号或许是个模拟量。因为从开始有尿意到快受不了似乎是连续变化的?如果一定是数字信号,那么其分辨率也一定相当的高,至少10位吧(1024级)。而便便的中断请求信号级数似乎就要少一点了,相信很多人都会说“尿尿憋得住,拉屎实在憋不住”,似乎可作为证据吧?
teach51_109853927 2010-8-24 13:24
用户1316125 2010-8-24 11:54
用户1483310 2010-7-5 21:35