dccharacter писал(а):
Все, пора
Дим, просыпайся
Не, мне до выходных терпеть надо, лучче лузером с датчиком быть, чем лузером на работе

Тему понял, все допишу в исходник.
А у меня листинг сделан с шапкой, и удобнее конвертировать в электр. таблицах, и в терминалку меньше данных уходит, а щто важно для тиньки, на 115200 не успевает весь поток уйти. Еще для тиньки запилил листинг с десятичной коррекцией, т.к. SendOnlySoftwareSerial очень ограничен. Но получилось хорошо и для больших плат, т.к. не форматирует данные (не удаляет незнач. нули). Т.е. 0 = 000, 255 = 255. Столбики ровные - харашо

Т.е. дикими извратами можно и на библах дуины щто сделать, но сама функция print очень тяжелая. Такшта, если надо - закидывай в "Serial.println(String(Frame...))"
Код:
#if flg_serial_debug ==3
//-----------------------------------------------------------------------
//листинг для екселевских таблиц
byte Frame[(ARRAY_WIDTH * ARRAY_HEIGHT)+1];
//заголовок
#if !defined(__AVR_ATtiny85__)
Serial.println ("squal:\tMax_Pix:\tMin_Pix:\tPix_Sum:\tShutter:");
#else
MyDbgSerial.println (F ("Squal:\tMax:\tMin:\tSum:\tShutter:"));
#endif
while(1)
{
Frame[0] = ADNS_read(squal);
Frame[1] = ADNS_read(Maximum_Pixel);
Frame[2] = ADNS_read(Minimum_Pixel);
Frame[3] = ADNS_read(Pixel_Sum);
Frame[4] = ADNS_read(Shutter_Upper);
Frame[5] = ADNS_read(Shutter_Lower);
#if !defined(__AVR_ATtiny85__)
Serial.println( String(Frame[0]) + \
"\t"+ String(Frame[1]) + \
"\t"+ String(Frame[2]) + \
"\t"+ String(Frame[3]) + \
"\t"+ String(Frame[4]) + \
String(Frame[5]));
delay(20);
#else
ByteToString(Frame[0]); MyDbgSerial.write(Str[2]); MyDbgSerial.write(Str[1]); MyDbgSerial.write(Str[0]); MyDbgSerial.write(0x09);
ByteToString(Frame[1]); MyDbgSerial.write(Str[2]); MyDbgSerial.write(Str[1]); MyDbgSerial.write(Str[0]); MyDbgSerial.write(0x09);
ByteToString(Frame[2]); MyDbgSerial.write(Str[2]); MyDbgSerial.write(Str[1]); MyDbgSerial.write(Str[0]); MyDbgSerial.write(0x09);
ByteToString(Frame[3]); MyDbgSerial.write(Str[2]); MyDbgSerial.write(Str[1]); MyDbgSerial.write(Str[0]); MyDbgSerial.write(0x09);
Uint16ToString(Frame[4] *256 + Frame[5]); MyDbgSerial.write(Str[4]); MyDbgSerial.write(Str[3]); MyDbgSerial.write(Str[2]); MyDbgSerial.write(Str[1]); MyDbgSerial.write(Str[0]); MyDbgSerial.write(0x0a);// MyDbgSerial.write(0x0d);
delay(60); //задержка больше из-за низкой скорости Digispark
#endif
}
//-----------------------------------------------------------------------
Код:
void ByteToString(uint8_t a)
{
Str[0] = '0';
Str[1] = '0';
Str[2] = '0';
if(!a) return;
Str[0] = a % 10 + '0'; a /= 10;
if(!a) return;
Str[1] = a % 10 + '0'; a /= 10;
if(!a) return;
Str[2] = a % 10 + '0';
}
void Uint16ToString(uint16_t a)
{
Str[0] = '0';
Str[1] = '0';
Str[2] = '0';
Str[3] = '0';
Str[4] = '0';
if(!a) return;
Str[0] = a % 10 + '0'; a /= 10;
if(!a) return;
Str[1] = a % 10 + '0'; a /= 10;
if(!a) return;
Str[2] = a % 10 + '0'; a /= 10;
if(!a) return;
Str[3] = a % 10 + '0'; a /= 10;
if(!a) return;
Str[4] = a % 10 + '0';
}
Можно было десятичную коррекцию сделать по-взрослому с асм вставками, но и так хорошо. Минус тцать кб., а по-взрослому сделаем в коммерческой версии
Добавлено спустя 1 минуту 21 секунду:Вот так лог получился:
Код:
Squal: Max: Min: Sum: Shutter:
006 027 006 031 03392
006 027 007 031 03392
007 029 010 036 03392
003 028 007 032 03392
005 027 007 032 03392
005 028 007 032 03392
006 027 007 032 03392
006 028 007 032 03392
006 027 007 032 03392
005 028 007 032 03392
007 028 007 032 03392
006 028 007 032 03392
006 028 007 032 03392
006 028 007 032 03392
008 028 007 032 03392
007 028 007 032 03392
006 028 006 032 03392
005 028 006 032 03392
006 028 007 031 03392
005 030 010 036 03392
005 026 006 031 03392
005 028 007 032 03392
005 028 007 032 03392
008 028 007 032 03392
Электронные таблицы автоматом подхватывают, даже названия есть
Добавлено спустя 35 минут 20 секунд:Kxe, шутки ради и на нане сделал без "String()":
Код:
Sketch uses 4 468 bytes (14%) of program storage space. Maximum is 30 720 bytes.
Global variables use 254 bytes (12%) of dynamic memory, leaving 1 794 bytes for local variables. Maximum is 2 048 bytes.
без Serial.println(String(Frame...
Sketch uses 2 866 bytes (9%) of program storage space. Maximum is 30 720 bytes.
Global variables use 247 bytes (12%) of dynamic memory, leaving 1 801 bytes for local variables. Maximum is 2 048 bytes.
Йо-йо-йо, быдлокод
