美文网首页
MSP430学习笔记 2.内部函数

MSP430学习笔记 2.内部函数

作者: 浮生一城 | 来源:发表于2017-06-04 12:24 被阅读0次

    按照老规矩,罗列一下工具和平台:

    • MSP-EXP430F5229 开发板,自带ez-FET仿真器
    • TI Composer Code Studio v7.1.0 / IAR for MSP430 v7.1.0
    • Windows 10 Pro 1703 64bits
    • etc...

    内部函数

    在TI ToolChain和 GNU for MSP430这两种编译工具链中,都提供了相同的内部函数,用于对CPU进行特殊操作,这些函数定义在intrinsics.h头文件中,但在使用这些函数时不需要首先声明该头文件。

    详细说明

    MSP430系列单片机的内部函数分为以下两种:

    1. 内联函数
      • __bic_SR_register()
        将CPU中SR寄存器中的某些位清零,括号内参数为寄存器位
      • __bis_SR_register()
        将CPU中SR寄存器内的某些位置1,参数同上
      • __bic_SR_register_on_exit()
        用于一个中断函数或不可中断函数(标志为__monitor)返回时,将CPU中SR寄存器的某些位清零
      • __bis_SR_register_on_exit()
        用于一个中断函数或者不可中断函数(标志为__monitor)返回时,将CPU内SR寄存器中的某些位置1
      • __disable_interrupt()_DINT()
        关闭总中断,无参数
      • __enable_interrupt()_EINT()
        开启总中断,无参数
      • __even_in_range( , )
        常被用在多源中断的查询中,如 switch(__even_in_range(TAIV,10),意思是:只有在TAIV的值是在0--1内的偶数时才会执行switch函数内的语句。其作用是提高switch语句的效率
      • __no_operation()_NOP()
        空操作,无参数
      • __get_SP_register(void)
        返回堆栈指针寄存器SP的值
      • __get_SR_register_on_exit(void)
        用于一个中断函数或者不可中断函数(标志为__monitor)返回时,返回状态寄存器SR的值
      • __bcd_add_short(unsigned short,unsigned short)
        两个16为BCD格式的数字相加,返回和
      • __bcd_add_long(unsigned long,unsigned long)
        两个32位BCD格式的数字相加,返回和
      • __delay_cycles(x)
        系统自带的精确延时。x必须是常量或常量表达式,如果是变量则编译报错!延时的时间为x乘以MCLK的时钟周期
    2. 特殊标志
      • __interrupt
        放在函数前面,标志中断函数
      • __monitor
        放在函数前面,功能是声明当这一函数执行的时候自动关闭中断。应该尽量缩短这样的函数,否则,中断事件无法得到及时的响应
      • __no_init
        放在全局变量前面,功能是使程序启动时不为变量赋初值

    总结

    这次的笔记到此为止啦,关于它们的具体用法,后续会有详细代码发布的,希望来看这篇文章的小伙伴,点个赞在走哦!学习愉快!

    相关文章

      网友评论

          本文标题:MSP430学习笔记 2.内部函数

          本文链接:https://www.haomeiwen.com/subject/ojuvfxtx.html