打印

基于430的充电器中时钟模块

[复制链接]
1707|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
TA|  楼主 | 2011-11-24 12:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位高手,初学430单片机,想做充电器,在书上看到程序,时钟模块程序咋看不得其解,望赐教。
void init_Clk (void)
{
    unsigned int Compare, Oldcapture = 0;
   
    // ACLK= LFXT1CLK/8
    BCSCTL1 |= DIVA_3;                        
    CCTL2 = CM_1 + CCIS_1 + CAP;
    // SMCLK
    TACTL = TASSEL_2 + MC_2 + TACLR;//子系统时钟,连续计数模式,定时器A清零
  
    while (1)
    {
        //等待捕获发生
        while (!(CCIFG & CCTL2)) ;
        //清除标志
        CCTL2 &= ~CCIFG;
        //得到当前的SMCLK
        Compare = CCR2;
        //SMCLK的差
        Compare = Compare - Oldcapture;
        //保存
        Oldcapture = CCR2;
   
        if (DELTA == Compare) break;
        else if (DELTA < Compare)
        {
            DCOCTL--;
            if (DCOCTL == 0xFF)
            {
                if (!(BCSCTL1 == (XT2OFF + DIVA_3)))
                {
                    BCSCTL1--;
                }
            }
        }
        else
        {
            DCOCTL++;
            if (DCOCTL == 0x00)
            {
                if (!(BCSCTL1 == (XT2OFF + DIVA_3 + 0x07)))
                {
                    BCSCTL1++;
                }
            }
        }
    }
    //停止CCR2  
    CCTL2 = 0;
    //停止定时器A
    TACTL = 0;
}

相关帖子

沙发
TI_MCU| | 2011-11-24 20:30 | 只看该作者
你想问什么?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

TA

12

主题

110

帖子

0

粉丝