打印

单片机软解码

[复制链接]
3253|22
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
begin920|  楼主 | 2008-5-15 20:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用义隆单片机软解码,可不懂要怎么下手各位能不能给点建议啊!!!
1:我想用PWM输出方波然后通过外围电路把他转换为正弦波,可这个PWM的脉宽要怎么算啊!
2:我想用AD来做这个信号的检测,可好像不现实因为有干扰,所以不懂要怎么来做,各位给点建议吧!!!
求救中!!!

相关帖子

沙发
vvampire| | 2008-5-16 22:41 | 只看该作者

你是做项目还是学习?

这个应该容易,

使用特权

评论回复
板凳
begin920|  楼主 | 2008-5-17 10:28 | 只看该作者

单片机软解码

我是做项目的,哦,那能不能指点一下啊!!!

使用特权

评论回复
地板
九把刀| | 2008-5-17 11:46 | 只看该作者

RE:

1. 外接运放可以实现方波到正玄波的变换, PWM出的必须是方波, 脉宽当然根据所需要正玄波周期来进行计算

2. 不知道你要检测的是什么信号, 所指的干扰又是什么

使用特权

评论回复
5
宇宙飞船| | 2008-5-17 12:19 | 只看该作者

没事找事干?PWM就是D/A,直接转换就得了。

占空比1/2代表0度 ,1/2+1/4=90度,1/2-1/4=270度,其余的占空比按正弦表计算。

使用特权

评论回复
6
begin920|  楼主 | 2008-5-17 15:20 | 只看该作者

单片机软解码

4楼:你好,我要检测的是对讲机亚音频信号,不知道要怎么来检测
5楼:老大,这么简单啊!

使用特权

评论回复
7
hotpower| | 2008-5-17 15:47 | 只看该作者

emc458好象有2路pwm

使用特权

评论回复
8
begin920|  楼主 | 2008-5-17 15:50 | 只看该作者

单片机软解码

我用的是EM78P569,他也有两路PWM,

使用特权

评论回复
9
宇宙飞船| | 2008-5-17 17:11 | 只看该作者

把式子改成以下能输出0~VCC,

占空比1/2代表0度=VCC/2 ,最大值1/2+1/2=90度=VCC,1/2-1/2=270度=0V,其余的占空比按正弦表计算。

使用特权

评论回复
10
xwj| | 2008-5-17 21:07 | 只看该作者

是很简单

首先,合理设计积分电路,让输出电压和PWM的占空比线性对应,这是PWM就是线性的DA了;
然后,把正弦波等分,比如做32等分,依次计算(0.5+sin(n*Π/32))×PWM满量程值,存成表格
最后,设置定时中断,以要得到正弦波频率的32倍频率中断,中断时逐个改变PWM寄存器的值即可

这样的做法基本上不占用CPU资源,CPU还可以轻松的做其他事

使用特权

评论回复
11
xwj| | 2008-5-17 21:14 | 只看该作者

至于检测信号的频率,可以明确的告诉你:

EM有现成的封装好的商业库,其实质就是经过特别优化的快速傅立叶转换

要自己做也可以,只是要优化好需要时间(毕竟EM单片机不快),而且你必须得知道快速傅立叶变换的原理和怎样把它转换成程序,杆兴趣的话去多翻翻《高数》吧...

使用特权

评论回复
12
begin920|  楼主 | 2008-5-19 08:28 | 只看该作者

EM有现成的封装好的商业库

EM有现成的封装好的商业库,(是不是要钱的啊)是怎么一回事能不能说清楚一点啊!

使用特权

评论回复
13
begin920|  楼主 | 2008-5-19 08:32 | 只看该作者

不明白

10楼:你好,我想问一下(0.5+sin(n*Π/32))×PWM满量程值计算出来的是什么值啊,是PWM的脉宽还是32等分每等分的中断时间啊!

使用特权

评论回复
14
begin920|  楼主 | 2008-5-19 10:45 | 只看该作者

???

如:我把正弦波(67HZ)做32等分,那么PWM频率要为2144HZ,周期为466us
根据(0.5+sin(n*Π/32))×PWM满量程值,得:(0.5+sin(n*Π/32))×466 那么如9楼说的在90度时(10楼所说也就是n=8时)要PWM脉宽要最大,可我根据上式算出来的怎么不是最大啊???

使用特权

评论回复
15
yysmcu| | 2008-5-19 22:26 | 只看该作者

我进来学习的

使用特权

评论回复
16
huangqi412| | 2008-5-19 23:43 | 只看该作者

晕,高数,,看两天书险过的, 班上挂了2/3.

使用特权

评论回复
17
宇宙飞船| | 2008-5-20 00:10 | 只看该作者

这么简单的东东还没搞明白?晕倒!

保证取PWM的周期 >> 基频5倍以上。例如:选10倍 
要5等分(5个样点)就得再乘5,如要256等分(256个样点)就再乘256以此类推,  
5等分(5个样点)= PWM=67HZ*10*5=3350Hz //1样点=T*sin0,2点=T*sin90,3点=T*sin180,4点=T*sin270,5点=T*sin360
256等分(256个样点)PWM=67HZ*10*256=171520Hz //原理同上,自已算。

使用特权

评论回复
18
begin920|  楼主 | 2008-5-20 08:13 | 只看该作者

先试一下

哦,谢了,我先试一下看看,那如果要解码那要怎么做啊

使用特权

评论回复
19
粉丝| | 2008-5-20 08:24 | 只看该作者

明白了PWM就是一个线性D/A就得了,

要输出67Hz基频除以原来升高的频率,也就是在原来的波形上扩大描点动作。

使用特权

评论回复
20
粉丝| | 2008-5-20 08:37 | 只看该作者

FFT变换本质是在有限的序列内分解频率,

如果只是很少的频率,完全可以用另一些算法代替。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

84

帖子

1

粉丝