回答編集履歴
2
ソース追記
answer
CHANGED
@@ -31,4 +31,36 @@
|
|
31
31
|
}
|
32
32
|
return 0;
|
33
33
|
}
|
34
|
+
```
|
35
|
+
「追記」これなら29行
|
36
|
+
```c
|
37
|
+
#include <stdint.h>
|
38
|
+
|
39
|
+
void func(uint8_t v)
|
40
|
+
{
|
41
|
+
P4.DR.BYTE = v;
|
42
|
+
PB.DR.BYTE = 0x00;
|
43
|
+
//待ち時間処理(500[m秒])
|
44
|
+
for(int i = 0; i < 500; i++) { //待ち時間処理(500*1[m秒])
|
45
|
+
for(int j = 0; j < 20000; j++) //待ち時間処理(1[m秒])
|
46
|
+
;
|
47
|
+
}
|
48
|
+
}
|
49
|
+
/*main関数*/
|
50
|
+
int main(void)
|
51
|
+
{
|
52
|
+
//LEDドットマトリクスの入出力設定
|
53
|
+
P4.DDR = 0xff;
|
54
|
+
PB.DDR = 0xff;
|
55
|
+
|
56
|
+
static uint8_t va[] = {0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01};
|
57
|
+
size_t pos = 0;
|
58
|
+
//点滅の永久ループ
|
59
|
+
while(1) {
|
60
|
+
//N行目のLEDがすべて点灯
|
61
|
+
func(va[pos]);
|
62
|
+
pos = (pos + 1) & 0x07;
|
63
|
+
}
|
64
|
+
return 0;
|
65
|
+
}
|
34
66
|
```
|
1
ソース修正
answer
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
31行
|
2
2
|
```c
|
3
3
|
#include <stdint.h>
|
4
4
|
|
@@ -7,8 +7,7 @@
|
|
7
7
|
P4.DR.BYTE = v;
|
8
8
|
PB.DR.BYTE = 0x00;
|
9
9
|
//待ち時間処理(500[m秒])
|
10
|
-
for(int i = 0; i < 500; i++)
|
10
|
+
for(int i = 0; i < 500; i++) { //待ち時間処理(500*1[m秒])
|
11
|
-
{
|
12
11
|
for(int j = 0; j < 20000; j++) //待ち時間処理(1[m秒])
|
13
12
|
;
|
14
13
|
}
|
@@ -20,26 +19,16 @@
|
|
20
19
|
P4.DDR = 0xff;
|
21
20
|
PB.DDR = 0xff;
|
22
21
|
|
22
|
+
uint8_t v = 0x80;
|
23
23
|
//点滅の永久ループ
|
24
24
|
while(1) {
|
25
|
-
//
|
25
|
+
//N行目のLEDがすべて点灯
|
26
|
-
func(
|
26
|
+
func(v);
|
27
|
-
|
27
|
+
v >>= 1;
|
28
|
+
if(v == 0x00) {
|
28
|
-
|
29
|
+
v = 0x80;
|
29
|
-
//三行目のLEDがすべて点灯
|
30
|
-
|
30
|
+
}
|
31
|
-
//四行目のLEDがすべて点灯
|
32
|
-
func(0x10);
|
33
|
-
//五行目のLEDがすべて点灯
|
34
|
-
func(0x08);
|
35
|
-
//六行目のLEDがすべて点灯
|
36
|
-
func(0x04);
|
37
|
-
//七行目のLEDがすべて点灯
|
38
|
-
func(0x02);
|
39
|
-
//八行目のLEDがすべて点灯
|
40
|
-
func(0x01);
|
41
31
|
}
|
42
32
|
return 0;
|
43
33
|
}
|
44
|
-
|
45
34
|
```
|