回答編集履歴

2

ソース追記

2020/09/02 23:17

投稿

cateye
cateye

スコア6851

test CHANGED
@@ -65,3 +65,67 @@
65
65
  }
66
66
 
67
67
  ```
68
+
69
+ 「追記」これなら29行
70
+
71
+ ```c
72
+
73
+ #include <stdint.h>
74
+
75
+
76
+
77
+ void func(uint8_t v)
78
+
79
+ {
80
+
81
+ P4.DR.BYTE = v;
82
+
83
+ PB.DR.BYTE = 0x00;
84
+
85
+ //待ち時間処理(500[m秒])
86
+
87
+ for(int i = 0; i < 500; i++) { //待ち時間処理(500*1[m秒])
88
+
89
+ for(int j = 0; j < 20000; j++) //待ち時間処理(1[m秒])
90
+
91
+ ;
92
+
93
+ }
94
+
95
+ }
96
+
97
+ /*main関数*/
98
+
99
+ int main(void)
100
+
101
+ {
102
+
103
+ //LEDドットマトリクスの入出力設定
104
+
105
+ P4.DDR = 0xff;
106
+
107
+ PB.DDR = 0xff;
108
+
109
+
110
+
111
+ static uint8_t va[] = {0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01};
112
+
113
+ size_t pos = 0;
114
+
115
+ //点滅の永久ループ
116
+
117
+ while(1) {
118
+
119
+ //N行目のLEDがすべて点灯
120
+
121
+ func(va[pos]);
122
+
123
+ pos = (pos + 1) & 0x07;
124
+
125
+ }
126
+
127
+ return 0;
128
+
129
+ }
130
+
131
+ ```

1

ソース修正

2020/09/02 23:16

投稿

cateye
cateye

スコア6851

test CHANGED
@@ -1,4 +1,4 @@
1
- 41行
1
+ 31行
2
2
 
3
3
  ```c
4
4
 
@@ -16,9 +16,7 @@
16
16
 
17
17
  //待ち時間処理(500[m秒])
18
18
 
19
- for(int i = 0; i < 500; i++) //待ち時間処理(500*1[m秒])
19
+ for(int i = 0; i < 500; i++) { //待ち時間処理(500*1[m秒])
20
-
21
- {
22
20
 
23
21
  for(int j = 0; j < 20000; j++) //待ち時間処理(1[m秒])
24
22
 
@@ -42,41 +40,23 @@
42
40
 
43
41
 
44
42
 
43
+ uint8_t v = 0x80;
44
+
45
45
  //点滅の永久ループ
46
46
 
47
47
  while(1) {
48
48
 
49
- //行目のLEDがすべて点灯
49
+ //N行目のLEDがすべて点灯
50
50
 
51
- func(0x80);
51
+ func(v);
52
52
 
53
- //二行目のLEDがすべて点灯
53
+ v >>= 1;
54
54
 
55
- func(0x40);
55
+ if(v == 0x00) {
56
56
 
57
- //三行目のLEDがすべて点灯
57
+ v = 0x80;
58
58
 
59
- func(0x20);
59
+ }
60
-
61
- //四行目のLEDがすべて点灯
62
-
63
- func(0x10);
64
-
65
- //五行目のLEDがすべて点灯
66
-
67
- func(0x08);
68
-
69
- //六行目のLEDがすべて点灯
70
-
71
- func(0x04);
72
-
73
- //七行目のLEDがすべて点灯
74
-
75
- func(0x02);
76
-
77
- //八行目のLEDがすべて点灯
78
-
79
- func(0x01);
80
60
 
81
61
  }
82
62
 
@@ -84,6 +64,4 @@
84
64
 
85
65
  }
86
66
 
87
-
88
-
89
67
  ```