ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
12 июля
443217
Mazur (18.09.2013 01:52 - 20.09.2013 12:57, просмотров: 45572)
Вынужден повторить свою просьбу. Заблудился окончательно. Мне нужно получить доступ к памяти программ через указатель. С индексом получается громоздко. А на попытки получить через указатель компилер ругается. Поделитесь для изучения, разбора примерами работы с памятью программ. Интересует работа со структурами. Что-то у меня пока лыжи не едут. Наброски: typedef struct PROGMEM { u08 key_cod; u08 state; u08 next_state; void (*p_t_StateFunc) (void); } tab_key_curr_next_func; struct PROGMEM tab_key_curr_next_func table_handlers_keys [] = { // {KEY_ESC_COD, PROC_MENU_2, PROC_MENU_2, led_1_switch}, {KEY_ENTER_COD, PROC_MENU_2, PROC_MENU_2, led_2_switch}, {KEY_UP_COD, PROC_MENU_2, PROC_MENU_2, led_3_switch}, {KEY_DOWN_COD, PROC_MENU_2, PROC_MENU_2, led_4_switch}, {KEY_PLUS_COD, PROC_MENU_2, PROC_MENU_2, led_5_switch}, {KEY_MINUS_COD, PROC_MENU_2, PROC_MENU_2, led_6_switch}, }; void check_keys_buf (void) { if ((proc_menu_flags & (1<<PROC_MENU_RUN_FLG)) && (keys_buf != 0xFF)) { void (*p_t_StateFunc) (void); p_t_StateFunc = NULL; u08 i; struct PROGMEM table_handlers_keys *ptr; for (ptr = table_handlers_keys; ptr < (table_handlers_keys + sizeof (table_handlers_keys)); ptr++) { if (prb(table_handlers_keys[i].key_cod) == keys_buf && _proc_menu == prb(table_handlers_keys[i].state)) { keys_buf = 0xFF; _proc_menu = prb(table_handlers_keys[i].next_state); p_t_StateFunc = prw(table_handlers_keys[i].p_t_StateFunc); break; } } if ((p_t_StateFunc)) (*p_t_StateFunc) (); } }
../menu.c:93:39: error: array type has incomplete element type ../menu.c:115:102: error: increment of pointer to unknown structure ../menu.c:115:7: error: arithmetic on pointer to an incomplete type