вывод на sd-карту

uragan
Offline
Зарегистрирован: 23.02.2015
#include <SD.h>
volatile unsigned int count = 0;// сохраняем обороты
const int chipSelect = 10;

const int pinrazr=8;// при низком уровне прием данных
int flag=-1;
int flag2=-1;
int i=0;
int a[10];

void setup()
{
 Serial.begin(9600);
 digitalWrite(pinrazr, HIGH);
 attachInterrupt(0,fun, CHANGE);
  pinMode(10, OUTPUT);
   if (!SD.begin(chipSelect)) {
    Serial.println("Card failed, or not present");
    // don't do anything more:
    return;
  }
  Serial.println("card initialized.");
}
void loop()
{
  if(digitalRead(pinrazr)==LOW)flag=1; 
      if(digitalRead(pinrazr)==HIGH && flag>0){flag=-1; 
                                             a[i]=count;
                                              if(i==a[0]){
                                              Serial.println(count);
                                            count=0; i=0; flag2=1; goto loop2;} 
                                               else{
                                                 Serial.print(count);
                                                      Serial.print("  ");
                                                           count=0;}
                                                   i++;       }

loop2:
 if (flag2>0)
 {
  String dataString = "";
  for (int j=1; j<a[0]; j++) {
    int sensor = a[j];
    dataString += String(sensor);
    if (j < a[0]-1) {
      dataString += ";"; 
    }
  }
  File dataFile = SD.open("datalog1.csv", FILE_WRITE);
  // if the file is available, write to it:
  if (dataFile) {
    dataFile.println(dataString);
    dataFile.close();
 
    Serial.println(dataString);
  }
   
  // if the file isn't open, pop up an error:
  else {
    Serial.println("error opening datalog1.csv");
  } 
 }
 flag2=-1;
}

void fun()
{
  count++;// прибавляем единицу к полученому
}

Помогите разобраться. Массив передан с другой ардуины. Записываю на sd-карту. Проблема в том, что если в эту ардуину вставлен дата-кабель то все нормально. При любом другом варианте карта  не инициализируется. Земля общая. Плюс питания подавал и общий и раздельный - не помогает. Как будто в кабеле существует какая-то невидимая перемычка.

uragan
Offline
Зарегистрирован: 23.02.2015

Дополнение. Если аурдину запускать resetом, то пишет на карту нормально, без дата кабеля.