roboforum.ruТехнический форум по робототехнике. |
|
|
#define STOPWATCH_100HZ_TICK 328 //!!! (32768 / 100)
Warning[Pe047]: incompatible redefinition of macro "ISM_US" D:\Sports Watch\simpliciti\Components\mrfi\smartrf\CC430\smartrf_CC430.h 109
Error[e104]: Failed to fit all segments into specified ranges. Problem discovered in segment CODE. Unable to place 308 block(s) (0x7606 byte(s) total) in
0x738a byte(s) of memory. The problem occurred while processing the segment placement command "-P(CODE)CODE=8000-FF7F", where at the
moment of placement the available memory ranges were "CODE:8bf6-ff7f"
Error while running Linker
Madf писал(а):Закомментировал "тест", выиграл в версии на 868 МГц - 5138 байт.
27 080 bytes of CODE memory
844 bytes of DATA memory (+ 157 absolute )
1 592 bytes of CONST memory
Errors: none
Warnings: none
Madf писал(а):Блюробин отключать не стал, т.к. это довольно сложный процесс, он прописан много где.
В удобном месте, например "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
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
Dmitry__ писал(а):В часах всего 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
Dmitry__ писал(а):В "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, ссылка в первом посте
Dmitry__ писал(а):Я дотестил секундомер (20 часов), все ок.
Твою тестил, секунды убегали, может меня глючило, ща еще раз проверю...
Dmitry__ писал(а):Добавлено спустя 10 минут 42 секунды:
Блин, пока портировал управлялку лампой, не заметил, что там rfbsl старый
Вот тля, опять разбирать часы.
Dmitry__ писал(а):Добавлено спустя 49 минут 40 секунд:
Залил твою версию, есть ошибка.
Блин, я забыл, что очень сильно поменял свои исходники. Я все перевел с ASCII обработки на байтовое.
Dmitry__ писал(а):У меня проверка 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 соответственно.
Dmitry__ писал(а):А вообще, я говорил, что штатная прошивка - унылое гамно?
Madf писал(а):Ну с этим я вообще не знаю что делать, серъёзно переписывать всё не хочется и как ты раньше говорил, что против глобальных изменений.
Соответственно тебе надо не "sStopwatch.time[1]--; //!!!"
а: sStopwatch.time[5]--; //!!!
Madf писал(а):Что значит старый? Чем он плох и где взять (и нужно ли брать) новый?
Dmitry__ писал(а):Дык, весь допил:Соответственно тебе надо не "sStopwatch.time[1]--; //!!!"
а: sStopwatch.time[5]--; //!!!
Я вчера поправил это в твоей версии, тестю 12 часов, все ок.
Dmitry__ писал(а):Не, ни чего не надо, это я свои часы брикнул, вот и плакался.
Сейчас решил двигать дальше проект с часами (ты возбудил)
На базе исходников:
http://blog.chschmid.com/?page_id=193
Сделать управление дешевыми модулями rfm01, rfm12, rfm23
if (sStopwatch.time[2] == '2')
{
// SWT display changes from MM:SS:hh to HH:MM:SS when reaching 20 minutes
if (sStopwatch.viewStyle == DISPLAY_DEFAULT_VIEW)
{
sStopwatch.time[5]--; //!!!
}
sStopwatch.viewStyle = DISPLAY_ALTERNATIVE_VIEW;
//!!! display_stopwatch(LINE2, DISPLAY_LINE_UPDATE_FULL);
}
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4