はじめに
タイマーの間隔より作業することが長い時の動作が気になり試してみました。
さらに割込みが入ると、どんな動きになるのかと思い実験しました。
Lチカ
#include <time.h>
#include <stdio.h>
unsigned int timer1(void){
digitalWrite(PIN_D22, HIGH);
delay(500); //ms
digitalWrite(PIN_D22, LOW);
delay(500);
return 500;
}
unsigned int photosensor(void){
digitalWrite(PIN_D23, HIGH);
delay(1000);
digitalWrite(PIN_D23, LOW);
return 1;
}
void setup() {
/* ポートの設定 */
pinMode(PIN_D02, OUTPUT);
pinMode(PIN_D22, OUTPUT);
pinMode(PIN_D23, OUTPUT);
pinMode(PIN_D21, INPUT_PULLDOWN);
pinMode(PIN_D16, INPUT_PULLDOWN);
pinMode(PIN_D17, INPUT_PULLDOWN);
/* シリアル通信設定 */
Serial.begin(115200);
sleep(3);
attachInterrupt(PIN_D21, photosensor, RISING);
attachTimerInterrupt(timer1,500);//us
/* Set serial baudrate. */
Serial.begin(115200);
}
long long l=0;
void loop()
{
char Buffer[256];
sprintf(Buffer, "%ld\r\n\0",
l
);
Serial.print(Buffer);
l++;
}
結果
こんなイメージのような感じがしました。私がこんな感じに仕事させられたら、もーとなりそうです。あっちたてこっちたてとしているうちに真っ白になりそうです。なんかうまく処理するのだな。
今後の課題
- 優先順位とかあるのだろうか。
- マルチコアの機能を使うとタイマーの内容をずらさずに点灯さすことができるのかな?
- R5の抵抗値と入力電圧の検討。紙の色などで電圧が変わるから。
投稿者の人気記事
-
TentoBug
さんが
2025/01/26
に
編集
をしました。
(メッセージ: 初版)
-
TentoBug
さんが
2025/01/27
に
編集
をしました。
(メッセージ: 図面修正)
ログインしてコメントを投稿する