DANG SPI!!!!!
i'm working on project has nrf2.4 radio , uses sd card (adafruit datalogger shield). know card good. know code works without sd perfectly. when add code sd card... code goes loop @ "initializing sd card... card initialized." writing on , over. writes blank files card no header ("millis,stamp,datetime,light,temp,vcc"), blank. how fix dang spi conflict!? (assuming thats is).
code (partial void loop, never reaches):
code (partial void loop, never reaches):
code: [select]
/*
base code...
*/
#include <serialglcdlib.h>
#include <avr/pgmspace.h>
#include <rf24network.h>
#include <rf24.h>
#include <spi.h>
#include "dht.h"
#include <wire.h>
#include "rtclib.h"
#include <sd.h>
#define dhtpin 2 // dht pin
#define dhttype dht22 // dht 22
dht dht(dhtpin, dhttype);
rtc_ds1307 rtc;
#define log_interval 1000
#define sync_interval 1000
uint32_t synctime = 0;
#define echo_to_serial 1 // echo data serial port
#define wait_to_start 0 // wait serial input in setup()
const int chipselect = 10;
// logging file
file logfile;
void error(char *str)
{
serial.print("error: ");
serial.println(str);
// red led indicates error
// digitalwrite(redledpin, high);
while(1);
}
// avoid spurious warnings
#undef progmem
#define progmem __attribute__(( section(".progmem.data") ))
#undef pstr
#define pstr(s) (__extension__({static prog_char __c[] progmem = (s); &__c[0];}))
rf24 radio(8,9); //radio pins 3(to8),4(to9)
rf24network network(radio);
// our node address
uint16_t this_node;
// message send unsigned int, containing sensor reading.
struct message_t
{
int temp_reading;
int humid_reading;
int voltage_reading;
int reset_reading;
message_t(void): temp_reading(0), humid_reading(0), voltage_reading(0), reset_reading(0) {}//add voltage reading!!!!
};
int lcdcount = 0;
int tempf = 0;
int humidrh = 0;
int voltage = 0;
int reset = 0;
char nodereset[10] = "rs";
char nodetemp1[10] = "nd";
char humid1[10] = "nd";
char voltage1[10] = "nd";
char nodetemp2[10] = "nd";
char humid2[10] = "nd";
char voltage2[10] = "nd";
char nodetemp3[10] = "nd";
char humid3[10] = "nd";
char voltage3[10] = "nd";
int nodetemp4 = 0;
int humid4 = 0;
char voltage4[10] = "nd";
char batstat1[14] = "odr bat low!";
char batstat2[14] = "idr bat low!";
char batstat3[14] = "atc bat low!";
char sysstat[13] = "sys stus:";
char sysstatc[14] = "all ok ";
//-------------------------------------------------------------------------------
void setup(void)
{
serial.begin(115200);
delay(5000);
// node we?
this_node = 0;
//
//dht sensor
//
dht.begin();
wire.begin();
rtc.begin();
// initialize sd card
serial.print("initializing sd card...");
// make sure default chip select pin set to
// output, if don't use it:
pinmode(10, output);
// see if card present , can initialized:
if (!sd.begin(chipselect)) {
error("card failed, or not present");
}
serial.println("card initialized.");
// create new file
char filename[] = "logger00.csv";
for (uint8_t = 0; < 100; i++) {
filename[6] = i/10 + '0';
filename[7] = i%10 + '0';
if (! sd.exists(filename)) {
// open new file if doesn't exist
logfile = sd.open(filename, file_write);
break; // leave loop!
}
}
if (! logfile) {
error("couldnt create file");
}
serial.print("logging to: ");
serial.println(filename);
logfile.println("millis,stamp,datetime,light,temp,vcc");
//
// bring rf network
//
spi.begin();
radio.begin();
network.begin(/*channel*/ 92, /*node address*/ this_node);
}
serialglcd lcd; // initialisation
//------------------------------------------------------------------------------------
void loop(void)
{
// lcd.reversecolor();
if ( lcdcount == 0 ){
lcd.clearlcd();
datetime = rtc.now();
the code posted incomplete.
board?
Arduino Forum > Using Arduino > Programming Questions > DANG SPI!!!!!
arduino
Comments
Post a Comment