roboforum.ru

Технический форум по робототехнике.
Текущее время: 30 ноя 2024, 07:48

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 47 ]  На страницу Пред.  1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: 12 авг 2006, 13:09 
Не в сети

Зарегистрирован: 29 дек 2004, 23:15
Сообщения: 3744
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей
Без проблем!
ЗЫ
Файл SvS - это проект для WinAVR. А файл main для VMLab. Ну там и все остальные файлы.


Вложения:
SvS WinAVR.rar [63.13 КиБ]
Скачиваний: 89
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 авг 2006, 13:23 
Не в сети

Зарегистрирован: 29 дек 2004, 23:15
Сообщения: 3744
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей
avr123.nm.ru писал(а):
Трудно поправить тот код, ведь там комментов практически нет и я не знаю что должна делать ваша прога.

Код собран по частям из какойто программы для серв, я сам в ней толком не разобрался, но поидее все должнобыть норм. Вот эта прога в оригинале.
ЗЫ
Выкладываю еще Даташит на этого робота.


Вложения:
Inchworm%20ROBOT%20User%20Manual(Eng,mega8).pdf [487.41 КиБ]
Скачиваний: 100
Inchworm(mega).rar [10.23 КиБ]
Скачиваний: 87
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 авг 2006, 22:26 
Не в сети
Аватара пользователя

Зарегистрирован: 22 мар 2005, 03:59
Сообщения: 257
Откуда: Питер
Какой редактор вы используете?
Зачем СТОЛЬКО кода для управления 7-ю сервами???? :shock:
Я решил аналогичную задачу (правда без использования таймеров) НАМНОГО проще, размер исходника в 2,5 раза меньше, а размер HEX файла в !!!7!!!.

Еще у вас был кривой makefile.
Выкладываю нормальный.


Вложения:
Makefile.txt [631 байт]
Скачиваний: 362
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 авг 2006, 22:34 
Не в сети

Зарегистрирован: 29 дек 2004, 23:15
Сообщения: 3744
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей
Я и сам могу написать прогу управления сервой без таймера. Но фишка в том что тогда нельзя будет управлять несколькими сервами одновременно, чтобы они сохраняли позицию во время того как движутся другие сервы. А эта прога как раз решает эти проблемы.. ну и создает новые )) Вот только не удается мне понять в чем ошибка, почему не подает сигналов  когда я вызываю нужную функцию..


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 авг 2006, 22:43 
Не в сети
Аватара пользователя

Зарегистрирован: 22 мар 2005, 03:59
Сообщения: 257
Откуда: Питер
Тогда можешь подкинуть матерьяла по работе с таймерами?

Ps: А под какой контроллер ты всё это пишешь?


Последний раз редактировалось Lirzman 12 авг 2006, 22:47, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 авг 2006, 22:46 
Не в сети

Зарегистрирован: 29 дек 2004, 23:15
Сообщения: 3744
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей
Ну можно почитать курс, там про таймер вродебы понятно написано. Можно посмотреть всякие примеры с работой таймеров. А так на руках ничего нет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 авг 2006, 01:37 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Lirzman писал(а):
Еще у вас был кривой makefile.
Выкладываю нормальный.


я тоже поставил новый WinAVR - проверил из VMLAB демо проект работает.  А проект в рицепе - билд неудачный и куча ошибок.

Уперся мол на строке 56 ИНТ возвращает или ждет ...

надо в исправленым мэйком попробовать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 авг 2006, 01:38 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Lirzman писал(а):
Тогда можешь подкинуть матерьяла по работе с таймерами?


в задачах таймеры используются  avr123.nm.ru/06.htm


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 авг 2006, 15:14 
Не в сети
Аватара пользователя

Зарегистрирован: 22 мар 2005, 03:59
Сообщения: 257
Откуда: Питер
У меня вопрос касательно таймеров:
В файле Winavr/avr/include/utils/delay.h есть четыре функции задержки
Код:
static inline void _delay_loop_1(uint8_t __count) __attribute__((always_inline));
static inline void _delay_loop_2(uint16_t __count) __attribute__((always_inline));
static inline void _delay_us(double __us) __attribute__((always_inline));
static inline void _delay_ms(double __ms) __attribute__((always_inline));


Как видно 3-я и 4-я для мкс и мс задержек соответственно.
Причем они высчитывают количество тиков процессора исходя из константы F_CPU и передают полученное значение в void _delay_loop_1
и void _delay_loop_2 соответственно.

Самое интересное что в пояснении к этим функциям написано следующее:
Для первой:
Delay loop using an 8-bit counter \c __count, so up to 256
   iterations are possible.  (The value 256 would have to be passed
   as 0.)  The loop executes three CPU cycles per iteration, not
   including the overhead the compiler needs to setup the counter
   register.
   Thus, at a CPU speed of 1 MHz, delays of up to 768 microseconds
   can be achieved.


