久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Arduino使用定時中斷 ? DUSTLESS IMAGE

 一場浩劫 2013-05-05

Arduino使用定時中斷

開發(fā) 一個電機控制程序的時候,,因為要考慮電機運轉(zhuǎn)過程中來響應(yīng)用戶的按鍵操作,,必定會想到使用Arduino的中斷,。但Arduino的庫中本身沒有提供操作定時中斷的功能,,可以使用AVR本身的開發(fā)庫來進行,,看了許多關(guān)于AVR單片機的TCR2A以及TCB2B這種寄存器的關(guān)于Timer1,2,3的時鐘設(shè)定和文章,。的確,,對于設(shè)置寄存器這種操作,很難完全深入和理解的,,特別是對于一個以前并沒有很好研究和接觸過這些的我來說,。其實一直知道有這個mstimer2定時中斷庫,今天好好地研究了一下,。
先看我測試的代碼,,修改了mstimer2提供的sample程序:
#include <MsTimer2.h>
// Switch on LED on pin 13 each secondint count;
Void flash() {
Serial.print(“……..lamps…”);
count++;
Serial.println(count);}

void setup() {
count=0;
Serial.begin(115200);
pinMode(13, OUTPUT);
MsTimer2::set(500, flash); // 500ms period
MsTimer2::start();}

void loop() {
while(1){
Serial.println(“start…”);static boolean output = HIGH;
digitalWrite(13, output);
output = !output;
delay(1000);
}
}

程序運行效果如上:
1、 loop()中是主程序,,無限循環(huán),,顯示start…每10秒,讓13號led燈每一秒亮一次,,每一秒來一次,。
2,、setup(),程序開始部分,,設(shè)定好每500 毫秒執(zhí)行一次中斷,。中斷執(zhí)行程序為flash(),顯示字符串…lamps…。從上面也可以看出,,count整數(shù)變量從開始的初始設(shè)定0,,一直遞增到32767之后變成負數(shù)-32768 ,之后繼續(xù)遞增,。

綜上所述,,定時中斷還是非常容易操作的。相對于電機控制,,基本的程序設(shè)計思路也有了,,主程序得到電機總的運轉(zhuǎn)時長。然后開啟定時中斷,,這里涉及到一個響應(yīng)時間問題,,如果每10毫秒響應(yīng)一次中斷(中斷用來判定用戶是否按下某個鍵),那么電機如果總的需要運轉(zhuǎn)一個小時的話,,3600秒×(1000/10)=360000,,這個定時中斷總次數(shù),相對于整數(shù)形定義的count來說,,是會大大溢出的,。當然,是否真的需要每10毫秒來執(zhí)行一次中斷,,這個需要實際來測試吧,。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導購買等信息,,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多