mps430f5529学习 库函数 gpio time

修改选错型号

  • 右键工程–>properties

在这里插入图片描述
文件导出.
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • GPIO基本操作
  • 示例:按键翻转led灯
#include <driverlib.h>


/**
 * main.c
 */
void main(void)
{


    WDT_A_hold(WDT_A_BASE);
GPIO_setAsOutputPin(GPIO_PORT_P1, GPIO_PIN0);
GPIO_setAsOutputPin(GPIO_PORT_P4, GPIO_PIN7);
GPIO_setOutputLowOnPin(GPIO_PORT_P1, GPIO_PIN0);
GPIO_setOutputLowOnPin(GPIO_PORT_P4, GPIO_PIN7);
GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P2, GPIO_PIN1);
GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P1,GPIO_PIN1);

 while(1)
{
     if(GPIO_INPUT_PIN_LOW==GPIO_getInputPinValue(GPIO_PORT_P1, GPIO_PIN1)||
        GPIO_INPUT_PIN_LOW==GPIO_getInputPinValue(GPIO_PORT_P2,GPIO_PIN1))
        {
         __delay_cycles(5000);
         if(GPIO_INPUT_PIN_LOW==GPIO_getInputPinValue(GPIO_PORT_P1, GPIO_PIN1))
         {
         while(GPIO_INPUT_PIN_LOW==GPIO_getInputPinValue(GPIO_PORT_P1, GPIO_PIN1));
         GPIO_toggleOutputOnPin(GPIO_PORT_P1, GPIO_PIN0);


         }
         if(GPIO_INPUT_PIN_LOW==GPIO_getInputPinValue(GPIO_PORT_P2, GPIO_PIN1))
                  {
                  while(GPIO_INPUT_PIN_LOW==GPIO_getInputPinValue(GPIO_PORT_P2, GPIO_PIN1));
                  GPIO_toggleOutputOnPin(GPIO_PORT_P4, GPIO_PIN7);


                  }

        }

    __delay_cycles(5000);




}


}


时钟

时钟信号 :aclk,mclk,smclk
在这里插入图片描述
在这里插入图片描述

定时器模块


int main()
{
    WDT_A_hold( WDT_A_BASE );                                   // 关闭看门狗
 
    GPIO_setAsOutputPin( GPIO_PORT_P1, GPIO_PIN0 );             // 配置P1.0为输出模式
    GPIO_setOutputLowOnPin( GPIO_PORT_P1 , GPIO_PIN0 );         // 设置P1.0输出低电平
 
    Timer_A_initUpModeParam uptimer;                            // Timer_A初始化变量
    uptimer.clockSource = TIMER_A_CLOCKSOURCE_SMCLK;            // 配置时钟源为SMCLK
    uptimer.clockSourceDivider = TIMER_A_CLOCKSOURCE_DIVIDER_1; // 配置1分频
    uptimer.timerPeriod = 50000;                                // 配置CCR0
    uptimer.timerInterruptEnable_TAIE = TIMER_A_TAIE_INTERRUPT_DISABLE;
                                                                // 关闭Timer_A中断
    uptimer.captureCompareInterruptEnable_CCR0_CCIE = TIMER_A_CCIE_CCR0_INTERRUPT_ENABLE;
                                                                // 使能CCR0捕获比较中断
    uptimer.timerClear = TIMER_A_DO_CLEAR;                      // 使能清除
    uptimer.startTimer = true;                                  // 需要立即开始Timer_A
 
    Timer_A_initUpMode( TIMER_A0_BASE , &uptimer );             // 初始化Timer_A
 
    __bis_SR_register( LPM0_bits + GIE );                       // 进入LPM0,使能中断
    return 0;
}
 
#pragma vector = TIMER0_A0_VECTOR
__interrupt void TIMER0_A0_ISR(void)
{
    GPIO_toggleOutputOnPin( GPIO_PORT_P1, GPIO_PIN0 );          // 反转P1.0状态
}

产生pwm波

#include "driverlib.h"

#define TIMER_PERIOD 511
#define DUTY_CYCLE  350
//  占空比为350、510=68.45%
void main (void)
{
    //Stop WDT
    WDT_A_hold(WDT_A_BASE);

    //P2.0 as PWM output
    GPIO_setAsPeripheralModuleFunctionOutputPin(
        GPIO_PORT_P2,
        GPIO_PIN0
        );//设置PA2.0为pwm波输出引脚。

    //Generate PWM - Timer runs in Up mode
    Timer_A_outputPWMParam param = {0};
    param.clockSource = TIMER_A_CLOCKSOURCE_SMCLK;
    param.clockSourceDivider = TIMER_A_CLOCKSOURCE_DIVIDER_1;
    param.timerPeriod = TIMER_PERIOD;
    param.compareRegister = TIMER_A_CAPTURECOMPARE_REGISTER_1;
    param.compareOutputMode = TIMER_A_OUTPUTMODE_RESET_SET;
    param.dutyCycle = DUTY_CYCLE;
    Timer_A_outputPWM(TIMER_A1_BASE, &param);

    //Enter LPM0
    __bis_SR_register(LPM0_bits);//使能中断

    //For debugger
    __no_operation();
}

弃坑。。
无库函数教程,不想看官方的examples,麻利跑路。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值