2019年1月18日 星期五

ROSA 系統開發 61 ─ System Timer

http://4rdp.blogspot.com/2019/01/rosa-61-system-timer.html?m=0

寫任何嵌入式系統,系統時間控制非常重要,但是 Arduino 的使用者有很大比例是非專業程式設計師,基於這樣的情形,促使我想開源設計 Robot Operating System for Arduino,邁入第四個年頭,為了更普及 ROSA,所以將它函式庫化,請看 ROSA 系統開發 60 基本觀念。

以下是主程式,你只要改寫它就可以立即使用

// (C) 2019, Bridan Wang, CC BY-NC-SA 3.0 TW
// This is a demo program applied Robot Operating System for Arduino
// http://4rdp.blogspot.tw/search/label/ROSA%20(Arduino)

//軟件許可協議
//
//研發養成所 Bridan Wang 提供此軟體供學校教育或個人單獨使用
//對外分享展示本軟體時,請說明來源來自研發養成所
//你可以架構在本軟體基礎上,設計新功能或修改
//本軟體屬於 Bridan 和或其它原始碼供應商,並受適用的法律版權保護
//此軟體按“原樣”提供,可能含有錯誤,不作任何明示,暗示或法律的保證
//本軟體僅限 Arduino 部分微控制器產品,適用於特定用途
// Bridan 在任何情況、環境以及特殊使用不負任何原因損害賠償責任
//
//這是 ROSA 韌體版本的一部分。

/***********************************************************
// Include
************************************************************/
#include "ROSA_DEFINE.h"

/***********************************************************
// SYSTEM TIMER
************************************************************/
#define ledPin 13  // 第13隻接腳控制 LED 明滅。
byte state = 0;

void TIMER_2ms()
{
}

void TIMER_10ms()
{
}

void TIMER_100ms()
{
  state = 1 - state;
  if (state==0)
    digitalWrite(ledPin, LOW); // 設定PIN13腳位為低電位= 0V ,LED 熄滅
  else
    digitalWrite(ledPin, HIGH); // 設定PIN13腳位為高電位= 5V ,LED 發亮
}

void TIMER_1sec()
{
}

#include ".\ROSA\ROSA_TIMER.cpp"

void setup() {
  ROSA_TIMER_SETUP();
  pinMode(ledPin, OUTPUT);
}

void loop() 
{
  ROSA_TIMER_RUNNING();
}


執行這個程式只要有一片 UNO 即可,紅字部分的程式碼,放在 100 ms 副程式中,可使 LED 亮 0.1 秒,滅 0.1 秒,如果放在 1 sec 副程式,LED 將亮 1 秒,滅 1 秒。

對 ROSA 有興趣的朋友,歡迎登記下載程式,https://docs.google.com/forms/d/e/1FAIpQLScWIFmrXujwrjNEqyp7-_ekPZhTrDLkoDgucIgdxWCFf5oTaw/viewform  (ROSA_v2019.1.2.zip)


沒有留言:

張貼留言