LoginSignup
0
0

7セグの3分タイマーで遊ぶ。(STM32C011J4M7)

Last updated at Posted at 2024-04-27

x 過去ログを見よ!!

目的
7セグで遊ぶ

o_coq072.jpg




//AE_7SEG_BOARD_3MIN_TIMER_C011_1


//*          *****  *****
//*         *       *    *
//*         ******  *    *
//*         *       *    *
//*         *       *    *
//********   *****  *****


//インクルド
#include <Arduino.h>


//定義
#define DW   digitalWrite

#define swdio   PA12
#define swdclk  PA8
#define en      PB7

int seg[32] = {
  0x3f , //15 O  o combined use "0"
  0x06 , //9 I     combined use "1"
  0x5b , //26 Z combined use "2"
  0x4f , //27 [  --> "3"
  0x66 , //28 \  --> "4"
  0x6d , //19 S combined use "5"
  0x7c , //2 B      combined use "6"
  0x27 , //29 ]  --> "7"
  0x7f , //26 ^  --> "8"
  0x67 , //17 Q combined use "9"
  0x77 , //1 A  o
  0x7c , //2 B      combined use "6"
  0x39 , //3 C
  0x5e , //4 D
  0x79 , //5 E  o
  0x71   //6 F
};


void seg1(int v)
{
  for (int jj = 0; jj < 8; jj++) {
    if ( (v & 0x80) == 0 ) {
      DW(swdio, 0); //ビットが0
    } else {
      DW(swdio, 1); //ビットが1
    }//endif
    v = v << 1;
    DW(swdclk, 1);
    DW(swdclk, 0);
  }//for
  DW(en, 1);
  DW(en, 0);
}//seg1


void ns_num(int ch) {

  ch = seg[ch & 0x0f];
  seg1(ch);

}//ns_num



//初期化
void setup() {

  //7セグの初期化
  pinMode(swdclk, OUTPUT);
  pinMode(swdio, OUTPUT);
  pinMode(en, OUTPUT);
  DW(en, 0);
  DW(swdclk, 0);

} //setup


//メインループ
void loop() {

  //タイマーの設定値
  int stop1 = 3;

  //タイマーのループ
  for (int i = 0; i < stop1; i++) {

    //数字の表示
    ns_num(i);

    //1分待つ
    for (int j = 0; j < 60; j++) {
      delay(1000); //1秒待つ
    }

  } //for i

  //タイマーの設定値を表示
  ns_num(stop1);

  //無限ループ
  while (1) {}

} //loop



0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0