-
不至于吧, 他们对自己的芯片这么没有信心? 出来这么快就被破了?
-
似乎不太好买,尤其是大批量的
-
你的程序里面是怎么设置的啊?是不是初始化P2口有问题啊?
-
晶振周边电路必须清洗干净,用密封胶封住,潮湿及脏污都可导致停振。
-
一个定时器即可。请参考:
<转>张明峰的Bloghttp://www.myhcs08.com/blog/info/article_detail.aspx?id=248
实现多路任意延时的一种方法2007-11-27
一个单片机系统的设计经常会用到多种不同目的和用图的定时,例如系统需要输出一个指示“心跳正常”的秒闪信号,间隔0.5s;按键检测时临时需要约20ms的消抖;蜂鸣器需要发声延时;用户菜单选择时可能需要对应的发光管或LCD点阵(字段)闪烁;通讯时需要设定应答超时判别,等等。是不是要抱怨一个单片机上的若干个定时器不够用了?其实,用一个定时器资源就可以搞定所有的这一切定时要求。
1)首先,选定一个你喜欢的定时器,按所需应用的定时精度要求设定其定时中断频率。一般人机界面的定时精度为ms级就足够了,所以可以设定定时中断时间间隔为1ms,5ms或10ms;例如我的选择:
//==============================================================
// TPM2 overflow interrupt service routine
// Interrupt at every 1ms
//==============================================================
void interrupt 14 TPM2_Overflow_ISR(void)
{
TPM2SC_TOF = 0; //reset interrupt flag
msTimeoutCount++; //1ms increment
}
变量msTimeoutCount是一个16位word型的静态变量,在中断服务程序中简单地对它递增,无需考虑溢出。如果你的中断时间间隔为Nms,则在中断中对其递增的方法为“msTimeoutCount += N”。它在程序模块的前面被声明,为了提高中断服务程序的效率,其被定位在直接寻址区:
。。。。。。。。。。。。
-
这个功能好,期待做过的大侠指点啊
-
跳一跳十年少
-
另外 多上 EDN 看看上面的 设计实例,有些相关设计,值得学习和参考、
-
引用 12 楼 peasant_lee 的回复:
“主要这里不能上图,原理图很容易,就是我说的那样。。。键盘扫描的原理我知道,因为我刚做了这方面的东西,只是我不太清楚怎么读这些点。。。”
仿照矩阵键盘,你用IO连接好这些点的两端后。在程序中定义一个足够长的变量,比如32bit,主要看你的点的多少。每个点对应该变量的一bit。然后开始扫描,依次给发射管电平让其发送,同时,然后依次检测接收管的电平,假如不通,那么这个点在写。变量对应的bit置1……
8255的PC0-PC7控制8路发射管,每一个端口控制1路,例如PC0控制X、Y轴的第1、9、17、25个发射管。PA和PB连接的是接收管(PA连接X、Y的低四位,PB连接X、Y的高四位)。通过读PA和PB的值,来确定手指的具体位置。刚刚问了老师一些问题,他要我先测量出每根管的频率,这样就可以知道扫描一帧图像所需要的周期。还说这个扫描不同于键盘扫描,当检测到接收点的位置时,不要固定的设置为电平为高。现在搞的我越来越迷糊了。。。
-
语音芯片
语音芯片供应商:广州唯创电子深圳办事处
映发微--九齐NY语音芯片语音芯片的定义? / 什么是语音芯片? / Voice IC?/语音IC?(提供各类语音IC:映发微信息科技——九齐、华邦语音IC华东总代理。)
什么是语音芯片?语音芯片又称:语音IC,又被叫做声音芯片。
(一)、语音基础知识
1、什么是语音芯片?
语音芯片定义:将语音信号通过采样转化为数字,存储在IC的ROM中,再通过电路将ROM中的数字还原成语音信号。
普通语音芯片放音功能实质上是一个DAC过程,而ADC过程资料是由电脑完成,其中包括对语音信号的采样、压缩、EQ等处理。
录音芯片包括ADC和DAC两个过程,都是由芯片本身完成的,包括语音数据的采集、分析、压缩、存储、播放等步骤。
ADC=Analog Digital Change 模数转换
DAC= Digital Analog Change 数模转换
音质的优劣取决于ADC和DAC位数的多少。例如,华邦的W90P710系列,ADC和DAC均为32bit,接近真人音质。HELIOS公司的H224QP系列与九齐的NY3\NY5系列,ADC和DAC均为16bit,接近CD音质。SUNLINK公司的SLP300系列与佑华的AMEFB系列的DAC为8bit,为普通音质。
2、语音信号的量化表述:(分类:语音芯片 和 音乐芯片)
(a) “语音芯片”介绍:
(1)语音信号的量化
采样率(f)、位数(n)、波特率(T)
采样:将语音模拟信号转化成数字信号。
采样率:每秒采样的个数(byte)。
波特率:每秒钟采样的位数(bit)。波特率直接决定音质。Bps: bit per second
采样位数指在二进制条件下的位数。一般在没有特别说明的情况下,声音的采样位数指8位,由00H--FFH,静音定为80H。
(2)采样率
奈奎斯特抽样定理(Nyquist Law):要从抽样信号中无失真地恢复原信号,抽样频率应大于2倍信号最高频率。抽样频率小于2倍频谱最高频率时,信号的频谱有混叠。抽样频率大于2倍频谱最高频率时,信号的频谱无混叠。
嗓音的频带宽度为20~20K HZ左右,普通的声音大概在3KHZ以下。所以,一般CD取的音质为44.1K和16bit,如果碰到某些特别的声音,如乐器,音质也有用48K和24bit的情况,但不是主流。
一般在我们处理针对普通语音IC的时候,采样率最高达到16K就够了、说话声一般取8K(如电话音质)、6K左右。低于6K效果比较差。
在应用单片机的过程中,采样越高,定时器中断速度越快,会影响到其他信号的监控和检测,所以要综合考虑。
(3)语音压缩技术。
由于语音数据量庞大,对语音数据进行有效压缩是很必要的,能够使我们在有限的ROM空间里录入更多的语音内容。有以下几种方式:
语音分段:将语音中可以重复的部分截取出来,通过排列组合将内容完整地回放出来。
语音采样:一般我们使用的喇叭频响曲线在中频部分,较少用到高频,所以,在喇叭音质可以接受的情况下,适当降低采样频率,达到压缩效果,这种过程是不可逆的,无法恢复原貌,叫有损压缩。
数学压缩:主要是针对采样位数进行压缩,这种方式也是有损压缩。例如,我们经常采用的ADPCM压缩格式,是将语音数据从16bit压缩到4bit,压缩率是4倍。MP3是对数据流进行压缩,涉及到数据预测问题,它的波特率压缩倍率为10倍左右。
通常,以上几种压缩方式都是综合起来使用的。
(4)常用语音格式
PCM格式: Pulse Code Modulation 脉冲编码调制,它将声音模拟信号采样后得到量化后的语音数据,是最基本最原始的一种语音格式。同它极为类似的还有RAW格式和SND格式。它们都是纯语音格式。
WAV格式:Wave Audio Files 是微软公司开发的一种声音文件格式,也叫波形声音文件,被Windows平台及其应用程序广泛支持。WAV格式支持许多压缩算法,支持多种音频位数、采样频率和声道,但WAV格式对存储空间需求太大不便于交流和传播。WAV文件里面存放的每一块数据都有自己独立的标识,通过这些标识可以告诉用户究竟这是什么数据,这些数据包括采样频率和位数,单声道(mono)还是立体声(stero)等。
ADPCM格式:是利用对过去的几个抽样值来预测当前输入的样值,并使其具有自适应的预测功能与实际检测值进行比较,随时对测得的差值自动进行量化级差的处理,使之始终保持与信号同步变化。它适用于语音变化率适中的情况,而且声音回放过程简短。它的优点是对于人声的处理比较逼真,一般达到90%以上,已广泛地应用于电话通信领域。
MP3格式: Moving Picture Experts Group Audio Layer III,简称为MP3。它是利用 MPEG Audio Layer 3 的技术,采取了名为“感官编码技术”的编码算法:编码时先对音频文件进行频谱分析,然后用过滤器滤掉噪音电平,接着通过量化的方式将剩下的每一位打散排列,最后形成具有较高压缩比的mp3文件,并使压缩后的文件在回放时能够达到较接近原音源的声音效果。它的实质是vbr(Variant Bitrate 可变波特率)可以根据编码的内容动态地选择合适的波特率,因此编码的结果是在保证了音质的同时又照顾了文件的大小。
mp3压缩率10倍甚至12倍。是最初出现的一种高压缩率的语音格式。
Linear Scale格式:根据声音的变化率大小,把声音分成若干段,对每段用线性比例进行压缩,但是它的比例是可变的。SUNLINK公司和ALPHA公司的Linear Scale格式为5bit。
Logpcm格式:基本上对整个声音进行线性压缩,将最后若干位去掉。这种压缩方式在硬件上很容易实现,但音质比Linear Scale差一些,特别是音量较小声音比较细腻的情况下效果较差。主要用于pure speech方面。
(b)“音乐芯片”介绍:
(1)音乐的通道与音色:
包络(envelope)方波(patch) 通道(channel)
包络:合成音色的一部分,单位时间内音符输出的变化,常见有“ADSR”
方波:合成音色的一部分,单位时间内音符方波电流的变化。(另见三角波等)
通道:在同一时间内,芯片输出的音符个数,即“单音乐器”的个数。
PCT:模拟音色的一种,通过采样256个点的乐器声音来模拟出各个音符的音高。(音色柔和,占空间小,但不够真实)
FULL WAVE:通过采集一种乐器声音来模拟各个音符音高。(乐器声真实,但占用空间大,且采集音色音质要求高)
(2)音乐的压缩:
由于音乐数据量庞大,对音乐数据进行有效压缩是很必要的,能够使我们在有限的ROM空间里录入更多的音乐内容。有以下几种方式:
音乐分段:将音乐中可以重复的部分截取出来,通过排列组合将内容完整地回放出来。
音色:根据音乐的丰满程度、需求程度,来确定Full wave,PCT、dual tone的选择,各个音色占用空间不懂,音色质量也不同。。
数学压缩:主要是针对采样的音色(Full wave)进行压缩,这种方式也是有损压缩,对于要采集的音色进行降采样、处理等减小采集音色的大小(同语音类的修音)。
(3)常用音乐格式:
MID格式:MIDI(Musical Instrument Digital Interface)乐器数字接口 ,是20 世纪80 年代初为解决电声乐器之间的通信问题而提出的。MIDI 传输的不是声音信号, 而是音符、控制参数等指令。
WAV格式:(相见语音IC类介绍)采集音色的格式。
3、语音ROM空间的表述
语音芯片为表述的形象化,由语音长度来表示
a)普通语音芯片以6K采样率为语音长度计算标准。
b)录音IC以4K采样率为语音长度计算标准。
即:以6k(4k)采样率芯片可以播放的长度。
4、语音芯片的要素
相同品种的芯片成本与芯片的大小成正比。
a)I/O口的分配和ROM的大小(语音秒数)决定芯片成本。低秒数语音芯片其I/O口较少。
b)音质提高,采样提高,语音秒数缩短。
音质降低,采样降低,语音秒数变长
c) 语音秒数的计算方法:M/(n*f)
M---ROM大小(bit) n*f---波特率
5、声音处理软件介绍
1)SoundForge
2)Cooledit
3)goldwave
4)Calewalk
6、语音芯片分类:
语音芯片根据集成电路类型来分,凡是与声音有关系的集成电路被统称为语音芯片(又称语音IC,这里应该叫成Voice IC),但是在语音芯片的大类型中,又被分为语音IC(这里应该叫成Speech IC),音乐IC(这里应该叫成Music IC)两种.
(a)现在市场上常见语音芯片分类:
短时间芯片有10秒,20秒,40秒,80秒,170秒的芯片,针对型号:WTV系列、ISD1700系列芯片和NY3系列芯片。
常用的模块有:6分钟,8分钟,16分钟,1小时的等。。针对型号:WT588D系列语音模块
长时间的芯片有:340秒,500秒,1000秒,2000秒更长。。针对型号:WTV340、ISD4000、NY5系列语音芯片
通用的芯片有:3秒到340秒。针对型号:WTV系列,WTB系列,NY系列.
(b)现在市场上常见音乐芯片分类:
单音片:是一种最基本的音乐IC,是音乐单通道的,同一时间音符输出的多少,决定了单音片的效果,有70多,100多音符等等.
音乐通道:2通道、3通道、4通道、8通道、12通道等更多。。。针对型号:NY2系列、NY5系列、WB681512系列等等
-
和AT89S51比C8051F是功能强大些的片上系统,使用方便,适合初学,大部分集成AD,DA等,可以选用便宜一点的C8051F330D(直插),支持JATG,ISP,相比之下AT89S51功能简单,但价格也便宜很多,但通常更多的人会选择AVR。
-
用串口下载程序的软件来搞啦
-
板子和PC/交换机连接,PC上显示已连接,交换机对应端口的灯也亮,唯一不同的就是我这面板子有的灯亮有的不亮,亮的效果也是如此。
在我印象中Boot好像不用中断吧,因为CE里面我也添加驱动效果同样,而涉及到的东西太多,我才想用Boot作测试,用示波器看cs# IOW# IOR#都有波形。
-
很有兴趣,搜下试试
-
这是编译这个SDHC文件夹的输出信息,也不报错,也不输出错误码
--------------------Configuration: Samsung SMDK2440A: ARMV4I_Release--------------------
Starting Build: set WINCEREL=1&&build -c
==============
BUILD: [Thrd:Sequence:Type ] Message
BUILD: [00:0000000000:PROGC ] Checking for \WINCE500\sdk\bin\i386\srccheck.exe.
BUILD: [00:0000000001:PROGC ] SrcCheck exit code: 0 (dec).
BUILD: [00:0000000002:PROGC ] Compile and Link for ARM.
BUILD: [00:0000000003:PROGC ] Loading C:\WINCE500\PLATFORM\SMDK2440A\Build.dat.
BUILD: [00:0000000004:PROGC ] Done.
BUILD: [00:0000000005:PROGC ] Computing include file dependencies:
BUILD: [00:0000000006:PROGC ] Checking for SDK include directory: C:\WINCE500\sdk\ce\inc.
BUILD: [00:0000000007:PROGC ] Scan \WINCE500\PLATFORM\SMDK2440A\Src\Drivers\SDHC\SDHC\
BUILD: [00:0000000009:PROGC ] Compiling \WINCE500\PLATFORM\SMDK2440A\Src\Drivers\SDHC\SDHC\ directory.
BUILD: [00:0000000017:PROGC ] Linking \WINCE500\PLATFORM\SMDK2440A\Src\Drivers\SDHC\SDHC\ directory.
BUILD: [00:0000000024:PROGC ] Done.
BUILD: [00:0000000025:PROGC ] Files Warnings Errors
BUILD: [00:0000000026:PROGC ] Midl 0 0 0
BUILD: [00:0000000027:PROGC ] Resource 0 0 0
BUILD: [00:0000000028:PROGC ] Message 0 0 0
BUILD: [00:0000000029:PROGC ] Precomp Header 0 0 0
BUILD: [00:0000000030:PROGC ] C/Cpp/Cxx 0 0 0
BUILD: [00:0000000031:PROGC ] Assembler 0 0 0
BUILD: [00:0000000032:PROGC ] Static Libraries 0 0 0
BUILD: [00:0000000033:PROGC ] Dll's 0 0 0
BUILD: [00:0000000034:PROGC ] Exe's 0 0 0
BUILD: [00:0000000035:PROGC ] Resx 0 0 0
BUILD: [00:0000000036:PROGC ] Csharp Targets 0 0 0
BUILD: [00:0000000037:PROGC ] Other 0 0 0
BUILD: [00:0000000038:PROGC ]
BUILD: [00:0000000039:PROGC ] Total 0 0 0
BUILD: [00:0000000040:PROGC ]
BUILD: [00:0000000041:PROGC ] 0 Warnings, 0 Errors
Build for Windows CE (Release) (Built on Apr 14 2005 13:54:39)
File names: Build.log Build.wrn Build.err Build.dat
AT2440 - 0 error(s), 0 warning(s)
-
引用楼主 chenhu113 的回复:
如果不是,请发个小程序说明。
建议楼主先看下keil或者ads中为44B0生成的startup.s之类的东西,理解一下中断向量及跳转的概念,你就明白了。
-
"但是卸载等待的时候上层程序也卡死了,一直要等到按下一个键为止"
研究为什么为卡死。直接在你的卸载程序(写个线程)里查询Filter Driver中的记数值,如果为零就尝试卸载。
-
果然是晶振的问题,现在能ping通,但是发现在UDP传输4W包左右丢120包,各位大大有知道是什么原因?
-
谢谢斑竹和楼上,已解决,的确是的
-
一般的设备,都只有当设备插上,被PC识别后,才会重新分配资源与中断源,所以肯定会重新装载下驱动。