|
|
  |
Вычисление длины строковой переменной, в CodevisionAVR 1.24.8b |
|
|
|
Dec 1 2006, 16:06
|
Участник

Группа: Участник
Сообщений: 58
Регистрация: 13-10-06
Из: Финляндия
Пользователь №: 21 273

|
Надо писать strlen(m).
А вообще советую писать не eeprom char *m, а eeprom char* m. Для компилятора это одни и тоже, а человеку говорит, что m - не переменная, а указатель на переменную некоего типа.
|
|
|
|
|
Dec 1 2006, 16:39
|

Местный
  
Группа: Свой
Сообщений: 226
Регистрация: 25-03-05
Из: Беларусь
Пользователь №: 3 672

|
2 prottossОпять читаем хелп: /* Pointer to a char string placed in EEPROM */ eeprom char *ptr_to_eeprom1="This string is placed in EEPROM"; char eeprom *ptr_to_eeprom2="This string is also placed in EEPROM"; что я сделал не так? А по поводу написать собственную функцию -- хотелось бы использовать готовую 2 GinRiderВидимо придется искать IAR
--------------------
Ничто так не ограничивает полет мысли программиста, как компилятор
|
|
|
|
|
Dec 1 2006, 17:10
|

Знающий
   
Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768

|
Увы и ах unsigned char strlen(char *str)-енто для строки в RAM,unsigned int strlenf(char flash *str)-для флэш. Для EEPROM фукции нету Но из-за этого менять компилер,имхо,перебор-напишите сами,функция-то простенькая.
--------------------
"Hello, word!" - 17 errors 56 warnings
|
|
|
|
|
Dec 1 2006, 17:17
|

Местный
  
Группа: Свой
Сообщений: 226
Регистрация: 25-03-05
Из: Беларусь
Пользователь №: 3 672

|
2 SpiritDanceERROR компилятора переписывал ручками (не дает копировать) может где в букве и ошибся. Мне надо считать длину строки в EEPROM, а не в другом месте, т.к. переписываться будет только EEPROM, а прога должна остаться на месте. Цитата(WHALE @ Dec 1 2006, 16:10)  Увы и ах unsigned char strlen(char *str)-енто для строки в RAM,unsigned int strlenf(char flash *str)-для флэш. Для EEPROM фукции нету Но из-за этого менять компилер,имхо,перебор-напишите сами,функция-то простенькая. Понял, огромное спасибо, особенно prottoss
--------------------
Ничто так не ограничивает полет мысли программиста, как компилятор
|
|
|
|
|
Dec 1 2006, 17:32
|
Участник

Группа: Участник
Сообщений: 58
Регистрация: 13-10-06
Из: Финляндия
Пользователь №: 21 273

|
Цитата(prottoss @ Dec 1 2006, 15:46)  Что принимает? Функция strlen указатель на еепром? Я у себя проверил - не принимает, так же как и *m... Что там за ИАР у Вас? Именно так, указатель __eeprom char* . IAR номер 4.12. Да и вообще, если я решу какие-то переменные перенести из SRAM в EEPROM или FLASH (сделать константой), Вы считаете, что надо программу переписывать? Несколько странно. Насчёт своей функции согласен, это сделает код прозрачнее и объём меньше.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|