我的低功耗MSP430学习生涯

**

从今天开始学习利用MSP430FR2433这款芯片实现测量不同阻抗的天线并实现匹配。

这是我第一次用MCU,用的不好,请多多指教,中途有错,请纠正。
(1)硬件部分功能实现
MCU
在这里插入图片描述
下面是天线匹配
在这里插入图片描述
最后一个模块是电阻桥
在这里插入图片描述

(2)代码部分
这里我刚刚开始学,下面是主程序,我将以看懂程序来记录我的学习过程。
void main(void)
{
// Initialize MCU
init_watchdog(); //初始化看门狗
init_clocks();
init_gpios();

// Initialize peripherals
init_rocky100();
init_rmeter();

// Release MCU gpios
release_gpios();

__bis_SR_register(GIE);

// Load configuration
// Configure sensor
init_systimer();

fSysTick = true;
while (1)
{

    if (fSysTick == true)
    {
        // Reset timer flag
        fSysTick = false;
        if (SysTickCounter++ >= r100DemoConf.nSysTicksPerSample)
        {
            SysTickCounter = 0;
            rocky100_update_data(meas_rmeter());
        }
    }

    if (fR100 == true)
    {
        // Reset timer flag
        fR100 = false;

        // Check rx_buffer

        // Reset SPI
        reset_rocky100_spi();

    }

    if (rocky100_is_idle())
    {
        mcu_lpm_enter(4);
    }else{
        mcu_lpm_enter(0);
    }
}

看门狗的初始化程序比较简单,WDTPW=0X5A00,这是默认值,WDTHOLD=0X0080,这样可以使低八位的最高位置1,这部分可以查手册,在看门狗寄存器有介绍。
void init_watchdog()
{
WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer,WDTHOLD=1b,WDTPW set fault。
}
现在要理解这个时钟初始化程序,
void init_clocks()
{
// Configure one FRAM waitstate as required by the device datasheet for MCLK
// operation beyond 8MHz before configuring the clock system.
FRCTL0 = FRCTLPW | NWAITS_1; //使能FRCTL寄存器,等待模式1

__bis_SR_register(SCG0);                           // disable FLL
这个代码让我知道了bis与bic的区别,,下面可以查CSC寄存器得到每一句话的意思。
CSCTL3 |= SELREF__REFOCLK;               // Set REFO as FLL reference source,P116
CSCTL0 = 0;                                   // clear DCO and MOD registers
CSCTL1 &= ~(DCORSEL_7);             // Clear DCO frequency select bits first,即使是取反了,运算时先取反,然后与
CSCTL1 |= DCORSEL_5;                               // Set DCO = 16MHz
CSCTL2 = FLLD_0 + 487;                             // DCOCLKDIV = 16MHz   ,000b = fDCOCLK ÷ 1,487=0X01E7=0000 0001 1110 0111
__delay_cycles(3);                                 //这里延时了多久,我在猜测这里是不是延时3s ,
//__bic_SR_register(SCG0);                           // enable FLL
// Disable waiting FLL lock, as it takes about 300ms in active mode.
// Just go to sleep and work with unlocked clock during first operations.
//while(CSCTL7 & (FLLUNLOCK0 | FLLUNLOCK1));         // FLL locked

CSCTL4 = SELMS__DCOCLKDIV; // set default REFO(~32768Hz) as ACLK source, ACLK = 32768Hz
                                           // default DCOCLKDIV as MCLK and SMCLK source

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值