标题:
zigbee cc2530 time1,time3 16khz PWM占空比变化输出 可调LED七彩灯
[打印本页]
作者:
千里小白龙
时间:
2017-8-25 09:27
标题:
zigbee cc2530 time1,time3 16khz PWM占空比变化输出 可调LED七彩灯
zigbee cc2530 time1,time3 16khz PWM占空比变化输出
可调LED七彩灯
单片机源程序如下:
/**************************************/
/* WeBee团队 */
/* Zigbee学习例程 */
/*例程名称:点亮LED */
/*建立时间:04/18 */
/*描述:点亮LED1
**************************************/
#include <ioCC2530.h>
typedef unsigned int uint;
typedef unsigned char uchar;
uchar h=0x00;
uchar js=0;
uchar a=1;
void DelayMs(uint msec)
{
uint i,j;
for(i=0;i<msec;i++)
for(j=0;j<535;j++);
}
void T1Init()
{
CLKCONCMD &= ~0x40; //设置系统时钟源为32MHZ的晶振
while(CLKCONSTA & 0x40); //等待晶振稳定为32MHZ
CLKCONCMD &= ~0x07; //设置系统主时钟频率为32MHZ
CLKCONCMD |= 0x18; //定时器标记输出为250KHZ
PERCFG |= 0x23; // Timer 3 Alternate location 2 ,Timer 1 Alternate location 1
P2SEL |= 0x20; //timer3 priority to usart
P0SEL |= 0x7C; // Set P0_2-P0_5 to peripheral
P0DIR |= 0x7C;
P1SEL |= 0xC0; // Peripheral function on P1_6 P1_7
P1DIR |= 0xC0; // P1_7 = output
P2SEL &= ~0x10; //相对于Timer4,定时器1优先
P2DIR |= 0xC0; //定时器通道2-3具有第一优先级
T3CC0 = 0x64; // PWM duty cycle, Channel 0 (P1_6)
T3CCTL0 = 0x2C;
T3CC1 = 0x64; // PWM duty cycle, Channel 1 (P1_7)
T3CCTL1 = 0x2C;
T3CTL |= 0x1c; //start timer3
//定时器模式设置
T1CTL = 0x02; //250KHZ不分频,模模式
//装定时器通道0初值
T1CC0H = 0x00;
T1CC0L = 0xFF; //PWM信号周期为1ms,频率为1KHZ
T1CC1L = 0x64; // PWM duty cycle, Channel 1 (P0_3)
T1CC1H = 0x00;
T1CCTL1 = 0x1c; // Channel 1 in compare mode, Set output on compare-up, clear on compare-down
//装定时器通道2比较值
T1CC2H = 0x00; //// PWM duty cycle, Channel 2 (P0_4)
//T1CC2L = 0xF7; //1%的正占空比
//T1CC2L = 0xE1; //10%的正占空比
//T1CC2L = 0xC8; //20%的正占空比
//T1CC2L = 0xAF; //30%的正占空比
//T1CC2L = 0x96; //40%的正占空比
T1CC2L = 0x7D; //50%的正占空比
//T1CC2L = 0x64; //60%的正占空比
//T1CC2L = 0x4B; //70%的正占空比
//T1CC2L = 0x32; //80%的正占空比
//T1CC2L = 0x19; //90%的正占空比
//T1CC2L = 0x0A; //99%的正占空比
//T1CC2L = 0x01; //设置通道2比较寄存器初值
T1CCTL2 = 0x1C; //比较相等置1,计数器回0则清零
T1CC3L = 0x4B; // PWM duty cycle, Channel 3 (P0_5)
T1CC3H = 0x00;
T1CCTL3 = 0x1c; // Channel 3 in compare mode, Set output on compare-up, clear on compare-down
T1CC4L = 0x32; // PWM duty cycle, Channel 4 (P0_6)
T1CC4H = 0x00;
T1CCTL4 = 0x1c; // Channel 4 in compare mode, Set output on compare-up, clear on compare-down
}
void main()
{
uint i;
uint rate[11]={0xF7,0xE1,0xC8,0xAF,0x96,0x7D,0x64,0x4B,0x32,0x19};
T1Init();
while(1)
{
// for(i=0;i<11;i++)
// {
// T1CC4H = 0x00;
// T1CC4L = rate[i];
// T1CC3H = 0x00;
// T1CC3L = rate[i];
// DelayMs(500);
// }
// for(i=0;i<240;i++)
// {
// T1CC4H = 0x00;
// T1CC4L = i;
// T1CC3H = 0x00;
// T1CC3L = rate[i];
// DelayMs(25);
// }
//
// for(i=240;i>0;i--)
// {
// T1CC4H = 0x00;
// T1CC4L = i;
// T1CC3H = 0x00;
// T1CC3L = rate[i];
// DelayMs(25);
// }
if ((T1STAT&0x04)>0)
{
// T1STAT=T1STAT&0xfb;
T1STAT=T1STAT&0x0b;
js++;
if(js>=1)
{
js=0;
if(a == 1)
{
h=h+1;
DelayMs(10);
}
else
{
h=h-1;
DelayMs(10);
}
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
time1和time3 16khz_pwm占空比变化.rar
(67 KB, 下载次数: 44)
2017-8-25 09:25 上传
点击文件名下载附件
cc2530
下载积分: 黑币 -5
作者:
大明明
时间:
2017-12-15 21:36
不错,好东西,我喜欢!
作者:
254940779
时间:
2019-8-27 14:22
兄弟,你这代码什么都没有啊。。。。。。
作者:
hxiazai
时间:
2019-9-25 22:49
不错,谢谢!
作者:
qlwz
时间:
2020-4-30 22:47
不错,谢谢!
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1