-
你可以自己先想想,这个问题很容易的。
-
受教了
-
所以现在的情况是使用的DCO就完全不知道频率的大小,从而就没法通过串口发送数据了...
非常麻烦...
但是不用DCO,32kHz的晶振又显得太低了,无法满足需要,因此很困惑不知道该怎么处理...
希望能有人能指导一下,谢了!
-
因为之前我们用的是 NXP 的 LPC2132 所以 没有考虑到那么多!! LPC2132 是没有这个现象的!!
-
NRST脚上拉10K,电容104,10K后面改为100时也会被复位掉。
VCAP对地电容474,后改为105,205也会复位,
电容材料是X7R的
-
嵌入式Linux的相关书籍,ARM平台开发的相关书籍
-
想从JAVA转向 linux 驱动开发。。。。 难啊
-
feiyixuan@sina.com
-
还是没有完全解决问题的啊。
-
我正在做这方面的,,我用的提取方法是主要利用小波算法,希望大家互相讨论下,给点建议
-
我找到了
是TL0,TH0的初值错了导致的
-
引用 4 楼 joyzml 的回复:
我有一个DirectShow
播放视频和摄像头采集的例子
——————————————————————————
JOYZML(菜鸟朱铭雷)
"我有一个DirectShow 播放视频和摄像头采集的例子 "
能不能给我,谢谢。 huabinsir@126.com
-
我添加了中文支持的。对话框标题就是就有中文汉字!
-
定义结构本身的时候考虑好对齐问题就可以了 ,你用空结构体来做什么的啊?我认为应该没有问题
-
引用 456 楼 jiqiang01234 的回复:
引用 454 楼 c_rabbit 的回复:
楼主也说了,凡事都要有个度,模块化也是如此。
既然是基于AT89C52,那么我假设一个情况,例如同时控制三块SMC1602A(8位数据,3位控制端),同时需要进行串口通讯和外部数据读写,这必然涉及到IO复用,而之前可能写的是只控制单一SMC1602A的模块,那么这个模块能用吗?若是为这次专门撰写程序,那么下次遇到的只有一块SMC1602A,但是要求模拟USB通讯,对于RAM要求很严重的例子,之前写的普通单一SMC1602A模块恐怕又不能用了。模块化需要细分到什么程度,才可以方便地覆盖这种种要求特异的案例,更不要提,有时候或许加入一块373,或换用一块PDIUSBD12,整个架构又会大不相同。
我并不是否认模块化,我写单片机程序也是有模块化的,但只是在有可能的情况下,比如性能比较优越的C8051f系列这些能够提供比较大的自由度的单片机上才会尽力做到输入输出接口单一简便,而且还有个特色是尽量采用单片机自身的功能模块资源,以及尽可能的减少对RAM的耗费,这些都是单片机的规则,有很多和PC是大不相同的。
其他的几点,我与上面的几位朋友意见差不多,有很多时候并不是不愿去做,而是做了没价值或者没法去做
比如语句偏僻不易读,有个最简单的例子,延时程序,用C写的话,for函数这个最常用的函数写出来的反而是最不稳妥的,因为我们要力争使汇编后的语句简化为DJNZ,这样可以保证延时的精确性,但同时也牺牲了易读性。这是没办法的事情,所以只有注释弥补,如果连注释都没那我也没什么好说的了,不写注释的程序员不是好程序员。
"既然是基于AT89C52,那么我假设一个情况,例如同时控制三块SMC1602A(8位数据,3位控制端),同时需要进行串口通讯和外部数据读写,这必然涉及到IO复用,而之前可能写的是只控制单一SMC1602A的模块,那么这个模块能用吗?若是为这次专门撰写程序,那么下次遇到的只有一块SMC1602A,但是要求模拟USB通讯,对于RAM要求很严重的例子,之前写的普通单一SMC1602A模块恐怕又不能用了。模块化需要细分到什么程度,才可以方便地覆盖这种种要求特异的案例,更不要提,有时候或许加入一块373,或换用一块PDIUSBD12,整个架构又会大不相同。"
假设若是我来做这个需要控制三块SMC1602A的这个项目(单片机的RAM和ROM都允许的话),我也许会这样考虑这个问题:之前封装的那个控制单一SMC1602A的模块的模块现在无法直接派上用场了,但是否可以经过很小的改动就能派上用场呢?单一SMC1602A的模块封装和三块有什么区别呢?我想,最重要的区别就是对管脚的控制方式,因为三块SMC1602A必然会有端口复用,那么解决方法不难想到:是否可以抽象出一个对三块SMC1602A端口复用控制的一个模块,而内部是分别调用之前单一的封装模块呢?这样可以最大程度复用以前写的单一的模块。以上是我一些不成熟的想法,至于具体实现没有仔细考虑,仅作为一个思路参考。
抽象有多远,封装就能走多远~_~
诚然,我一贯遵循物极必反,适可而止。
这个解决方法我在假设例子的时候就已经想到了,但是它有一个最大的障碍,那就是资源的耗费。
实际上在你所花费的设计另一个模块的时间,足够用来修改原本的模块分别适用于几个LCD的同时使用了,在单片机上这仅仅是对于IO的设置的变换问题,熟练的话费时是很短的,而且最重要的是这种解决方式可以最有效的不浪费宝贵的资源。低端单片机并不是没有类似模块化的操作的,但是这种操作已经是细化到了很微小的地方,例如以前所写的一个传输命令脉冲的输出,又或者某个计算公式的更快更小的优化版本,这些其实已经是函数级别的应用了。这种操作在实际应用中就是Ctrl+C Ctrl+V,所以一个富有经验的单片机程序员,一定是积累了很多函数,而不是模块。这也是新手和老手的区别,新手一切都要从新来过,而老手则可以把以前的函数拿来拼拼凑凑快速完成项目,即使没有积累,老手也能够很快的从以往的例程中提取出他想要的东西,因为他用过,而新手还需要一个消化的过程(这里说说我的感觉,很多成型的函数,第一眼看到时会是一头雾水,但细细啃几小时,甚至几天,却会发现这个函数的操作原来是如此简单,所以用没用过,差别是非常大的)。
此外还有一个比较重要的因素,刚刚想到的,那就是Debug。单片机与PC不同,PC到处都是成型的机器,代码有Error而不知原因是出在硬件还是软件上时,可以很轻易的拿到另一台机器上来测试代码;但当单片机系统出现问题时,很多时候是没办法换机测试的(尤其在设计阶段),因为大多数的单片机系统都是自己重新设计的PCB板,你无法确定究竟是代码问题还是硬件设计问题,解决的办法就是把代码的每一步都摸透的白盒测试,因此在使用模块(尤其是使用别人的模块)时发生了要Debug的情况,是很痛苦的事情。我有时候可能必须要把某个通讯的波特率调高到某某值,又有时候可能必须把某个计算函数的计算范围扩大到某某值,用于测试产品的性能。而在出产品时又会有可能要在改回来,这样的操作可能会遇到很多,更多时候则是千奇百怪的无响应BUG,这些都是单片机程序员要能解决的事情,而模块化在应对这些问题时没有任何帮助,反而还可能造成很大的阻碍(比如某个模块的计算模型覆盖范围太小,而如果改变则会影响到整个模块的数据类型定义)。
总之,我认为追求积累复用的思想是对的,但是把这种追求提高到模块化,在低端单片机领域弊远远大于利,低端单片机领域只需要函数的积累就足够了。
楼主可以去试一试AVR的Mega48或者更低的片子,还可以自己手工焊一焊连线面包板,就会了解这里面的问题了。
-
或者有没有人知道用7022B进行三相三校表与三相四校表有什么不同
-
1. 在XP下枚举OK, 在Win2K下 VCom带有问号。
Win2K应该不支持IAD,IAD是2003年年底才出的一个标准协议。Linux内核也要到2.6.21.3后才得到支持。
2. CDC下面定义了3个ENDP,但其中有一个作为Comm的ENDP没有实际使用,那么这个ENDP可不可以不占用收发缓存呢?这样可以节省一些USB缓存.
自己测试一下就知道了,保险其间,我是设置为8字节的端点size。
3. 当将CDC协议的双Interface 改为1个Interface, CDC协议描述部分,需要做哪些修改?
首先,一个interface的CDC不一定可以在Linux下识别,需要自己测试。
只要将数据接口中的2个批量EP描述符放到通信类接口上去即可,并且去掉通信类接口上原来的中断EP去掉。
4. 当将CDC协议单Interface bInterfaceNumber=1的时候, CDC协议描述部分,需要做哪些修改?
没什么修改的
5. ST的例子中USB缓冲分配没有从0开始,Why ? 见下面的2行。
#define ENDP0_RXADDR (0x18)
#define ENDP0_TXADDR (0x58)
自己看资料,要放一张表
-
重新编译内核吧,有时候找不出什么原因,重烧下就好了
-
关于BOR的问题,STM8L的BOR是可以由用户选择是开启还是关闭,同时BOR阀值有5种选择,为用户的应用提供了更多灵活的选项。
我还没有看过MSP430的BOR,哪位研究过的可以帮忙比较一下。 ...
其实msp430厉害的原因之一就在于BOR功耗非常低,要不是这个因素,和pic的低功耗类型比,基本没有优势。
所以stm8L既然做低功耗,BOR的耗电要做得好,才能搬动msp430
-
这是USB虚拟的网卡,肯定有IP地址的