4370|4

68

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

求用149输出正余弦波程序 [复制链接]

请问各位高手,我是430的初学者,我想用149编写一个程序来输出正,余弦波,但是不知道该如何编写,求那位大侠有此程序,小妹不胜感激.

最新回复

#include "msp430x43x.h" #include "Pwm.h"           ORG     0c000h Reset     mov.w   #00400h,SP           mov.w   #(WDTPW+WDTHOLD),WDTCTL           ; 禁止看门狗定时器           mov.b   #00ch,&P2DIR                      ; P2.2和P2.3为输出           mov.b   #00ch,&P2SEL                      ; P2.2和P2.3分别为TB1和TB2           mov.b   #050,SCFQCTL                      ; 1.6384MHz/32768Hz = 50,fDCO=MCLK=1.6384MHz           mov.w   #07ffh,R5           clr.w   SampleTimes Delay1    dec.w   R5                                ; 晶振初始化延时           cmp.w   #00000h,R5           jnz     Delay1           mov.w   #(TBSSEL1+TBCLR),TBCTL            ; 选择SMCLK为时钟,定时器清除           bis.w   #(MC_1+CNTL_0+TBCLGRP_0),TBCTL    ; 选择up,16位模式           mov.w   #CCIE,TBCCTL0                     ; 将CCR0设为比较模式,中断允许           mov.w   #255,TBCCR0                       ; PWM的周期为256,也就是DAC为8bit           mov.w   #(OUTMOD_7+CLLD_1),TBCCTL1        ; 将CCRx设为比较模式,中断禁止           mov.w   #(OUTMOD_7+CLLD_1),TBCCTL2        ; 选择输出模式7,当TBR计数到0时CCRx数据加载到TBCTLx           mov.w   #SinTa××e,R5           add.w   SampleTimes,R5           mov.w   0(R5),TBCCR2                      ; 将正弦表加载到CCR2           mov.w   #128,TBCCR1                       ; PWM的占空比为50%,产生0.5VCC的直流电平           eint                                      ; 中断允许 Loop1     nop           bis.w   #LPM0,SR                          ; CUP进入低功耗模式           jmp     Loop1           ret ;=================================================== TBisr0    push    R5           incd.w  SampleTimes           cmp.w   #00040h,SampleTimes           jc      TBisrl1           jmp     TBisrl2 TBisrl1   clr.w   SampleTimes TBisrl2   mov.w   #SinTa××e,R5           add.w   SampleTimes,R5           mov.w   0(R5),TBCCR2                      ; 将新的抽样值装入CCR2           pop     R5           reti ;===================================================           ORG     0fffeh           DW      Reset                     ORG     0fffah           DW      TBisr0                     end  详情 回复 发表于 2005-8-28 08:39
 
点赞 关注

回复
举报

72

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
我有.
 
 

回复

75

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
请问是不是直接pwm输出,然后用外部电路转换啊?
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

4
 
我逗你玩
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

5
 
#include "msp430x43x.h"
#include "Pwm.h"

ORG 0c000h
Reset mov.w #00400h,SP
mov.w #(WDTPW+WDTHOLD),WDTCTL ; 禁止看门狗定时器
mov.b #00ch,&P2DIR ; P2.2和P2.3为输出
mov.b #00ch,&P2SEL ; P2.2和P2.3分别为TB1和TB2
mov.b #050,SCFQCTL ; 1.6384MHz/32768Hz = 50,fDCO=MCLK=1.6384MHz
mov.w #07ffh,R5
clr.w SampleTimes
Delay1 dec.w R5 ; 晶振初始化延时
cmp.w #00000h,R5
jnz Delay1
mov.w #(TBSSEL1+TBCLR),TBCTL ; 选择SMCLK为时钟,定时器清除
bis.w #(MC_1+CNTL_0+TBCLGRP_0),TBCTL ; 选择up,16位模式
mov.w #CCIE,TBCCTL0 ; 将CCR0设为比较模式,中断允许
mov.w #255,TBCCR0 ; PWM的周期为256,也就是DAC为8bit
mov.w #(OUTMOD_7+CLLD_1),TBCCTL1 ; 将CCRx设为比较模式,中断禁止
mov.w #(OUTMOD_7+CLLD_1),TBCCTL2 ; 选择输出模式7,当TBR计数到0时CCRx数据加载到TBCTLx
mov.w #SinTa××e,R5
add.w SampleTimes,R5
mov.w 0(R5),TBCCR2 ; 将正弦表加载到CCR2
mov.w #128,TBCCR1 ; PWM的占空比为50%,产生0.5VCC的直流电平
eint ; 中断允许
Loop1 nop
bis.w #LPM0,SR ; CUP进入低功耗模式
jmp Loop1
ret
;===================================================
TBisr0 push R5
incd.w SampleTimes
cmp.w #00040h,SampleTimes
jc TBisrl1
jmp TBisrl2
TBisrl1 clr.w SampleTimes
TBisrl2 mov.w #SinTa××e,R5
add.w SampleTimes,R5
mov.w 0(R5),TBCCR2 ; 将新的抽样值装入CCR2
pop R5
reti
;===================================================
ORG 0fffeh
DW Reset

ORG 0fffah
DW TBisr0

end
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表