ジョイスティック切換えで色々な処理をやります。 C言語学習用です。

Dependencies:   C12832 MMA7660 mbed

Committer:
suzukimitsuru
Date:
Wed Apr 18 11:14:40 2018 +0000
Revision:
19:caab1538fa62
Parent:
14:15447d4751c3
?????????????; ????????????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
INTRA\mitsuru.suzuki 14:15447d4751c3 1 #include "./mbed.h"
INTRA\mitsuru.suzuki 13:2c1fe87a06cd 2 #include "commands.h"
INTRA\mitsuru.suzuki 13:2c1fe87a06cd 3
INTRA\mitsuru.suzuki 13:2c1fe87a06cd 4 DigitalOut liner1(LED1);
INTRA\mitsuru.suzuki 13:2c1fe87a06cd 5 DigitalOut liner2(LED2);
INTRA\mitsuru.suzuki 13:2c1fe87a06cd 6 DigitalOut liner3(LED3);
INTRA\mitsuru.suzuki 13:2c1fe87a06cd 7 DigitalOut liner4(LED4);
INTRA\mitsuru.suzuki 13:2c1fe87a06cd 8
INTRA\mitsuru.suzuki 13:2c1fe87a06cd 9 static DigitalOut* _ledList[] = {
INTRA\mitsuru.suzuki 13:2c1fe87a06cd 10 &liner1,
INTRA\mitsuru.suzuki 13:2c1fe87a06cd 11 &liner2,
INTRA\mitsuru.suzuki 13:2c1fe87a06cd 12 &liner3,
INTRA\mitsuru.suzuki 13:2c1fe87a06cd 13 &liner4,
INTRA\mitsuru.suzuki 13:2c1fe87a06cd 14 NULL,
INTRA\mitsuru.suzuki 13:2c1fe87a06cd 15 };
INTRA\mitsuru.suzuki 13:2c1fe87a06cd 16
INTRA\mitsuru.suzuki 13:2c1fe87a06cd 17 static int _ledIndex = 0;
INTRA\mitsuru.suzuki 13:2c1fe87a06cd 18
INTRA\mitsuru.suzuki 13:2c1fe87a06cd 19 static void _Initialize(void) {
INTRA\mitsuru.suzuki 13:2c1fe87a06cd 20 for(int index = 0; _ledList[index] != NULL; index++) {
INTRA\mitsuru.suzuki 13:2c1fe87a06cd 21 *_ledList[index] = 0;
INTRA\mitsuru.suzuki 13:2c1fe87a06cd 22 }
INTRA\mitsuru.suzuki 13:2c1fe87a06cd 23 }
INTRA\mitsuru.suzuki 13:2c1fe87a06cd 24
INTRA\mitsuru.suzuki 13:2c1fe87a06cd 25 static void _Finalize(void) {
INTRA\mitsuru.suzuki 13:2c1fe87a06cd 26 _Initialize();
INTRA\mitsuru.suzuki 13:2c1fe87a06cd 27 }
INTRA\mitsuru.suzuki 13:2c1fe87a06cd 28
INTRA\mitsuru.suzuki 13:2c1fe87a06cd 29 static void _ProcessInitialize(void) {
INTRA\mitsuru.suzuki 13:2c1fe87a06cd 30 _ledIndex = 0;
INTRA\mitsuru.suzuki 13:2c1fe87a06cd 31 }
INTRA\mitsuru.suzuki 13:2c1fe87a06cd 32
INTRA\mitsuru.suzuki 13:2c1fe87a06cd 33 static bool _ProcessIsContinue(void) {
INTRA\mitsuru.suzuki 13:2c1fe87a06cd 34 return _ledList[_ledIndex] != NULL;
INTRA\mitsuru.suzuki 13:2c1fe87a06cd 35 }
INTRA\mitsuru.suzuki 13:2c1fe87a06cd 36
INTRA\mitsuru.suzuki 13:2c1fe87a06cd 37 static void _ProcessRunning(void) {
INTRA\mitsuru.suzuki 13:2c1fe87a06cd 38 *_ledList[_ledIndex] = 1;
INTRA\mitsuru.suzuki 13:2c1fe87a06cd 39 wait(0.1);
INTRA\mitsuru.suzuki 13:2c1fe87a06cd 40 *_ledList[_ledIndex] = 0;
INTRA\mitsuru.suzuki 13:2c1fe87a06cd 41 _ledIndex++;
INTRA\mitsuru.suzuki 13:2c1fe87a06cd 42 }
INTRA\mitsuru.suzuki 13:2c1fe87a06cd 43
INTRA\mitsuru.suzuki 13:2c1fe87a06cd 44 COMMAND_DEFINE Command_liner = {(char*)"liner", _Initialize, _Finalize,
INTRA\mitsuru.suzuki 13:2c1fe87a06cd 45 _ProcessInitialize, _ProcessIsContinue, _ProcessRunning
INTRA\mitsuru.suzuki 13:2c1fe87a06cd 46 };