Hi Julian,
I am having problems with the print and println statements with the Mega1280 board. When I print either from within a taskloop or in a function called from loop, the board hangs. I have tried delays, etc and made the change in main.cxx, but I only get the first line printed which is "Pump Pressure = 12.5". As you can see from the commented code below, I have tried lots of variations without success. Any ideas?
P.S. how is the update coming?
Cheers, Jim
#include <DuinOS.h>
int readsToAverage = 4;
int pumpPressPin = 0;
int mainPumpPressure = 0;
int sensorled = 13;
int sensordata[8];
float val;
taskLoop(misc)
{
digitalWrite(sensorled,HIGH);
delay(500);
digitalWrite(sensorled,LOW);
delay(500);
}
taskLoop(updpc)
{
/*
Serial.print("Pump Pressure = ");
delay(100);
val = readPumpPressure();
Serial.println(val);
delay(100);
Serial.print(analogRead(0));
delay(100);
Serial.print(" ");
delay(100);
Serial.print(analogRead(1));
delay(100);
Serial.print(" ");
delay(100);
Serial.print(analogRead(2));
delay(100);
Serial.print(" ");
delay(100);
Serial.print(analogRead(3));
delay(100);
Serial.print(" ");
delay(100);
Serial.print(analogRead(4));
delay(100);
Serial.print(" ");
delay(100);
Serial.print(analogRead(5));
delay(100);
Serial.print(" ");
delay(100);
Serial.print(analogRead(6));
delay(100);
Serial.print(" ");
delay(100);
Serial.print(analogRead(7));
delay(100);
Serial.print(" ");
delay(100);
Serial.print(analogRead(

);
delay(100);
Serial.print(" ");
delay(100);
Serial.print(analogRead(9));
delay(100);
Serial.print(" ");
delay(100);
Serial.print(analogRead(10));
delay(100);
Serial.print(" ");
delay(100);
Serial.print(analogRead(11));
delay(100);
Serial.print(" ");
delay(100);
Serial.print(analogRead(12));
delay(100);
Serial.print(" ");
delay(100);
Serial.print(analogRead(13));
delay(100);
Serial.print(" ");
delay(100);
Serial.print(analogRead(14));
delay(100);
Serial.print(" ");
delay(100);
Serial.println(analogRead(15));
*/
delay(100);
}
void setup()
{
Serial.begin(9600);
pinMode(sensorled,OUTPUT);
createTaskLoop(misc,LOW_PRIORITY );
createTaskLoop(updpc,NORMAL_PRIORITY );
}
void loop()
{
//delay(10000);
readsensors();
delay(10000);
//nextTask();
}
/* Function to read main pump pressure at the pump */
float readPumpPressure()
{
int i;
int tempval = 0;
for ( i=0;i< readsToAverage;i++)
{
tempval = tempval + analogRead(pumpPressPin);
// delay(100);
}
return tempval/float(tempval) * 25.0 - 12.5 ;
}
void readsensors()
{
Serial.print("Pump Pressure = ");
delay(10);
val = readPumpPressure();
Serial.println(val);
// delay(100);
Serial.print(analogRead(0));
// delay(100);
Serial.print(" ");
// delay(100);
Serial.print(analogRead(1));
// delay(100);
Serial.print(" ");
// delay(100);
Serial.print(analogRead(2));
// delay(100);
Serial.print(" ");
// delay(100);
Serial.print(analogRead(3));
// delay(100);
Serial.print(" ");
// delay(100);
Serial.print(analogRead(4));
// delay(100);
Serial.print(" ");
// delay(100);
Serial.print(analogRead(5));
// delay(100);
Serial.print(" ");
// delay(100);
Serial.print(analogRead(6));
// delay(100);
Serial.print(" ");
// delay(100);
Serial.print(analogRead(7));
// delay(100);
Serial.print(" ");
// delay(100);
Serial.print(analogRead(

);
// delay(100);
Serial.print(" ");
// delay(100);
Serial.print(analogRead(9));
// delay(100);
Serial.print(" ");
// delay(100);
Serial.print(analogRead(10));
// delay(100);
Serial.print(" ");
// delay(100);
Serial.print(analogRead(11));
// delay(100);
Serial.print(" ");
// delay(100);
Serial.print(analogRead(12));
// delay(100);
Serial.print(" ");
// delay(100);
Serial.print(analogRead(13));
// delay(100);
Serial.print(" ");
// delay(100);
Serial.print(analogRead(14));
// delay(100);
Serial.print(" ");
// delay(100);
Serial.println(analogRead(15));
// delay(100);
}