0°

(六)msp430基础:定时器和中断相关的基本功能

定时器函数

a) millis()

  • 此函数返回自Launchpad板开始运行当前程序以来经过的毫秒数。
  • 大约50天后,这个数字溢出(回滚到零)。
  • millis返回的值是unsigned long int。
  • Example 无符号长时间
  •          = millis()

 

b)micros()

  • 此函数返回自Launchpad板开始运行当前程序以来经过的微秒数。
  • 大约70分钟后,此数字溢出(回滚到零)。
  • micros返回的值是unsigned long int。
  • Example 无符号长时间
  •                  = micros()

 

c)delay(value)

  • value :暂停程序的毫秒数。
  • 此函数暂停程序指定的毫秒数。

 

d)delayMicroseconds(value)

  • value :暂停程序的微秒数。
  • 此函数暂停程序指定的微秒数。

 

e)sleep(value)

  • value :将微控制器发送到睡眠模式的毫秒数。
  • 此功能使微控制器进入睡眠模式达指定的毫秒数。它比使用delay()更好,因为它节省了功耗和时钟周期。

 

/* 定时器程序 */


unsigned long time_value;

/* Setup is run once at the start (Power-On or Reset) of sketch */
void setup()
{
  pinMode(2, OUTPUT); /* Pin 2 is defined as Output */
  Serial.begin(9600); /* opens serial port, sets data rate to 9600 bps */
}

/* Loop runs over and over after the startup function */
void loop()
{
  digitalWrite(2, HIGH); /* Make pin 2 HIGH */
  delay(2000); /* Wait for 2 seconds */
  digitalWrite(2, LOW); 
  delayMicroseconds(100); /* Wait for 100 microseconds */
  Serial.print("Time passed since power on in milliseconds:"); 
  time_value = millis(); /* Read value of number of microseconds since program started executing */
  Serial.println(time_value);
  delay(2000);
  Serial.print("Time passed since power on in microseconds:");
  time_value = micros(); /* Read value of number of milliseconds since program started executing */
  Serial.println(time_value);  
  sleep(1000); /* Put the controller in sleep for 1 seconds */
}

 

 中断函数

a)interrupts()

  • 该函数在被noInterrupts()禁用后重新启用中断。

 

b)noInterrupts()

  • 此功能禁用中断。
  • 可以使用interrupts()重新启用中断。

 

c)attachInterrupt(interrupt, ISR, mode)

  • interrupt 是要监视中断事件的引脚号。
  • ISR:发生中断事件时要调用的ISR。此函数必须不带参数,不返回任何内容。
  • mode :决定哪个事件应该导致中断。有4个选项可供选择。

i) LOW(MSP430和C2000不可用)

   引脚为低电平时产生中断。

ii)CHANGE

   每当引脚改变值时产生中断。

iii)RISING

   引脚从低电平变为高电平时产生中断。

iv)FALLING

   引脚从高电平变为低电平时产生的中断。

限制以下用户组阅读此隐藏内容

请先登录

您的用户组:
「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论