Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

Малко помощ
http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=16617
Страница 1 от 2

Автор:  timt [ Пон Юни 24, 2019 1:08 pm ]
Заглавие:  Малко помощ

Как да го направя да не се измества ?

7 000000000000 13:03:04 -127.0
8 000000000000 13:03:14 -127.0
9 000000000000 13:03:24 -127.0
10 000000000000 13:03:35 -127.0
11 000000000000 13:03:45 -127.0
12 000000000000 13:03:55 -127.0

Автор:  syscop [ Пон Юни 24, 2019 1:14 pm ]
Заглавие:  Re: Малко помощ

Тук http://www.cplusplus.com/reference/cstdio/printf/ пише.

Автор:  Н'бабане Гт'муан'га [ Пон Юни 24, 2019 1:32 pm ]
Заглавие:  Re: Малко помощ

timt написа:
Как да го направя да не се измества ?

7 000000000000 13:03:04 -127.0
8 000000000000 13:03:14 -127.0
9 000000000000 13:03:24 -127.0
10 000000000000 13:03:35 -127.0
11 000000000000 13:03:45 -127.0
12 000000000000 13:03:55 -127.0


Пусни сорса само на реда с тоя printf

Автор:  bongo_x2 [ Пон Юни 24, 2019 1:58 pm ]
Заглавие:  Re: Малко помощ

Поне на моя екран изглежда доста по-разместено отколкото би трябвало, с програмиране не съм се занимавал от десетилетия, но ще ръсна 20ст.: зависи и от фонта, под Линукс откровено го кръстили Monospace, под Виндолс Courier беше единият. Въобще: гледай за Mono.

Автор:  timt [ Пон Юни 24, 2019 2:10 pm ]
Заглавие:  Re: Малко помощ

Това се записва в SD Card

int Number= 1;

Number++;

FileMessage = String(Number) + " " + String(SensorID)+ " "+String(TimeBuff)+" "+String(temp,1) + "\r\n";

проблема е когато се увеличава поредно число (Number) се измества целият ред и става на зигзаг

Автор:  Nikola Kirov [ Пон Юни 24, 2019 2:26 pm ]
Заглавие:  Re: Малко помощ

Ех тия ардуино писачи. После ще кажеш че си програмист.
Като ще е така дървено ето :)

FileMessage = String(Number) + (Number > 9) ? " " : " " + String(SensorID)+ " "+String(TimeBuff)+" "+String(temp,1) + "\r\n";

Автор:  Н'бабане Гт'муан'га [ Пон Юни 24, 2019 2:29 pm ]
Заглавие:  Re: Малко помощ

timt написа:
Това се записва в SD Card

int Number= 1;

Number++;

FileMessage = String(Number) + " " + String(SensorID)+ " "+String(TimeBuff)+" "+String(temp,1) + "\r\n";

проблема е когато се увеличава поредно число (Number) се измества целият ред и става на зигзаг


Това С ли е? Функцията String() допускам че само ти конвертира от число в стринг?
Може да я премахнеш напълно и да го направис с sprintf() както си му е редът:

sprintf(FileMessage, "%4lu %010llx %10s %2i\r\n", Number, SensorID, TimeBuff, temp);

Сега естествено аз си ги смуча от пръстите тия параметри за ширината понеже не ти знам кое какъв тип е, но предполагам схващаш принципа...

Автор:  Nikola Kirov [ Пон Юни 24, 2019 3:15 pm ]
Заглавие:  Re: Малко помощ

FileMessage е клас,не може така

Автор:  Н'бабане Гт'муан'га [ Пон Юни 24, 2019 3:20 pm ]
Заглавие:  Re: Малко помощ

Nikola Kirov написа:
FileMessage е клас,не може така


А, ок. Както казах не му знам постановката, но принципът може да се прехвърли предполагам. Не им знам ардуинските класове и т.н. какво въдят

Автор:  timt [ Пон Юни 24, 2019 3:48 pm ]
Заглавие:  Re: Малко помощ

не е клас а така съм именувал стринга

String dataMessage,FileMessage;

Автор:  slav4o.com [ Пон Юни 24, 2019 3:48 pm ]
Заглавие:  Re: Малко помощ

Еми една проверка ако е под 10 добавя 2 интервала ако е 10-99 един и ако е над 99 number, не добавя...

Автор:  Nikola Kirov [ Пон Юни 24, 2019 4:17 pm ]
Заглавие:  Re: Малко помощ

timt хич те няма моето момче - https://www.arduino.cc/reference/en/lan ... ingobject/

Автор:  timt [ Пон Юни 24, 2019 4:24 pm ]
Заглавие:  Re: Малко помощ

Киров и твоят код не бачка

Автор:  Nikola Kirov [ Пон Юни 24, 2019 4:31 pm ]
Заглавие:  Re: Малко помощ

+ (Number > 9) ? " " : " "

ако числото е по голямо от 9 добавя 2 интервала в противен случай 3.
Ако щрифта с който го показваш е с константна широчина няма как да не работи в интервала 0...99.

Всъщност трябва да е
+ ( (Number) > 9 ? " " : " ")
Приоритета на операциите не съм предвидил.

Иначе свиквай да използваш sprintf е ембедед

Автор:  timt [ Пон Юни 24, 2019 4:45 pm ]
Заглавие:  Re: Малко помощ

7 000000000000 16:43:38 -127.0
8 000000000000 16:43:49 -127.0
9 000000000000 16:43:59 -127.0
10 000000000000 16:44:09 -127.0
11 000000000000 16:44:21 -127.0
12 000000000000 16:44:32 -127.0

пак не се получава

Страница 1 от 2 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/