CC2530使用定时器3的问题

a527779670 2018-03-24 11:34:09
想用定时器输出大于1MHZ的波形,但是无法达到目的,使用以下程序,用是示波器测量周期大概是32us

void Init_TimerT3()
{
T3CTL |= 0x08 ; //开溢出中断
T3IE = 1;
T3CTL |= 0x00; //分频

T3CTL &= ~0x02;
T3CC0 = 0x01;

T3CTL |= 0x10; //启动
EA = 1; //开总中断
}

#pragma vector = T3_VECTOR
__interrupt void T3_ISR(void)
{
LEDBLUE = ~LEDBLUE; //P1_1
}

void Init_CLK()
{
CLKCONCMD&=~ (1<<6); //选择32M外部晶振作为系统时钟源
while(CLKCONSTA & (1<<6)); //等待晶振稳定
CLKCONCMD&=~0x7;
}
...全文
1121 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
a527779670 2018-03-30
  • 打赏
  • 举报
回复
自己解决,还是贴个可用的代码供有需要的人参考吧 几个定时器原来差不多 void Init_TimerT1() { P1SEL = 0x00; //P1_0口设置为普通I/O口 P1DIR = 0x03; //P1_0口设置为输出模式 P0SEL = 0x00;//P1_0口设置为普通I/O口 P0DIR = 0x80; //P0_7口设置为输出模式 CLKCONCMD &= ~0x40; //设置系统时钟源为32MHZ的晶振 while(CLKCONSTA & 0x40); //等待晶振稳定为32MHZ CLKCONCMD &= ~0x07; //设置系统主时钟频率为32MHZ CLKCONCMD |= 0x00; //定时器标记输出为32MHZ //定时器通道设置 //P1SEL |= 0x03; //定时器1通道2映射至P1_0,功能选择 P0SEL |= 0x80; PERCFG |= 0x40; //备用位置2,说明信息 P2SEL &= ~0x10; //相对于Timer4,定时器1优先 P2DIR |= 0xC0; //定时器通道2-3具有第一优先级 //P1DIR |= 0x03; P0DIR |= 0x80; //定时器模式设置 T1CTL = 0x02; //模模式 /* //根据表7-1,此处P1_0口必须装定时器1通道2进行比较 T1CCTL2 = 0x1C; //比较相等置1,计数器回0则清零 //装定时器通道0初值 T1CC0H = 0x00; T1CC0L = 0x0e; // //装定时器通道2比较值 T1CC2H = 0x00; //P1_0 通道2 T1CC2L = 0x07; //50%的正占空比 T1CCTL1 = 0x1C; T1CC0H = 0x00; T1CC0L = 0x0e; //装定时器通道2比较值 T1CC1H = 0x00; //P1_1 通道1 T1CC1L = 0x07; //50%的正占空比 */ T1CCTL3 = 0x1C; T1CC0H = 0x00; T1CC0L = 0x0e; //装定时器通道2比较值 T1CC3H = 0x00; //P0_7 通道3 T1CC3L = 0x07; //50%的正占空比 //T1CC2L = 0x0A; //99%的正占空比 //T1CC2L = 0x01; //设置通道2比较寄存器初值 }

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