Технический форум по робототехнике.
galex1981 » 07 июл 2011, 11:48
Странный таки вопрос. Когда объявляешь переменную ты пишешь:
- Код: Выделить всё • Развернуть
int a;
Когда она тебе не нужна, ты просто убираешь ее объявление и спрользование (или я что то не догоняю)
dccharacter » 07 июл 2011, 12:02
объявляй не глобальные переменные, а локальные.
Korbofos » 07 июл 2011, 12:05
Пишу прошивку для m128-ds.
Например если нужно работать с сервами создаём глобальный массив, чтоб работать с ним в прерываниях.
Сервы больше ненужны отключаем таймер удаляем массив из памяти.
Но как это сделать?
P.S.Если не нужны сервы то и массив не нужен....
=DeaD= » 07 июл 2011, 12:50
Вроде как в любом Си - если надо на ходу выделять\чистить память, то надо использовать malloc + free, а в переменную объявлять только указатель на будущую структуру данных.
Romikgy » 07 июл 2011, 13:56
какую переменную?
osc » 07 июл 2011, 18:04
Мне больше версия 1.ХХХ нравится, хотя во второй правильно модернизировали CodeWizard.
Вообще лучше без него писать, как я считаю.
Korbofos » 10 июл 2011, 12:28
- Код: Выделить всё • Развернуть
int *servo_position;
int *pause;
unsigned char *current_servo;
servo_position=(int*)calloc(9,sizeof(int));
pause=(int*)malloc(sizeof(int));
current_servo=(char*)malloc(sizeof(unsigned char));
Что не так делаю????
CV выдаёт ошибку: пропущена "(
Нужный обьём памяти HEAP задал...
Vooon » 11 июл 2011, 08:25
Зачем здесь вообще динамическое выделение?
Korbofos » 11 июл 2011, 08:40
если сервы не нужны зачем массив держать в памяти?
Ну или как ещё можно сделать?
Romikgy » 11 июл 2011, 10:22
Korbofos писал(а):- Код: Выделить всё • Развернуть
int *servo_position;
int *pause;
unsigned char *current_servo;
servo_position=(int*)calloc(9,sizeof(int));
pause=(int*)malloc(sizeof(int));
current_servo=(char*)malloc(sizeof(unsigned char));
Что не так делаю????
CV выдаёт ошибку: пропущена "(
Нужный обьём памяти HEAP задал...
в данном куске скобки нормальные ... мож в другом участке кода?
PS это не тот проц где нормально работает динамическая память .....
Korbofos » 11 июл 2011, 10:41
int *servo_position;
//servo_position=(int*)malloc(9*sizeof(int));
убираю строку всё нормально никаких ошибок
не нравится мне что в памяти будет такой массив висеть, если сервы будут отключены!
Romikgy » 11 июл 2011, 16:52
это 36 байт что ли жалко?
Korbofos » 11 июл 2011, 18:11
Немного да))
Люблю оптимизировать и выкидывать ненужное... У меня маниакальный характер
Romikgy если времени не жалко может посмотрите проект? Сегодня пол дня CV мучил эффекту ноль(упорно требует скобку)

Romikgy » 11 июл 2011, 18:14
выкладывай посмотрим ....
PS если разбираешься в асме , то посмотри код который генерит си для ф-кций malloc и подобные ... и тогда еще раз подумай о необходимости такой оптимизации....
Korbofos » 11 июл 2011, 18:21
В асаме я не разбираюсь(
Вот "проект"
- Вложения
-
ADC.rar
- (198.74 КиБ) Скачиваний: 0