|
Вопрос по CV AVR, cvavr |
|
|
|
Feb 22 2011, 21:01
|
Частый гость
 
Группа: Участник
Сообщений: 84
Регистрация: 21-10-09
Пользователь №: 53 117

|
Добрый день, вечер, ночь! Начал осваивать Си и столкнулся с двумя проблемами 1. Массивы Мне нужно сделать массив в eeprom для хранения настроек моего устройства. У устройства есть три функции имеющие две переменных у каждой. Т.е я создал три массива по десять строк и две ячейки в каждой строке. Когда я попытался создать ссылки на все эти массивы, то получил отлуп. Если делать одномерный массив, то все проходит, но как только добавляется колличество ячеек в строке, все CV ругается вот код Код // Declare your global variables here
eeprom unsigned int m3 [10][2]; eeprom unsigned int m4 [10][2]; eeprom unsigned int m7 [10][2]; eeprom unsigned int *bdz[]={m3,m4,m7}; И еще я не смог найти пример, как мне выдрать от туда нужные данные Например у меня есть две переменные в которых должны считываться ячейки из какого либо массива напр а,б как мне в них загрузить значение из например m3 строки 3??? Понимаю, что вопрос глупый, но я только осваиваю язык, а описания как это сделать так и не нашел. 2. Для вывода на индикатор использую функцию sprintа Код sprintf(lcd_buffer,"Fq:%i.%u",ts/100,ts%100); в итоге если я вывожу значение например 1000 у меня выводится на дисплей 10.0. Как только я начинаю уменьшать или увеличивать это число появляется еще один разряд после запятой. Как сделать, что бы у меня всегда выводилось 10.00??
|
|
|
|
|
 |
Ответов
|
Feb 23 2011, 04:23
|

Гуру
     
Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954

|
Цитата(NickSmith @ Feb 23 2011, 00:01)  как мне выдрать от туда нужные данные Например, так: Код a = m[2][0]; b = m[2][1]; соответственно, сохранение в EEPROM будет выглядеть так Код m[2][0] = a; m[2][1] = b; Цитата(NickSmith @ Feb 23 2011, 00:01)  Как сделать, что бы у меня всегда выводилось 10.00?? Код sprintf(lcd_buffer,"Fq:%i.%02u",ts/100,ts%100);
|
|
|
|
|
Feb 23 2011, 10:16
|
Частый гость
 
Группа: Участник
Сообщений: 84
Регистрация: 21-10-09
Пользователь №: 53 117

|
Цитата(Палыч @ Feb 23 2011, 07:23)  Например, так: Код a = m[2][0]; b = m[2][1]; соответственно, сохранение в EEPROM будет выглядеть так Код m[2][0] = a; m[2][1] = b; Код sprintf(lcd_buffer,"Fq:%i.%02u",ts/100,ts%100); Большое спасибо. А из за чего он не хочет создавать ссылочный массив при многомерных массивах??
|
|
|
|
|
Feb 23 2011, 13:17
|

Гуру
     
Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954

|
Цитата(NickSmith @ Feb 23 2011, 13:16)  А из за чего он не хочет создавать ссылочный массив при многомерных массивах? А, вот так? Код eeprom unsigned int * bdz[] = { &m3[0][0], &m4[0][0], &m7[0][0] }; Если Вы собираетесь заниматься профессионально программированием AVR (ну, или любительством, но на профессиональном уровне), то сразу перейдите с CV на GCC или IAR, позже это будет сделать гораздо труднее.
|
|
|
|
|
Feb 23 2011, 15:33
|
Частый гость
 
Группа: Участник
Сообщений: 84
Регистрация: 21-10-09
Пользователь №: 53 117

|
Цитата(Палыч @ Feb 23 2011, 16:17)  А, вот так? Код eeprom unsigned int * bdz[] = { &m3[0][0], &m4[0][0], &m7[0][0] }; Если Вы собираетесь заниматься профессионально программированием AVR (ну, или любительством, но на профессиональном уровне), то сразу перейдите с CV на GCC или IAR, позже это будет сделать гораздо труднее. меня заинтересовал IAR? но по нему как то мало документации на русском.. Может что то посоветуете?? Основы от CV подойдут или у него синтаксис языка совсем другой??
|
|
|
|
|
Feb 23 2011, 18:47
|

Гуру
     
Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954

|
Цитата(NickSmith @ Feb 23 2011, 18:33)  ... или у него синтаксис языка совсем другой?? Собственно, это CV - чёрти что, а не транслятор языка Си... Как раз IAR - в соответствии со стандартом, так что, любая хорошая книга (например, Керниган и Ричи) вполне помогут с освоением языка. Другое дело: микроконтроллеры имеют свои особенности и, поэтому, язык дополнен конструкциями, специфичными для разных трансляторов (отдано это на "откуп" разработчикам трансляторов, а они делают по-своему: при переходе от одного транслятора к другому могут возникнуть трудности - лучше сразу начинать с "серьезного" транслятора).
|
|
|
|
|
Feb 23 2011, 20:05
|
Частый гость
 
Группа: Участник
Сообщений: 84
Регистрация: 21-10-09
Пользователь №: 53 117

|
Цитата(Палыч @ Feb 23 2011, 21:47)  Собственно, это CV - чёрти что, а не транслятор языка Си... Как раз IAR - в соответствии со стандартом, так что, любая хорошая книга (например, Керниган и Ричи) вполне помогут с освоением языка. Другое дело: микроконтроллеры имеют свои особенности и, поэтому, язык дополнен конструкциями, специфичными для разных трансляторов (отдано это на "откуп" разработчикам трансляторов, а они делают по-своему: при переходе от одного транслятора к другому могут возникнуть трудности - лучше сразу начинать с "серьезного" транслятора). Ну да, пишут, что IAR разрабатывался совместно с производителями.. По первым граблям, на которые я наступил тоже стало понятно что CV это язык пионерии.. Мигающие светодиоды и данные с датчика считать в простую можно, а как только что то серьезное, то тут же бяки выползают... В общем будем изучать IAR...
|
|
|
|
Сообщений в этой теме
NickSmith Вопрос по CV AVR Feb 22 2011, 21:01 NickSmith Переполз на IAR и опять те же грабли..
делаю так:
... Feb 26 2011, 19:28 Палыч Код__eeprom unsigned int ** bdz[] = {m3, m... Feb 26 2011, 19:48 zltigo QUOTE (NickSmith @ Feb 26 2011, 22:28) Чт... Feb 26 2011, 19:55  NickSmith Цитата(zltigo @ Feb 26 2011, 22:55) Что н... Feb 26 2011, 20:06   zltigo QUOTE (NickSmith @ Feb 26 2011, 23:06) Хо... Feb 26 2011, 20:39    NickSmith Цитата(zltigo @ Feb 26 2011, 23:39) хотен... Feb 26 2011, 20:47     zltigo QUOTE (NickSmith @ Feb 26 2011, 23:47) Т.... Feb 26 2011, 20:53      NickSmith Цитата(zltigo @ Feb 26 2011, 23:53) Что ... Feb 26 2011, 21:07       zltigo QUOTE (NickSmith @ Feb 27 2011, 00:07) Я ... Feb 26 2011, 21:26        NickSmith Цитата(zltigo @ Feb 27 2011, 00:26) Ну и ... Feb 26 2011, 21:34
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|