#include <Arduino_FreeRTOS.h>
#define CP 4 //クロック出力
#define PL 5 //ON・OFF
#define Q7 6 //シリアル入力
#define PINVAL 8 //入力ピン数
void test1( void *pvParameters );
int hold[PINVAL];
int button[PINVAL];
void test1(void *pvParameters) {
(void) pvParameters;
TaskHandle_t xA;
int count = 0;
pulse(PL, 0);
while(count < PINVAL) {
button[count] = digitalRead(Q7);
pulse_if(button[count], count);
pulse(CP, 1);
count++;
}
Serial.println();
vTaskDelay(50);
}
void mati() {
delay(1000);
}
void setup() {
Serial.begin(9600);
pinMode(CP, OUTPUT);
pinMode(PL, OUTPUT);
pinMode(Q7, INPUT);
int i;
for(i = 0; i < PINVAL; i++) {
hold[i] = 0;
button[i] = 0;
}
TaskHandle_t xA;
xTaskCreate(test1, "test1", 256, NULL, 1, &xA);
vTaskStartScheduler();
}
void pulse(int pin,int HILO) { digitalWrite(pin, HILO); digitalWrite(pin, !HILO); }
void pulse_if(int data, int num) {
if(data == 1 && hold[num] == 0) { Serial.println(num); }
hold[num] = data;
}
void loop() {
}