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: [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

Popular posts from this blog

Thread: PKI Client 5.00 install (for eToken Pro)

ATmega2560-Arduino Pin Mapping

Crossfader Arduino Tutorial