реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Hi-Tech PICC-18, Pic18F4520. Стандартная консструкция Ansi C не работает, это глюк или фича, в документации не нашел, продублирую, может здесь ответят
AlHakim
сообщение Sep 6 2007, 05:33
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 7-02-05
Из: Уфа
Пользователь №: 2 474



Компилятор 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;
}

Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
k_max
сообщение Sep 6 2007, 07:28
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 20-04-07
Пользователь №: 27 197



Объявлен массив указателей, а не массив строк, поэтому компилятор может их помещать не по-порядку.
Go to the top of the page
 
+Quote Post
AlHakim
сообщение Sep 6 2007, 11:43
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 7-02-05
Из: Уфа
Пользователь №: 2 474



Цитата(k_max @ Sep 6 2007, 13:28) *
Объявлен массив указателей, а не массив строк, поэтому компилятор может их помещать не по-порядку.


спасибо, понтяно, главное что выборка из массива производится правильно, что-то я поторопился с суждениями
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd June 2025 - 19:17
Рейтинг@Mail.ru


Страница сгенерированна за 0.01364 секунд с 7
ELECTRONIX ©2004-2016