• MSP430中常用的pragma命令


    pragma命令

    1. pragma命令作为C语言中的预编译命令
    2. 使用方法: #pragma [option] 内容
    3. #pragma message(“info”) 编译器编译到此处打印相应文本info信息
    4. #pragma error “error” 编译器编译到此处产生错误并打印错误error信息
    5. #pragma inline [=forced | never] 编译时将指令后面的函数内联到调用它的函数的函数体中
    • 当#pragma inline = forced,强制编译器对函数内联,内联不成功,发出警告消息
    • 当#pragma inline = never,编译器不对函数内联
    1. #pragma location = {address | register | NAME} 指令将之后的全局或静态变量指定到address、register或NAME上
    #include <msp430f169.h>
    
    int main(void)
    {
      WDTCTL = WDTPW + WDTHOLD + WDTNMI + WDTNMIES;     // WDT off NMI hi/lo
    
      P6DIR |= 0x01;                                    // Set P1.0 to output direction
      P6OUT |= 0x01;                                    // Clear P1.0 LED off
      IE1 |= NMIIE;                                     // Enable NMI
    
      LPM0;                                             // Enter LPM0
    }
    
    #pragma vector=NMI_VECTOR
    __interrupt void nmi_ (void){
      volatile unsigned int i;
    
      P6OUT |= 0x01;                                    // Set P1.0 LED on
      for (i = 50000; i > 0; i--);                      // Delay
      P6OUT ^= 0x01;                                    // Clear P1.0 LED off
      IFG1 &= ~NMIIFG;                                  // Reclear NMI flag in case bounce
    
      IE1 |= NMIIE;                                     // Enable NMI
    }
    

    代码说明,第14~24行是中断函数:

    • 第14行是将vector和NMI_VECTOR关联
    • 第15~24行是中断函数的具体实现
    • 第15行中的函数头部分:
    • __interrupt是中断函数的必须要的修饰
    • void是必须的,中断函数不能返回值
    • nmi_函数名称是可以根据需要修改的,一般是和中断源关联,加上interrupt service routine的简写(ISR),这里最好写作nmi_ISR
    • void是必须的,要求中断函数不传参数

    中断向量见图:

    vector

    人就像是被蒙着眼推磨的驴子,生活就像一条鞭子;当鞭子抽到你背上时,你就只能一直往前走,虽然连你也不知道要走到什么时候为止,便一直这么坚持着。
  • 相关阅读:
    IOS调试问题集
    sql常用语句及日期格式
    事件的简单面试题
    首博
    T-SQL查询进阶--详解公用表表达式(CTE)
    c++分布式计算类库
    MSSQL on Linux
    使用supervisor实现.NET Core程序后台运行
    CentOS下安装Nginx并安装服务实现自启动
    macOS安装MongoDB
  • 原文地址:https://www.cnblogs.com/guochaoxxl/p/14599036.html
Copyright © 2020-2023  润新知