I bought a 3.6 a long time ago but never used it. I have an SD project so tried it.
It is behaving very strangely. I looked on the forum and elsewhere
but can not find an answer. I tries doing the 15 second reset thing but it
did not work. Here is the history: I succeeded at getting the sample
SD test to work. Then I added a simple while loop to test how long it
takes to write a test to the sd card 1000000 times. After that I
could "load" a new program and got no errors but the new program was
not loaded, the old one was not replaced. Now for the strangeness. I
could load blink and it blinked the LED but if I tried to load
another program, the old program was still there, not blink but the
previous one. Any suggestions as to what to try before I toss this. I
have spent about 2 hours and can not get it to do anything other than
what is described above.
I tried this on two computers with the same results but I don't think
I ever loaded the code listed below on the other computer. My first
thought was that arduino was using the wrong hex file but the right
hex is in the location listed by verbose compile output so i don't
think it is a software issue.
I have new 3.5s on the way and hopefully that will solve the problem. Never had a similar problem with anything before 3.5 and I have used quite a few of them over the years.
It is behaving very strangely. I looked on the forum and elsewhere
but can not find an answer. I tries doing the 15 second reset thing but it
did not work. Here is the history: I succeeded at getting the sample
SD test to work. Then I added a simple while loop to test how long it
takes to write a test to the sd card 1000000 times. After that I
could "load" a new program and got no errors but the new program was
not loaded, the old one was not replaced. Now for the strangeness. I
could load blink and it blinked the LED but if I tried to load
another program, the old program was still there, not blink but the
previous one. Any suggestions as to what to try before I toss this. I
have spent about 2 hours and can not get it to do anything other than
what is described above.
I tried this on two computers with the same results but I don't think
I ever loaded the code listed below on the other computer. My first
thought was that arduino was using the wrong hex file but the right
hex is in the location listed by verbose compile output so i don't
think it is a software issue.
I have new 3.5s on the way and hopefully that will solve the problem. Never had a similar problem with anything before 3.5 and I have used quite a few of them over the years.
Code:
/*
SD card read/write
This example shows how to read and write data to and from an SD card
file
The circuit:
* SD card attached to SPI bus as follows:
** MOSI - pin 11, pin 7 on Teensy with audio board
** MISO - pin 12
** CLK - pin 13, pin 14 on Teensy with audio board
** CS - pin 4, pin 10 on Teensy with audio board
created Nov 2010
by David A. Mellis
modified 9 Apr 2012
by Tom Igoe
This example code is in the public domain.
*/
#include <SD.h>
#include <SPI.h>
File myFile;
// change this to match your SD shield or module;
// Arduino Ethernet shield: pin 4
// Adafruit SD shields and modules: pin 10
// Sparkfun SD shield: pin 8
// Teensy audio board: pin 10
//Teensy 3.5 & 3.6 on-board: BUILTIN_SDCARD
// Wiz820+SD board: pin 4
// Teensy 2.0: pin 0
// Teensy++ 2.0: pin 20
const int chipSelect = BUILTIN_SDCARD;
void setup()
{
//UNCOMMENT THESE TWO LINES FOR TEENSY AUDIO BOARD:
//SPI.setMOSI(7); // Audio shield has MOSI on pin 7
//SPI.setSCK(14); // Audio shield has SCK on pin 14
// Open serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}
Serial.print("Initializing SD card...");
if (!SD.begin(chipSelect)) {
Serial.println("initialization failed!");
return;
}
Serial.println("initialization done.");
// open the file. note that only one file can be open at a time,
// so you have to close this one before opening another.
myFile = SD.open("test.txt", FILE_WRITE);
// if the file opened okay, write to it:
if (myFile) {
unsigned long start_time = millis();;
unsigned long end_time;
unsigned long diff_time;
// for (unsigned long i=0; i < 1000000; i++){
// myFile.println("102168");
// }
end_time = millis();
diff_time = end_time - start_time;
Serial.print("diff time ");
myFile.println(diff_time);
// close the file:
myFile.close();
Serial.println("done.");
} else {
// if the file didn't open, print an error:
Serial.println("error opening test.txt");
}
// re-open the file for reading:
myFile = SD.open("test.txt");
if (myFile) {
Serial.println("test.txt:");
// read from the file until there's nothing else in it:
while (myFile.available()) {
Serial.write(myFile.read());
}
// close the file:
myFile.close();
} else {
// if the file didn't open, print an error:
Serial.println("error opening test.txt");
}
}
void loop()
{
// nothing happens after setup
}
Last edited by a moderator: