Type any character to start
Free RAM: 1109
Type is FAT32
Starting print test. Please wait.
Test of println(uint16_t)
Time 9.97 sec
File size 128.89 KB
Write 12.93 KB/sec
Maximum latency: 20828 usec, Minimum Latency: 176 usec, Avg Latency: 491 usec
Test of printField(uint16_t, char)
Time 3.15 sec
File size 128.89 KB
Write 40.92 KB/sec
Maximum latency: 18748 usec, Minimum Latency: 60 usec, Avg Latency: 150 usec
Test of println(double)
Time 15.06 sec
File size 149.00 KB
Write 9.89 KB/sec
Maximum latency: 19160 usec, Minimum Latency: 572 usec, Avg Latency: 746 usec
Done!
Type any character to start
I can't do anything more since everything I try works fine. I don't have a working xp system.
Edit: Here is one more idea. Change nilSysBegin() to nilSysBeginNoFill(). This will prevent filling stacks when NilRTOS starts so the final message will be wrong.
.. you may see for example (when p->value is a bitfield):
p->value = 1023; //this works
p->value = analogRead(0); //this does not work, only 8bits passed
p->value = temp; //this does not work, only 8bits passed
PS: now it seems to me all above issues I saw here were caused by the bitfield issue..
Do you still need the call to analogReference() after changing FifoItem_t?
I really would like to get to the bottom of why you need the analogReference() call. All it does is set the global analog_reference. My experience has been that things like this are a symptom of a nasty bug.
uint8_t analog_reference = DEFAULT;
void analogReference(uint8_t mode)
{
// can't actually set the register here because the default setting
// will connect AVCC and the AREF pin, which would cause a short if
// there's something connected to AREF.
analog_reference = mode;
}
I have more cases where bit fields work and a lot where they don't. Clearly they are to be avoided.