|
[TI首届低功耗设计大赛]+寄存器版本的端口操作+led闪烁
[复制链接]
本帖最后由 IC爬虫 于 2014-9-21 14:45 编辑
以前在开发MSP430的时候出来都没有使用过基于库的开发,都是直接操作寄存器完成的。在FR5969中官方提供了片内外外设的一下库函数,但为了深入了解这个芯片,这一篇还是先讲讲它的GPIO的寄存器操作实验,这样也可以和以前了解的别的430芯片做比较,但是后续也会更新相应的使用库函数的操作实验。
我的片内内外设的实验代码来源于TI官方提供的实验代码,有些我会做一定的修改,加上我理解的注释,希望这样能给初学者一定的帮助。
1. 这个试验,P1.0控制RF5969launchpad的LED2,在主函数中延时0.1s反转P1.0的电平,使LED闪烁。
2. 在程序中没有配置芯片的时钟,这就说明适用的是时钟配置是默认的,默认的情况下 MCLK = SMCLK =1MHZ。
3. 和我接触的430的别系列不同的是,在程序中多了PM5CTL0 &= ~LOCKLPM5;这一句,这一句的作用是:关闭上电端口默认输出高阻抗的功能,使能上电保持起始设置。在就说明在一般情况下FR5969的GPIO端口默认是输出高阻抗的功能。
4.__delay_cycles(100000);注意这句前面是两个下划线,该本征函数在 intrinsics.H 里:意思是延时 __cycles 个机器周期,因为我们默认情况下主时钟的周期为1MHZ所以这句延时的时间为100000*1/1000000=0.1s,经过是示波器的测试,这个延时的精度还可以,LED的闪烁频率为4.985HZ。
- /*******************************************************************************
- // MSP430FR59x Demo - Toggle P1.0 using software
- //
- // Description: Toggle P1.0 using software.
- // ACLK = n/a, MCLK = SMCLK = default DCO 默认的情况下 MCLK = SMCLK =1MHZ
- //
- // MSP430FR5969
- // ---------------
- // /|\| |
- // | | |
- // --|RST |
- // | |
- // | P1.0|-->LED
- //
- // IC爬虫
- //
- // Sep 2014
- // Built with IAR Embedded Workbench V6.1
- *******************************************************************************/
- #include <msp430.h>
- int main(void)
- {
- WDTCTL = WDTPW | WDTHOLD; // 停止看门狗
- // Configure GPIO
- P1OUT &= ~0x01; // 设置P1.0的上点起始状态:输出低电平
- P1DIR |= 0x01; // 设置P1.0为输出方向
- PM5CTL0 &= ~LOCKLPM5; // 关闭上电端口默认输出高阻抗的功能,使能上电保持起始设置
- while(1)
- {
- P1OUT ^= BIT0; // 反转 LED
- __delay_cycles(100000); // 该本征函数在 intrinsics.H 里:意思是延时 __cycles 个机器周期
- // 经测试LED的闪烁频率为4.985HZ,所以这个延时函数接近延时了0.1s
- }
- }
复制代码
|
|