roboforum.ru

Технический форум по робототехнике.


CodeVisionAVR - версия 2!

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

Re: CodeVisionAVR - версия 2!

Сообщение Romikgy » 11 июл 2011, 18:42

Не нравится компилятору работа с переменными вне ф-кций....
плюс почитайте о динамических и статических массивах... ибо создаете динамику , а используете как статику....

без асма не понять правильной оптимизации ... так что не извращайтесь ИМХО


КСАТИ КОД НЕ ПРАВИЛЬНЫЙ!!!!

Добавлено спустя 10 минут 17 секунд:
так правильнее ....

по коду было одно выделение памяти ... а после серва офф память убивалась последующие обращение к серва он привело бы к краху программы.....
Вложения
ADC.zip
(236.16 КиБ) Скачиваний: 0
die Wahrheit ist irgendwo da draußen
Аватара пользователя
Romikgy
 
Сообщения: 750
Зарегистрирован: 15 ноя 2009, 13:37
Откуда: Porto Franco "Odessa"

Re: CodeVisionAVR - версия 2!

Сообщение Korbofos » 11 июл 2011, 19:18

Мега Благодарю. Мой С ещё очень жидкий. буду читать и читать...
РАБОТА, РАБОТА перейди на Федота, с Федота на его брата, а ко мне их зарплата.
Аватара пользователя
Korbofos
 
Сообщения: 317
Зарегистрирован: 15 янв 2011, 11:27
Откуда: Челябинск
прог. языки: C/C++
ФИО: Александр

Re: CodeVisionAVR - версия 2!

Сообщение Vooon » 11 июл 2011, 21:35

Linux user | Firefox user
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3339
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

Re: CodeVisionAVR - версия 2!

Сообщение Vooon » 12 июл 2011, 02:22

Преждевременная оптимизация это плохо, понятненько?
Linux user | Firefox user
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3339
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

Re: CodeVisionAVR - версия 2!

Сообщение boez » 12 июл 2011, 11:03

Korbofos писал(а):не нравится мне что в памяти будет такой массив висеть, если сервы будут отключены!

Пара наводящих вопросов:
1. ОК, освободили мы память когда сервы не нужны, а что мы туда положим?
2. А когда сервы понадобятся снова, куда мы это "что-то" денем?
boez
 
Сообщения: 1981
Зарегистрирован: 27 авг 2008, 10:45
Откуда: Харьков
прог. языки: С/С++

Re: CodeVisionAVR - версия 2!

Сообщение Korbofos » 12 июл 2011, 13:25

При ручном управлении нужен будет только шим и уарт, зачем грузить всё остальное?
РАБОТА, РАБОТА перейди на Федота, с Федота на его брата, а ко мне их зарплата.
Аватара пользователя
Korbofos
 
Сообщения: 317
Зарегистрирован: 15 янв 2011, 11:27
Откуда: Челябинск
прог. языки: C/C++
ФИО: Александр

Re: CodeVisionAVR - версия 2!

Сообщение boez » 12 июл 2011, 16:06

А в смысле - грузить? Статический массив или одиночная переменная - это просто зарезервированное место в адресном пространстве МК. Пока не пользуешься - просто ничего не происходит. Да, ничего другого ты туда не положишь. Но тут мы возвращаемся к моим двум вопросам в предыдущем посте.
boez
 
Сообщения: 1981
Зарегистрирован: 27 авг 2008, 10:45
Откуда: Харьков
прог. языки: С/С++

Re: CodeVisionAVR - версия 2!

Сообщение Dmitry__ » 12 июл 2011, 16:19

сначала malloc() и free() в микроконтроллер, потом mmu туда же
а, потом бабушку через дорогу не переведут
и так покатятся по наклонной :shock:
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: CodeVisionAVR - версия 2!

Сообщение =DeaD= » 12 июл 2011, 16:24

Dmitry__, а вы то какой подход предлагаете? Мне самому не нравится, что товарищ желает освобождать память и занимать чем-то еще дальше. У вас есть варианты красивей, без malloc'а? Чтобы потом доработка программы не превращала её в фарш?
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: CodeVisionAVR - версия 2!

Сообщение Dmitry__ » 12 июл 2011, 16:30

если контроллеру нужно управлять сервами, то эта память нужна всегда :)
это не компьютер на котором можно разные операционки запускать в один день
boez правильно пытается донести мысль

boez писал(а):Да, ничего другого ты туда не положишь. Но тут мы возвращаемся к моим двум вопросам в предыдущем посте.
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: CodeVisionAVR - версия 2!

Сообщение =DeaD= » 12 июл 2011, 16:53

Добавлено спустя 2 минуты 7 секунд:
Вполне может быть некая практическая задача, когда роботу нужно остановиться, освободить всю память под какое-нибудь "простенькое" распознавание речи, выполнить распознавание, затем загрузить снова "в память" таблицу переменных под сервы и двинуться вперед. Хотя я бы конечно в таком случае постарался взять МК, где памяти хватает без malloc+free.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: CodeVisionAVR - версия 2!

Сообщение blindman » 12 июл 2011, 18:26

Korbofos, вы не должны этого хотеть :) Другими словами, так не делают. Одна из причин - повышение шансов схватить трудноуловимый баг. Есть и другие. Так что пока забудь. С опытом приходит понимание, в каких редких случаях такие вещи все же можно делать, но к тому моменту и вопрос "как?" уже не будет возникать.
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: CodeVisionAVR - версия 2!

Сообщение Korbofos » 13 июл 2011, 04:57

Убедительно на счёт malloc'a :)
Тем более что при его использовании прошивка прибавляет в весе.
А так что с malloc, что без него сервы работают одинаково неправильно :)
Раньше занимался оптимизацией winxp(ради адской скорости). По видимому malloc это эхо тех событий :lol:
P.S. Уже понял что мк это пк больше не буду так баловаться :)
РАБОТА, РАБОТА перейди на Федота, с Федота на его брата, а ко мне их зарплата.
Аватара пользователя
Korbofos
 
Сообщения: 317
Зарегистрирован: 15 янв 2011, 11:27
Откуда: Челябинск
прог. языки: C/C++
ФИО: Александр

Re: CodeVisionAVR - версия 2!

Сообщение =DeaD= » 13 июл 2011, 08:12

Вырезал из темы обсуждение кольцевого буфера и практически флейм и перенес сюда: forum7/topic10289.html
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: CodeVisionAVR - версия 2!

Сообщение Korbofos » 25 авг 2011, 19:15

Почему установки ножек на выход всё в порядке
Код: Выделить всёРазвернуть
DDRB|=(1<<DDB6)|(1<<DDB5);

А при обратной операции
Код: Выделить всёРазвернуть
DDRB&=~(1<<DDB6)|(1<<DDB5);

Ножка PB5 остаётся включоной на выход?
РАБОТА, РАБОТА перейди на Федота, с Федота на его брата, а ко мне их зарплата.
Аватара пользователя
Korbofos
 
Сообщения: 317
Зарегистрирован: 15 янв 2011, 11:27
Откуда: Челябинск
прог. языки: C/C++
ФИО: Александр

Пред.След.

Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 19