Cortex-M3学习日志(五)-- -- DAC实验
,可以大大节省系统资源。DMA模式又可以分为Single-Word DMA(单字节DMA)和Multi-Word DMA(多字节DMA)两种,其中所能达到的最大传输速率也只有16.6MB/s。DMA有两个技术特征,首先是直接传送,其次是块传送。
DMA工作过程
⑴
⑵
⑶
⑷
⑸
DMA与中断的区别
⑴
⑵
在DMA方式中,由于I/O设备直接同内存发生成块的数据交换,因此I/O效率比较高。由于DMA技术可以提高I/O效率,因此在现代计算机系统中,得到了广泛的应用。许多输入输出设备的控制器,特别是块设备的控制器,都支持DMA方式。
通过上述分析可以看出,DMA控制器功能的强弱,是决定DMA效率的关键因素。DMA控制器需要为每次数据的传送做大量的工作,数据传送单位的增大意味着传送次数的减少。另外,DMA方式窃取了时钟周期,CPU处理效率降低了,要想尽量少地窃取时钟周期,就要设法提高DMA控制器的性能,这样可以较少地影响CPU出理效率。
好了,关于DAM的知识先总结到这,要想使用LPC1768的DAM功能,需要配置D/A转换控制寄存器DACCTRL与DAC转换计数寄存器DACCNTVAL。这次实验只是简单的学习怎样使用DAC,所以没有用到DAM。下面说一下实验电路,就是把DAC转换的电压通过放大器输出到Speaker,电压值不同,则Speaker的响度就不一样,如下图所示:
图
关于LM386M已经是烂大街的芯片,关于它的应用网上有成大堆的资料可供参考,这里就不总结它的用法了,下面贴上这次实验的程序:
关于LM386M已经是烂大街的芯片,关于它的应用网上有成大堆的资料可供参考,这里就不总结它的用法了,下面贴上这次实验的程序:
一、dac.c程序源代码
#include"includes.h"
void DACInit( void )
{
}
void DacOut(unsigned int val)
{
}
二、main.c程序部分源代码
void DacConver(unsigned int val)
{
}
int main(void)
{
}
程序很简单,就是简单的测试,能从Speaker听到响声,同时我也把结果发送到了串口显示,下面是实验的结果:
图
Cortex-M3DAC实 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)