历史上的今天
今天是:2025年01月18日(星期六)
2020年01月18日 | MSP430_定时器输出PWM
2020-01-18 来源:eefocus
#include //MSP430G2553 - 使用Timer_A,Up Mode, DCO SMCLK // // 介绍: 该程序利用TIMER A 的 UP模式 在P1.0脚产生1S方波 // ACLK = na, SMCLK = MCLK = TACLK = DCO-16M // // MSP430G2553 // ----------------- // /|| XIN|- // | | | // --|RST XOUT|- // | | // | P1.0/TA1|-->led // // 使用 MSP430 LaunchPad , MSP430G2553芯片 // CCS5.2编译通过 //****************************************************************************** /*#define CPU_F ((double)1630)//cpu frequency1630 //CPU的实际MCLK大约为13.05/8=1.63KHz #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))*/ void Timer_A0_1_init() //TA0.1输出PWM { TACTL|= TASSEL_1+MC_1;//ACLK,增计数 CCTL1=OUTMOD_7;//输出模式为复位/置位 CCR0=328;//时钟频率为32768HZ,100HZ //CCR1=164;//时钟频率为32768HZ,占空比CCR1/CCR0=50% CCR1=109;//占空比CCR1/CCR0=1/3 TA0.1由P1.2 P1.6输出 } void Timer_A1_2_init() //TA1.2输出PWM { TA1CTL|= TASSEL_1+MC_1;//ACLK,增计数 TA1CCTL2=OUTMOD_7;//输出模式为复位/置位,注意CCTL2要写为TA1CCTL2 TA1CCR0=163;//时钟频率为32768HZ,波形32768/CCR0=199HZ TA1CCR2=41;//占空比CCR2/CCR0=1/4,注意CCR2要写成TA1CCR2 TA1.2由P2.4 P2.5输出 } void Timer_A1_1_init() //TA1.1输出PWM { TA1CCTL1=OUTMOD_7; TA1CCR1=123; //占空比CCR1/CCR0=3/4,注意CCR1要写成TA1CCR1 TA1.1由P2.1 P2.2输出 } void IO_init() { P1SEL|=BIT2+BIT6; P1DIR|=BIT2+BIT6;//P1.2 P1.6输出 TA0.1 OUT1 P2SEL|=BIT4; P2DIR|=BIT4;//P2.4 P2.5输出 TA1.2 OUT2 P2SEL|=BIT1+BIT2; P2DIR|=BIT1+BIT2; //P2.1 P2.2输出 TA1.1 OUT1 } void main(void) { WDTCTL=WDTPW+WDTHOLD; IO_init(); TA1CCTL0 = CCIE; Timer_A0_1_init(); Timer_A1_2_init(); Timer_A1_1_init(); _EINT(); _BIS_SR(CPUOFF); // Enter LPM0 进入低功耗模式0 SMCLK ON,ACLK ON } #pragma vector=TIMER1_A0_VECTOR __interrupt void TimerA1_ISR(void) { TA1CCR2 = 82; } 实验结果在P2.4引脚输出占空比可调的PWM,若想得到想要的占空比,在中断里更新TA1CCR2的值即可
下一篇:MSP430--时钟模块
史海拾趣
|
如果设置HIVE注册表,需要在platform.reg中添加如下项: [HKEY_LOCAL_MACHINE\\System\\StorageManager\\Profiles\\FlashDisk] \"Name\"=\"NAND FLASH\" \"Folder\"=\"NANDFlash\" \"AutoPart\"=dwo ...… 查看全部问答> |
|
新手问题,请问各位大侠: 是不是只要wince或wm操作系统的设备都能用vs2005编程? 有人说可以,但是我问了一个销售商,他们的产品是wince系统的,但是他说不能编程。 谢谢!!… 查看全部问答> |
|
如何开传奇?应该准备什么?怎么开好呢?--初次接触的您 会有这些迷惑不? 答:开个F需要:服务器+空间+域名+网站+版本+架设+登陆器+技术支持+广告! 这些,都属一条龙服务的内容!--金牌网络(www.gm53.com),竭诚为您提供该方面服务-专业为 ...… 查看全部问答> |
|
各位大虾: 我是个单片机新手,现在基本上能做一些小小的单任务程序,现请教各位,如何才能实现多任务?比如说,我现在要通过9个按键分别控制9个任务,还要同时响应外部的其它中断。当有不同的按键按下时,它能够马上转 ...… 查看全部问答> |
|
源程序是QBASIC,控制串口,需要改成api语句,不能调用控件! \' Open COM: 4800 Bd, no parity, 8 data bits, 1 stop, no handshake OPEN \"com1:4800,n,8,1,rs,cs,ds,cd\" FOR INPUT AS #1 ON ERROR GOTO RecvErr MainLoop: DO WHI ...… 查看全部问答> |
|
[Help!] TFFS 的 FLASH_BASE_ADRS怎么确定啊? 44b0x板,FLASH 是 AM29LV160DT 16Mbit/2Mbyte/1Mword 参照 http://www.lwsir.com/ligong/dianzi/200701/17467_3.html 对BSP作了修改。 执行tffsShow -> tffsShow amd29lvMTDIdentify Manufacturer unknown: 0x06 0: **** commu ...… 查看全部问答> |
|
我在做FFT计算的时候发觉用仿真器和直接烧片运行的时间明显不同。起初我以为是由于仿真的时候程序在片外读取是导致时间变长的主要原因。可是当我查询了资料,片外读取的速度并不慢,这并不是主要原因。我想导致仿真器运行程序时间加长的原因应该是 ...… 查看全部问答> |




