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

 
 
> Вопрос по CV AVR, cvavr
NickSmith
сообщение Feb 22 2011, 21:01
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 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??
Go to the top of the page
 
+Quote Post
2 страниц V  < 1 2  
Start new topic
Ответов (15 - 16)
zltigo
сообщение Feb 26 2011, 21:26
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (NickSmith @ Feb 27 2011, 00:07) *
Я имел в виду тип данных для хранения указателей unsigned int. Можно ли использовать char?

Ну и каша у Вас в голове "указатель unsigned int" это и есть совершенно САМОСТОЯТЕЛЬНЫЙ тип данных и будет занимать столько, сколько нужно на Вашей платформе и не Ваше дело в общем случае каков его размер.
QUOTE
Например мне нужно записать данные в строку 5 ячейку 1 m4 их temp
...
bdz[1][4][1]=temp;
Работать не хочет??

bdz НЕ трехмерный массив. Это массив указателей на двумерные массивы из unsigned int.
Учитесь читать сообщения компилятора. И главное думать, зачем делать это через анальное отверстие.




--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
NickSmith
сообщение Feb 26 2011, 21:34
Сообщение #17


Частый гость
**

Группа: Участник
Сообщений: 84
Регистрация: 21-10-09
Пользователь №: 53 117



Цитата(zltigo @ Feb 27 2011, 00:26) *
Ну и каша у Вас в голове "указатель unsigned int" это и есть совершенно САМОСТОЯТЕЛЬНЫЙ тип данных и будет занимать столько, сколько нужно на Вашей платформе и не Ваше дело в общем случае каков его размер.

bdz НЕ трехмерный массив. Это массив указателей на двумерные массивы из unsigned int.
Учитесь читать сообщения компилятора. И главное думать, зачем делать это через анальное отверстие.


Я тогда не очень понимаю, как мне сказать, что мне нужно обратится по второй ссылке к 5 строке и 1 ячейке...??


Я Си изучаю еще только вторую неделю а с IAR ковыряюсь третий день. Столько информации, что еще все в голове не систематизировалось...
Так что не судите строго за нелепые вопросы.

Сообщение отредактировал NickSmith - Feb 26 2011, 21:36
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 06:45
Рейтинг@Mail.ru


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