回答編集履歴

1

追伸

2020/01/29 12:46

投稿

rubato6809
rubato6809

スコア1380

test CHANGED
@@ -21,3 +21,23 @@
21
21
  正しい条件は、表示する「**数字が2桁とも0**」の場合です。
22
22
 
23
23
  その2つの数字が、ご自分で動かしているコードの、どこにあるか?そこ分かってますか?考えてみてください。
24
+
25
+
26
+
27
+ P.S.
28
+
29
+ led.attach_us(&blink_seg, 100); //割り込みタイマ0.1ms
30
+
31
+
32
+
33
+ ダイナミック点灯の、表示桁の切り替え時間が 0.1 ms とは短かすぎ。5 msec 周期まで伸ばして構いません。こういう時間を不必要に短くすると、システム全体が重くなるものです。余裕が無くなるのです。
34
+
35
+
36
+
37
+ それと、set_7seg()関数の中の処理の流れは正しくありません。前に私が回答した通り、次の手順にすべきです。
38
+
39
+ 1. 全桁を消灯する。つまり dig1〜dig4の全てに1を出力する
40
+
41
+ 2. 表示する桁の数字(フォント)を a 〜 g, dp に出力する
42
+
43
+ 3. 表示する桁だけ点灯。ここで dig1〜dig4 のどれかに0を出力する