“计时器”的版本间的差异

来自Microduino Wikipedia
跳转至: 导航搜索
(创建页面,内容为“{| style="width: 800px;" |- | <p style="color: #4F4E4E;font-size:220%">'''Module_RTC库-计时器示例'''</p> <br> 在下面的示例中,将使用按键类传感…”)
 
 
(未显示同一用户的2个中间版本)
第4行: 第4行:
 
<p style="color: #4F4E4E;font-size:220%">'''Module_RTC库-计时器示例'''</p>
 
<p style="color: #4F4E4E;font-size:220%">'''Module_RTC库-计时器示例'''</p>
 
<br>
 
<br>
在下面的示例中,将使用按键类传感器控制RTC计时,并通过串口返回计时时间。
+
**在下面的示例中,将使用按键类传感器控制RTC计时,并通过串口返回计时时间。
 
<br>
 
<br>
 
<br>
 
<br>
第16行: 第16行:
 
<br>
 
<br>
 
<p style="color: #E87E05;font-size:155%">电路搭建</p>
 
<p style="color: #E87E05;font-size:155%">电路搭建</p>
将Battery、Core、MCookie_RTC、MCookie-Hub堆叠在一起,将触摸传感器插在D2/D3接口
+
**将Battery、Core、MCookie_RTC、MCookie-Hub堆叠在一起,将触摸传感器插在D2/D3接口
 
<br>
 
<br>
 
<p style="color: #E87E05;font-size:155%">代码</p>
 
<p style="color: #E87E05;font-size:155%">代码</p>
第90行: 第90行:
 
</source>
 
</source>
  
该程序使用D2接口作为外部中断,每次按下触摸传感器都会打印当前时间,作为秒表使用。
+
该程序使用D2接口作为外部中断,间隔一秒打印当前时间,按下触摸开关串口打印"blink!"作为计时器使用。
 
<br>
 
<br>
 
|}
 
|}
  
 
[[MCookie-RTC Reference | 返回RTC库语法手册]]
 
[[MCookie-RTC Reference | 返回RTC库语法手册]]

2018年5月16日 (三) 09:20的最新版本

Module_RTC库-计时器示例


    • 在下面的示例中,将使用按键类传感器控制RTC计时,并通过串口返回计时时间。



所需硬件


电路搭建

    • 将Battery、Core、MCookie_RTC、MCookie-Hub堆叠在一起,将触摸传感器插在D2/D3接口


代码

#include <Microduino_RTC.h>

RTC rtc;
/* 设置RTC启动时间
 * 年, 月, 星期, 日, 时, 分, 秒 */
DateTime dateTime = {2016, 6, 3, 1, 15, 30, 40};

//中断标志位
volatile uint8_t timerFlag=0;
uint32_t timer=millis();

//中断函数
void blink(){
  timerFlag=1;
}

void setup()
{
  pinMode(2, INPUT);           // 设置中断引脚
  Serial.begin(9600);
  //清除所有寄存器
  rtc.begin();
  rtc.clearAll();
  rtc.setDateTime(dateTime);
   
  //设置定时器频率 TIM_1_60HZ/TIM_1HZ/TIM_64HZ/TIM_4096HZ
  rtc.setTimerFreq(TIM_1HZ);
  //设置定时器计数值   定时器计时时间 = 计数值/定时器频率
  rtc.setTimerCnt(2);
  rtc.enableTimerInt();
  Serial.println("debug set timer");

  //设置外部中断,中断号0, 下降沿触发
  attachInterrupt(0, blink, FALLING);

}

void loop()
{
  if(millis()-timer>1000)
  {
    //打印当前时间
    rtc.getDateTime(&dateTime);    
    Serial.print(dateTime.year);
    Serial.print("/");
    Serial.print(dateTime.month);
    Serial.print("/");
    Serial.print(dateTime.day);
    Serial.print("     ");
    Serial.print(dateTime.hour);
    Serial.print(":");
    Serial.print(dateTime.minute);
    Serial.print(":");
    Serial.print(dateTime.second);
    Serial.print("\r\n");
    timer=millis();  
  }

  if (timerFlag==1){
    Serial.print("blink!\r\n");
	//清除中断
    rtc.clearTimerInt();   
    detachInterrupt(0);
    timerFlag=0;
    attachInterrupt(0, blink, FALLING);
  }
}

该程序使用D2接口作为外部中断,间隔一秒打印当前时间,按下触摸开关串口打印"blink!"作为计时器使用。

返回RTC库语法手册