- 浏览: 274230 次
- 性别:
- 来自: 广州
文章分类
MCU: C8051F330, Fmax: 23KHz
#include <stdio.h> #include <stdlib.h> unsigned char sine_table[8] = { 0x80, 0xDA, 0xFF, 0xDA, 0x80, 0x25, 0x00, 0x25 }; /* 8KSPS, 0dB */ // unsigned char sine_table[8] = { 0x80, 0xAD, 0xC0, 0xAD, 0x80, 0x52, 0x3F, 0x52 }; /* 8KSPS, -6dB */ unsigned char *waveform_data = &sine_table[0]; /* for generate 1KHz sine wave, call it per 125us */ unsigned char waveform_output(void) { unsigned char dac_value; dac_value = *waveform_data++; if (waveform_data >= &sine_table[8]) { waveform_data = &sine_table[0]; } return dac_value; } int main() { int i; for (i = 0; i < 16; i++) { printf("%02X\n", waveform_output()); } return 0; }
#include <stdio.h> #include <stdlib.h> #include <math.h> #include <string.h> unsigned char *sine_table = NULL; float db2liner(float dB) { return pow(10, dB / 20); } float liner2db(float liner) { return (20 * log10(liner)); } int waveform_generate(int freq, int sps, float dB) { int i; int table_length; float A; float value; table_length = sps / freq; sine_table = (unsigned char *)malloc(table_length); memset(sine_table, 0, table_length); A = db2liner(dB); for( i = 0; i < table_length; i++) { value = A * sin(2 * M_PI * i * freq / sps); if (value < 1.0) { sine_table[i] = (256 / 2) + value * (256 / 2); /* add DC offset */ } else { sine_table[i] = 256 - 1; } } return table_length; } int main() { int i, table_length; /* generate 1000Hz sine wave, sample rate: 8000Hz, gain: -6dB */ table_length = waveform_generate(1000, 8000, -6); printf("unsigned char sine_table[%d] = { ", table_length); for (i = 0; i < table_length; i++) { printf((i != table_length - 1) ? "0x%02X, " : "0x%02X ", sine_table[i]); } printf("};\n"); free(sine_table); return 0; }
发表评论
-
stm8 stm32 nop
2012-09-21 09:15 1244stm8s103f3 0x8000-0x9FFF: 0x9D ... -
CoreSight Debug and Trace Connectors
2012-09-17 09:18 862CoreSight Debug and Trace Conne ... -
DM9006 linux driver
2012-08-15 13:02 1503DM9006 linux driver http://www ... -
hsb_to_rgb
2012-06-20 16:33 0static void hsb_to_rgb(uint1 ... -
stm32 jpeg
2012-05-08 10:06 0jpeg -
STM32和STM8各系列选型表
2012-04-24 13:40 1117STM32和STM8各系列选型表 -
研华推出基于Freescale i.MX53的ARM核心板
2012-02-10 13:36 1042http://www.eepw.com.cn/article/ ... -
helix
2011-11-25 16:34 0helix -
audio dsp
2011-11-07 16:39 0http://alldsp.com/index.html ... -
stm32 softreset
2011-11-07 10:07 984SCB->AIRCR = 0x05FA0004; -
MDK FS driver for STM32
2011-11-01 20:46 1095/*-------------------------- ... -
VS1003B Debug
2011-10-06 08:50 0VS1003B 在SM_SDISHARE模式下不能连续soft ... -
stm32 中断号 for IAR PowerPac
2011-09-20 16:53 195100 DCD __intial_s ... -
hashtable for DM9000A
2011-09-09 10:23 1003unsigned long const Crc32Tab ... -
DM9000A for KEIL RL-NET driver
2011-08-22 09:05 1916DM9000AEP 在KEIL RL-NET下的驱动程序,从u ... -
DM9000
2011-08-02 11:42 0/*========================== ... -
STM32 MP3
2011-06-28 09:15 904http://bbs.21ic.com/viewthread. ... -
stm32 lib
2011-04-16 22:00 1107stm32
相关推荐
该资源是理工STM32内部DAC产生1KHZ的正弦波,所采用定时器进行采用,数据传输方式为DMA.绝对好使!
STM32F103使用用DMA+DAC 实现 50HZ正弦波输出 亲自测试输出稳定
在STM32F103RCT6单片机上,利用DAC功能输出正弦波,计算出产生正弦波的数据,然后将将数字利用DAC功能转换为电压输出。
STM32F103通过DMA方式用DAC产生正弦波
DAC输出正弦波 非常有用的文档 stm32的
这是关于用dac0832产生正弦波的设计
用单片机去产生正弦波的程序是用查表的方法。
stm32f1的程序
正点原子探索者系列 STM32F4之dacdma高速输出正弦波加adcdma多通道高速采集信号,TFTLCD显示
STM32_DAC_产生正弦波,完整的代码
通过描点法,利用单片机的DAC功能,模拟输出正弦波形,(有800HZ和1600HZ两种可选)并可通过ADC测量得出。
通过DAC方法,产生正弦波信号,是一种很常用的方法;但编程时,要输入一长串的DAC数据,是件麻烦的事情,而且经常出错;为此,采用VC++编了个小工具,可以输入希望的参数(比如DAC位数,需要产生的一个周期正弦波的...
包括硬件电路设计,使用DAC产生正弦波,方波,三角波,锯齿波,通过按键设置波形和频率,通过12864显示波形图 Protues仿真软件是一款单片机仿真程序,用户可以通过它来实现单片机以及相关工具的模拟功能,并且能够...
通过定时器每隔一段时间触发一次DAC 转换,然后通过DMA 发送正玄波码表值给 DAC. 当需要改变频率HZ 时,只需要修改定时器频率即可(最高只能达到20KHz) 当需要改变正玄波的正峰峰值/负峰峰值时,只需要修改正玄波...
用函数产生正弦波;unsigned char xdata DAC0832_PORT _at_ 0x7fff; typedef unsigned int uint16; unsigned char i; float x; unsigned char k;
基于单片机的DAC0832正弦波 发生器 源码 +仿真protEUS电路图
用ATmega16与DAC0832在proteus里仿真,产生正弦波。 有C语言程序和编译后的HEX程序。
这是一个基于51单片机DAC0832产生正弦波的C程序,希望能给大家一些帮助
主要是在原始例程上对main.c进行修改 增加关于正弦函数的代码 生成相应的点 接下来附上相应的代码程序 //输出正弦波函数 ... while(1) //不停的产生正弦波 { for(i=0;i;i++) { DAC->DHR12R1=buf[i]; } } }
STM32F407的DAC输出频率可调的三角波正弦波,还有频率可调的互补的PWM波,方波信号(原理图和PCB板).zip