天狼的学习与思考 https://bbs.21ic.com/?540120 [收藏] [复制] [RSS] 记录我学习过程中的点点滴滴

日志

用 spi接口的DA 产生音乐

已有 1168 次阅读2010-4-23 12:32 |系统分类:单片机| spi

wav 波形文件就是对声音进行一定速率的采样,然后把采样值量化后进行存储,我的这个程序反其道而行之,把数字量按照一定的速率进行转化,从而放出音乐(采样 4000hz的 mono wav 文件),wav 数组文件 是通过千千静听 和 cool edit 处理过后 从winhex 下 得到的。由于 proteus下速度跟不上,声音有延迟。


/*------------------------------------------------------------         
spi时序理解:spi总线时序根据CPHA 和 CPOL的组合分为下面4种方式


由于CPOL CPHA 只对主机有效, 所以主机可以选择以上四种的任意一种方式,而不用理会从机


CPHA=0 CPOL=0:奇数沿取样,空闲低电平//本例采用
发送数据:  数据先放到总线上然后sclk产生上升沿 数据被写入 (上升沿写入)(sclk再返回低电平)
接受数据:  sclk先产生一个下降沿,然后从总线上读走数据    (下降沿读出)


CPHA=0 CPOL=1:奇数沿取样,空闲高电平
发送数据:  数据先放到总线上然后sclk产生下降沿 数据被写入 (下降沿写入)(sclk再返回高电平)
接受数据:  sclk先产生一个上升沿,然后从总线上读走数据    (上升沿读出)


CPHA=1 CPOL=1:偶数沿取样,空闲高电平
发送数据:  数据先放到总线上然后sclk产生上升沿 数据被写入 (上升沿写入)
接受数据:  sclk先产生一个下降沿,然后从总线上读走数据    (下降沿读出)(sclk再返回高电平)


CPHA=1 CPOL=0:偶数沿取样,空闲低电平
发送数据:  数据先放到总线上然后sclk产生下降沿 数据被写入 (下降沿写入)
接受数据:  sclk先产生一个上升沿,然后从总线上读走数据    (上升沿读出)(sclk再返回低电平)



读写时 msb在前
--------------------------------------------------------------*/


源码 图在这:spi_da_wav.rar


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)