#include <SPI.h>
#include <SD.h>
File myFile;
int count,Cstep,Tstep;
String sdarr="";
char indata;
void setup() {
pinMode(9,INPUT_PULLUP);
pinMode(8,INPUT_PULLUP);
Serial.begin(9600);
Serial.print("Initializing SD card...");
if (!SD.begin(4)) { // SD카드 모듈을 초기화합니다.
Serial.println("initialization failed!");
while (1);
}
Serial.println("initialization done.");
myFile = SD.open("test.txt", FILE_WRITE); // 샘플데이타 생성
if (myFile) {
Serial.print("Writing to test.txt...");
for(int i=0;i<10;i++){
myFile.print(" No:");
myFile.print(count);
myFile.println(" SD data Read Write test");
count++;
}
myFile.close();
Serial.println("done.");
Serial.println("Reading test....Ready!!");
} else {
Serial.println("error opening test.txt");
}
/*
count=0;
myFile = SD.open("test.txt");
if (myFile) {
Serial.println("Reading test:");
while (myFile.available()) {
char indata = myFile.read();
if(indata !='\n'){
sdarr=sdarr+indata;
}else{
sdarr=sdarr+'\n';
Serial.print(count);
Serial.print(sdarr);
sdarr="";
count++;
}
}
myFile.close();
} else {
Serial.println("error opening test.txt");
}
Serial.println(count);
*/
}
void loop() {
if(digitalRead(9)==LOW) { //데이타를 역으로조회
Tstep = Cstep - 1;
if(Tstep <= 0)Tstep=count;
}
if(digitalRead(8)==LOW) { //데이타를 정으로 조회
Tstep = Cstep + 1;
if(Tstep > count)Tstep=1;
}
if(Tstep != Cstep){
myFile = SD.open("test.txt");
Cstep=0;
while(Tstep!=Cstep){
while (indata !='\n') {
indata = myFile.read();
sdarr=sdarr+indata;
}
Cstep++;
if(Tstep==Cstep){
Serial.print(sdarr);
myFile.close();
delay(500);
}
indata=' ';
sdarr="";
}
}
}