MSP430学习笔记 2.内部函数

2017-06-04  本文已影响0人  浮生一城

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

内部函数

在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
      放在全局变量前面,功能是使程序启动时不为变量赋初值

总结

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

上一篇下一篇

猜你喜欢

热点阅读