Для второй:
Delay loop using a 16-bit counter \c __count, so up to 65536
   iterations are possible.  (The value 65536 would have to be
   passed as 0.)  The loop executes four CPU cycles per iteration,
   not including the overhead the compiler requires to setup the
   counter register pair.

   Thus, at a CPU speed of 1 MHz, delays of up to about 262.1
   milliseconds can be achieved.


Если я прав но это функции задержек по таймера, но тогда зачем упоминается CPU SPEED :?:  :?:  :?:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 авг 2006, 15:57 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Друзья ! Еще раз ОЧЕНЬ прошу.

делайте как  написано в курсе  avr123.nm.ru/04.htm  и все будет работать !

Поставиви WinAVR  больше НИКОГДА в него не лазайте !

Работайте из VMLAB !!  Он сам генерит ПРАВИЛЬНЫЙ мэйк-файл, которые вы затем при желании можете исправить !

Редактор WinAVR можно подключитьк VMLAB

Из VMLAB ведется редактирование исходника и его перекомпиляция по "ребилд олл".

в проекте VMLAB  у вас должно быть то что в примере VMLAB из папки WinAVR

.MICRO "какой"
.TOOLCHAIN "GCC"
.GCCPATH   "c:\WinAVR"

.GCCMAKE AUTO  ; приказ сделать мэйк фал самому

.SOURCE "main.c"
.TARGET "main.hex"


в исходник на Си  НЕОБХОДИМО включить библиотеки (хидеры .h) из исходника из папки WinAVR

==============

Уанс мо:  

делайте как написано в курсе - и у вас будет работать быстро и правильно.

Вот файлы - попробуйте.


Вложения:
SvS_by_avr123.nm.ru _.rar [3.55 КиБ]
Скачиваний: 84
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 авг 2006, 05:20 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
В разделе форума "Микроконтроллеры" я сделал тему
"WinAVR - библиотека исходников"

Там и управление 8-ю сервами есть.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 авг 2006, 20:18 
Не в сети

Зарегистрирован: 11 авг 2006, 01:02
Сообщения: 69
Откуда: ----
Lirzman писал(а):
У меня вопрос касательно таймеров:
В файле Winavr/avr/include/utils/delay.h есть четыре функции задержки
Код:
static inline void _delay_loop_1(uint8_t __count) __attribute__((always_inline));
static inline void _delay_loop_2(uint16_t __count) __attribute__((always_inline));
static inline void _delay_us(double __us) __attribute__((always_inline));
static inline void _delay_ms(double __ms) __attribute__((always_inline));


Если я прав но это функции задержек по таймера, но тогда зачем упоминается CPU SPEED :?:  :?:  :?:


Нет эти функции не используют таймеры, они крутяться в циклах. Для разных частот задающего генератора генератора нужно выполнить раное количества инструкций чтобы прошло одно и тоже время. Частота генератора задается с помощю определения макроса F_CPU

Анатолий.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 авг 2006, 20:23 
Не в сети

Зарегистрирован: 11 авг 2006, 01:02
Сообщения: 69
Откуда: ----
Lirzman писал(а):

Еще у вас был кривой makefile.
Выкладываю нормальный.


CFLAGS= -O -g -Wall -ffreestanding -mmcu=$(MCU)

Используйте оптимизацию CFLAGS=  -Os.

Но как я уже писал от вашего варианта задежки останиться 0, в прямом смысле.

Анатолий.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 авг 2006, 20:55 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
aesok писал(а):
Используйте оптимизацию CFLAGS=  -Os.


вы не могли бы подробней сказать об уровне - s

я не использую WinAVR и судить не могу, но на electronix.ru/forum всегда рекомендуют -O2


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 авг 2006, 21:10 
Не в сети

Зарегистрирован: 11 авг 2006, 01:02
Сообщения: 69
Откуда: ----
avr123.nm.ru писал(а):
aesok писал(а):
Используйте оптимизацию CFLAGS=  -Os.


вы не могли бы подробней сказать об уровне - s

я не использую WinAVR и судить не могу, но на electronix.ru/forum всегда рекомендуют -O2


-О0 - без оптимизации.
-01 -02 -03 - включаються включаеться все большее количество проходов оптимизации по скорости кода. -0s - это -O2 плюс оптимизации по размеру кода. Для AVR обычно чем меньше код тем быстрее. avr-libc скомпилирована с -Os.

Анатолий.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 47 ]  На страницу Пред.  1, 2, 3, 4  След.

Часовой пояс: UTC + 4 часа


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO