jng114253501 发表于 2015-6-27 22:23:35

最近研究了红白机可以产生的几种声音波形,喜欢用Arduino发声的大神们研究下~!

自己整理的,包括几种方波、三角波、锯齿波、正弦波等
//红白机可以产生的波形采样
unsigned char fds={0,17,56,92,110,115,125,138,143,145,148,163,163,158,148,148,166,181,179,166,153,143,135,125,104,97,107,128,138,145,156,166,176,179,161,140,140,151,156,153,140,135,130,125,112,104,99,79,46,10}; //磁碟机
unsigned char sawTooth ={12,30,48,73,91,115,134,164,176,201,201,255,115,0,48,54,85,103,128,146,170,188,201,231,219,24,30,48,67,91,115,134,164,176,201,201,255,115,0,48,54,85,103,128,152,170,195,195,237,201}; //锯齿波
unsigned char triangle={0,5,5,15,30,40,56,66,81,92,102,112,128,138,143,153,163,174,184,194,199,209,215,220,225,235,235,235,230,215,204,199,189,179,168,158,148,138,128,117,107,97,87,81,71,61,46,40,25,15}; //三角波
unsigned char v00={172,238,255,225,119,105,114,105,110,105,110,110,110,110,110,110,110,110,110,114,110,114,110,119,105,141,247,247,229,114,105,110,110,110,110,110,110,110,110,110,110,110,110,110,110,114,110,110,114,114}; //脉冲
unsigned char v01={154,245,255,250,250,245,245,106,74,85,80,85,80,85,85,85,85,90,85,90,85,96,90,96,85,117,255,250,250,245,245,245,106,74,85,80,85,80,85,85,85,85,90,85,85,90,90,90,90,90}; //25%高,75%低方波
unsigned char v02={94,229,242,235,235,229,235,229,229,222,229,215,235,101,0,26,13,26,20,26,26,33,26,40,20,60,235,235,235,235,229,235,229,229,222,229,215,235,101,0,26,13,20,20,26,26,26,26,33,33}; //方波
unsigned char v03={92,179,184,179,179,179,179,179,179,174,174,174,174,174,174,168,174,163,184,107,0,25,10,25,10,61,184,179,179,179,179,179,179,179,174,174,174,174,174,174,168,174,158,184,102,0,20,15,20,20}; //75%高,25%低方波

喜欢用Arduino发声的大神们可以拿回去研究研究~

seesea 发表于 2015-6-28 00:30:58

这个有创意!

pumpitup 发表于 2015-6-29 10:36:15

tone好像只能产生正常的方波吧

其余的怎么实现?

Ansifa 发表于 2015-6-29 12:57:17

pumpitup 发表于 2015-6-29 10:36 static/image/common/back.gif
tone好像只能产生正常的方波吧

其余的怎么实现?

用 外挂DAC输出最好

pumpitup 发表于 2015-6-29 22:48:08

Ansifa 发表于 2015-6-29 12:57 static/image/common/back.gif
用 外挂DAC输出最好

受教了,不过还是不知道DAC具体是啥

jng114253501 发表于 2015-6-30 19:07:31

求推荐外挂DAC芯片,或者能提高PWM频率的方法

seagatecm 发表于 2015-7-1 13:27:52

用定时器中断,理论上能达到晶振的最大频率。参考我这篇文章,通过控制分频来提高频率。
http://blog.sina.com.cn/s/blog_6a2f665f0102vliy.html
页: [1]
查看完整版本: 最近研究了红白机可以产生的几种声音波形,喜欢用Arduino发声的大神们研究下~!