Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Hi-Tech PICC-18, Pic18F4520. Стандартная консструкция Ansi C не работает, это глюк или фича, в документации не нашел
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > PIC
AlHakim
Компилятор Hi-Tech PICC-18_9.50PL3
массив команд, причем расположил их в алфавитном порядке для облегчения поиска по первым буквам... (приходит команда по RS232 и после тогокак команда выловлена, происходит сравнение с первым символом Commands[] и при совпадение производим дальнейшее сравнение до полного соответсвия), а в итоге получаю, то что представленно на картинке (строковые команды во флеш идут не последовательно)

P.S. функции strcat или strncmp тут не имеют никакого принципиального значения и были приведены только для того чтобы компилятор не выкинул массив Command при оптимизации. Меня интересует как расположить строковые элементы массива Command в последовательном порядке, как и описано, вот

p.s. проверил ради интереса в Borland C работает)

Код
#include "CommonDef.h"
#include


volatile near unsigned char str1[10];

const unsigned char *Commands[] = { "ADD  ",    //  1   ADD 2007-09-05 08:06:00 2007-09-06 15:25:00 10
                                  "CLEAR",    //  2   CLEAR
                                  "DUMP ",     //  3   DUMP
                                  "ERASE",    //  4   ERASE
                                  "GET  ",      //  5   GET (VOLTAGE/DATA/TIME/PAGE)
                                  "LIST ",     //  6   LIST
                                  "SET  ",      //  7   SET (DATA/TIME)
                                  "SGET ",     //  8   SGET
                                  "SGET2"};   //  9   SGET2

void main(void)
{
    unsigned int *TmpPtrByte;
    unsigned char TmpByte = 0;

    strcat(str1,Commands[1]);
    TmpByte = sizeof(Commands)>>1;
}
k_max
Объявлен массив указателей, а не массив строк, поэтому компилятор может их помещать не по-порядку.
AlHakim
Цитата(k_max @ Sep 6 2007, 13:28) *
Объявлен массив указателей, а не массив строк, поэтому компилятор может их помещать не по-порядку.


спасибо, понтяно, главное что выборка из массива производится правильно, что-то я поторопился с суждениями
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.