OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6052|回复: 7

用定时器产生pwm信号,实现DA功能!

[复制链接]

28

主题

310

帖子

0

精华

版主

Rank: 7Rank: 7Rank: 7

积分
1320
金钱
1320
注册时间
2012-6-3
在线时间
353 小时
发表于 2012-6-17 19:10:58 | 显示全部楼层 |阅读模式

#include <msp430x14x.h>
#include <math.h>
#define uchar unsigned char
#define uint unsigned int

#define CPU_F ((double) 8000000.0)//当前CPU主频
#define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))
#define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))
uint sintable[]={255,246,239,225,213,200,180,162,130,122,108,95,80,59,39,28,17,10,3,1,3,10,
17,28,39,59,80,95,108,122,130,162,180,200,213,225,239,246,255};
uint t=0;
void Init_clk()//时钟初始化
{
   uchar i;
   BCSCTL1 &=~XT2OFF;//(置TX2=0)使TX2有效,默认是关闭的
   do
   {
     IFG1 &= ~OFIFG;//清振荡器失效标志
     for(i=0xff;i>0;i--);
   }while((IFG1 & OFIFG)!=0);     //若振荡器失效标志有效
   BCSCTL2|=SELM_2+SELS+DIVS_2;   //使MCLK=XT2=8M,SMCLK经过4分频,则SMCLK=2M
}

void main(void)
{                                             
  WDTCTL = WDTPW + WDTHOLD; 
  Init_clk();            //时钟初始化
  P4DIR |= 0x07;         // P4.0 - P4.2 输出
  P4SEL |= 0x07;         // P4.0 - P4.2 第二功能(PWM输出)
  TBCTL = TBSSEL_2 + MC_1; // SMCLK,增计数模式
  TBCCTL0 |=CCIE;          //CCR0比较模式,打开中断
  TBCCR0 = 255;            //PWM周期
 
  TBCCTL1 = OUTMOD_7; //选择输出模式7,当TBR计数到0时,CCRx数据加载到TBCTLx中                     
  TBCCTL2 = OUTMOD_7;   
  
  TBCCR1 =sintable[t];
  TBCCR2 = 128;          //占空比128/255=50%
  while(1)
  {
   _EINT();//打开总中断
  }
}

#pragma vector=TIMERB0_VECTOR
__interrupt void timerB()
{
  t=(t+1)%39;
  TBCCR1=sintable[t];//将新的抽样值装入TBCCR1
}

 

 

 

 

电路图.png
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

558

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
164897
金钱
164897
注册时间
2010-12-1
在线时间
2100 小时
发表于 2012-6-17 21:15:24 | 显示全部楼层
图片直接附图啊,别发附件!!
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

251

主题

1371

帖子

12

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
7545
金钱
7545
注册时间
2015-10-15
在线时间
2768 小时
发表于 2012-6-18 10:13:12 | 显示全部楼层
老大呀,     现在急要你的各方面资料呀    你多传点呀     
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

28

主题

310

帖子

0

精华

版主

Rank: 7Rank: 7Rank: 7

积分
1320
金钱
1320
注册时间
2012-6-3
在线时间
353 小时
 楼主| 发表于 2012-6-18 10:51:35 | 显示全部楼层
回复【3楼】Anonymous:
---------------------------------
别急,东西多了,不好消化!!
回复 支持 反对

使用道具 举报

28

主题

310

帖子

0

精华

版主

Rank: 7Rank: 7Rank: 7

积分
1320
金钱
1320
注册时间
2012-6-3
在线时间
353 小时
 楼主| 发表于 2012-6-18 10:52:15 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
ok!!
回复 支持 反对

使用道具 举报

23

主题

144

帖子

1

精华

高级会员

Rank: 4

积分
928
金钱
928
注册时间
2012-4-23
在线时间
67 小时
发表于 2012-8-3 12:16:12 | 显示全部楼层
MSP430相比STM32除了功耗低还有哪些优势?
运行速度怎么样
回复 支持 反对

使用道具 举报

28

主题

310

帖子

0

精华

版主

Rank: 7Rank: 7Rank: 7

积分
1320
金钱
1320
注册时间
2012-6-3
在线时间
353 小时
 楼主| 发表于 2012-8-4 11:44:24 | 显示全部楼层
除了低功耗,就没了!!!运行速度还行!16位的片子!
回复 支持 反对

使用道具 举报

23

主题

144

帖子

1

精华

高级会员

Rank: 4

积分
928
金钱
928
注册时间
2012-4-23
在线时间
67 小时
发表于 2012-8-5 11:28:02 | 显示全部楼层
回复【7楼】艾科:
---------------------------------
还行是什么个概念?
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-6-9 07:42

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表