Madf писал(а):
Закомментировал "тест", выиграл в версии на 868 МГц - 5138 байт.
В часах всего 32 кб. памяти, это размер текстового файла
Размер прошивки смотри в "окно проекта/ez430_chronos_868MHz.map"
В конце файла:
Код:
27 080 bytes of CODE memory
844 bytes of DATA memory (+ 157 absolute )
1 592 bytes of CONST memory
Errors: none
Warnings: none
Madf писал(а):
Блюробин отключать не стал, т.к. это довольно сложный процесс, он прописан много где.
В "menu.c" убери все в:"// Line2 - Calories/Distance"
или так:
Код:
В удобном месте, например "project.h": #define no_bluerobin
В "menu.c":
// Line2 - SXNC (synchronization/data download via SimpliciTI)
const struct menu menu_L2_Sync = {
FUNCTION(sx_sync), // direct function
FUNCTION(dummy), // sub menu function
FUNCTION(display_sync), // display function
FUNCTION(update_time), // new display data
#ifndef no_bluerobin
&menu_L2_CalDist,
#else
&menu_L2_RFBSL,
#endif
};
#ifndef no_bluerobin
// Line2 - Calories/Distance
const struct menu menu_L2_CalDist = {
FUNCTION(sx_caldist), // direct function
FUNCTION(mx_caldist), // sub menu function
FUNCTION(display_caldist), // display function
FUNCTION(update_time), // new display data
&menu_L2_RFBSL,
};
#endif
Этот способ конфигурации плотно используют в OpenChronos, ссылка в первом посте
Я дотестил секундомер (20 часов), все ок.
Твою тестил, секунды убегали, может меня глючило, ща еще раз проверю...
Добавлено спустя 10 минут 42 секунды:Блин, пока портировал управлялку лампой, не заметил, что там rfbsl старый
Вот тля, опять разбирать часы.
Добавлено спустя 49 минут 40 секунд:Залил твою версию, есть ошибка.
Блин, я забыл, что очень сильно поменял свои исходники. Я все перевел с ASCII обработки на байтовое.
У меня проверка 20-ти минут так:
Код:
if (sStopwatch.time[2] == 0x20)
у тебя так:
Код:
if (sStopwatch.time[2] == '2')
Вот моя структура секундомера:
Код:
u8 time[4];
// time[0] 1/10 sec, 1/100 sec
// time[1] second H, L
// time[2] minute H, L
// time[3] hour H,L
Твоя:
Код:
u8 time[8];
// time[0] hour H
// time[1] hour L
// time[2] minute H
// time[3] minute L
// time[4] second H
// time[5] second L
// time[6] 1/10 sec
// time[7] 1/100 sec
Соответственно тебе надо не "sStopwatch.time[1]--; //!!!"
а: sStopwatch.time[5]--; //!!!
И, о ужас, в ASCII "0" и "9" = 0x30 и 0х39 соответственно.
А вообще, я говорил, что штатная прошивка - унылое гамно?

Обработка данных в ASCII коде, где даже это выводить некуда (семисегментный индикатор)