找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3620|回复: 1
收起左侧

cc2530 定时计数器1产生1毫秒PWM

[复制链接]
ID:293181 发表于 2018-3-17 15:41 | 显示全部楼层 |阅读模式
1 /****************************************************************************
2 * 文 件 名: main.c
3 * 描    述: cc2530 定时计数器1产生1毫秒PWM,20%的占空比,led的亮度比较暗
4 *           可调整pwm频率和占空比来控制Led灯的亮度
5 ****************************************************************************/
6 #include <ioCC2530.h>
7
8 typedef unsigned char uchar;
9 typedef unsigned int  uint;
10
11 #define LED1 P1_0       // P1.0口控制LED1
12
13
14 /****************************************************************************
15 * 名    称: InitLed()
16 * 功    能: 设置LED灯相应的IO口
17 * 入口参数: 无
18 * 出口参数: 无
19 ****************************************************************************/
20 void InitLed(void)
21 {
22     P1DIR |= 0x01;           //P1.0定义为输出
23     LED1 = 1;                //使LED1灯上电默认为熄灭     
24 }
25
26 /****************************************************************************
27 * 名    称: InitT1()
28 * 功    能: 定时器初始化,TICKSPD 是16 MHz系统不配置时默认是2分频,即16MHz
29 * 入口参数: 无
30 * 出口参数: 无
31 ****************************************************************************/
32 void InitT1()
33 {
34     CLKCONCMD &= ~0x40;      //设置系统时钟源为32MHZ晶振
35     while(CLKCONSTA & 0x40); //等待晶振稳定为32M
36     CLKCONCMD &= ~0x07;      //设置系统主时钟频率为32MHZ   
37     CLKCONCMD |= 0x38;       //时钟速度32 MHz 定时器标记输出设置[5:3]250kHz
38
39     PERCFG |= 0x40;          //定时器1 的IO位置   1:备用位置2
40     P2SEL &= ~0x10;          //定时器1优先
41     P2DIR |= 0xC0;           //第1优先级:定时器1通道2-3
42
43     P1DIR |= 0xff;           //端口1为输出   
44     P1SEL |= 0x01;           //timer1 通道2映射口P1_0
45     
46     T1CC2H = 0x00;           //20%占空比为200us
47     T1CC2L = 0x32;           //修改T1CC2L可调整led的亮度
48     T1CC0H = 0x00;           //1ms的周期时钟,频率为976.516HZ
49     T1CC0L = 0xff;
50     T1CCTL2 = 0x1c;          // 模式选择 通道2比较模式
51     T1CTL = 0x02;            //250KHz 1分频
52 }
53
54 /****************************************************************************
55 * 程序入口函数
56 ****************************************************************************/
57 void main(void)
58 {
59     InitLed();                 //调用初始化函数
60     InitT1();                //定时器初始化及pwm配置
61     while(1)
62     {
63     }
64 }
复制代码

回复

使用道具 举报

ID:293181 发表于 2018-3-17 15:43 | 显示全部楼层
很好的PWM
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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