roboforum.ru

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

Нужна помощь по СИ.

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

Re: Нужна помощь по СИ.

Сообщение Сергей » 17 апр 2008, 11:38

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

Re: Нужна помощь по СИ.

Сообщение denissyslo » 17 апр 2008, 12:30

ДА Я разобрался!!!! у меня все 6 серв отлично руляться, только запрограммировано это по очень тупому алгоритму:
даем в порт 1, ждем нужное время 1-2 мс
даем в порт0
ждем 20-это время мс
краткая биография: родился в роддоме - учился на учебе - служил на службе - работал на работе.....
Аватара пользователя
denissyslo
 
Сообщения: 191
Зарегистрирован: 17 дек 2007, 15:39
Откуда: г. Комсмольск-на-Амуре / п.Светлая
ФИО: Денис Сусло

Re: Нужна помощь по СИ.

Сообщение Master » 17 апр 2008, 15:46

Что-то я не понял, то тебе нужно было мерить в мкс, а теперь уже в мс, выкладывай код и весь проект, а то в последнее время всех очень озаботил вопрос про сервы, а готовых проектов нету. Точнее проектов в которых реализована только одна задача, например, руление сервами.
Аватара пользователя
Master
 
Сообщения: 4468
Зарегистрирован: 21 дек 2006, 19:56
Откуда: Украина, г.Одесса
прог. языки: Delphi и С

Re: Нужна помощь по СИ.

Сообщение denissyslo » 17 апр 2008, 16:55

Что-то я не понял, то тебе нужно было мерить в мкс, а теперь уже в мс,

МУР, ну не все ли равно 20000мкс или 20мс?

выкладывай код и весь проект,

Собственно выкладывать нечего пока я код постоянно переделываю.сейча немного забросил сервы. разбираюсь с аппаратным шимом. Есть успехи :). Что бы потом сделать руление сервой на таймерах, т.к. мой код ОЧЕНЬ простой и вем понятный, но для практических целей не пригодный, вот так я рулил сервой, все работлало:
PORTD.6=1;
PORTA.1=1;
PORTA.2=1;
PORTA.3=1;
PORTA.4=1;
PORTA.5=1;
delay_us(1000);
PORTA.1=0;
PORTA.2=0;
PORTA.3=0;
PORTA.4=0;
PORTA.5=0;
delay_us(19000);
а то в последнее время всех очень озаботил вопрос про сервы, а готовых проектов нету.

Это точно, а то и послать почитать вам, модераторам, некуда. ЕДИНСТВЕННАЯ ОЧЕНЬ ХОРОШАЯ инфа в Z8 курса123АВР По ней разбираюсь с аппаратным шимом. АВР молодец - для людей сделал.
Точнее проектов в которых реализована только одна задача, например, руление сервами.
Вообще я предлагал - сделали бы на форуме статейку - кусок кода с пояснениями (насолько это вообще реально) как зарулить сервой - чисто для новичков.
краткая биография: родился в роддоме - учился на учебе - служил на службе - работал на работе.....
Аватара пользователя
denissyslo
 
Сообщения: 191
Зарегистрирован: 17 дек 2007, 15:39
Откуда: г. Комсмольск-на-Амуре / п.Светлая
ФИО: Денис Сусло

Re: Нужна помощь по СИ.

Сообщение Master » 17 апр 2008, 21:11

Меня ни за что Муром обозвали :cry:
Вообще я предлагал - сделали бы на форуме статейку - кусок кода с пояснениями (насолько это вообще реально) как зарулить сервой - чисто для новичков.

Вот тебе выпала честь это сделать.
Аватара пользователя
Master
 
Сообщения: 4468
Зарегистрирован: 21 дек 2006, 19:56
Откуда: Украина, г.Одесса
прог. языки: Delphi и С

Re: Нужна помощь по СИ.

Сообщение denissyslo » 18 апр 2008, 03:49

Меня ни за что Муром обозвали

извиняюсь - поздно писал, хотя я думаю, что МУР - это не ругательство, а ник МУРА :)

Вообще я предлагал - сделали бы на форуме статейку - кусок кода с пояснениями (насолько это вообще реально) как зарулить сервой - чисто для новичков.
Вот тебе выпала честь это сделать.


Я бы не поленился - написал, только знания не те....
краткая биография: родился в роддоме - учился на учебе - служил на службе - работал на работе.....
Аватара пользователя
denissyslo
 
Сообщения: 191
Зарегистрирован: 17 дек 2007, 15:39
Откуда: г. Комсмольск-на-Амуре / п.Светлая
ФИО: Денис Сусло

Re: Нужна помощь по СИ.

Сообщение loid » 15 май 2008, 09:51

А как же с delay? Если вот так:
Код: Выделить всёРазвернуть
int x=10;
// некоторый код
delay_ms(x);
// некоторый код


в этом случае всё работает, но если поменять ms на us:
Код: Выделить всёРазвернуть
int x=10;
// некоторый код
delay_us(x);
// некоторый код


выдаёт ошибку L131:must be constant expression

как понять, это недоработка функции delay?
Аватара пользователя
loid
 
Сообщения: 349
Зарегистрирован: 16 окт 2007, 11:57
Откуда: Минycинck

Re: Нужна помощь по СИ.

Сообщение Master » 15 май 2008, 09:55

Да.
Аватара пользователя
Master
 
Сообщения: 4468
Зарегистрирован: 21 дек 2006, 19:56
Откуда: Украина, г.Одесса
прог. языки: Delphi и С

Re: Нужна помощь по СИ.

Сообщение loid » 15 май 2008, 10:08

Доделать эту функцию никак?
Аватара пользователя
loid
 
Сообщения: 349
Зарегистрирован: 16 окт 2007, 11:57
Откуда: Минycинck

Re: Нужна помощь по СИ.

Сообщение Digit » 15 май 2008, 10:23

Loid, использу тег [code] в сообщениях, чтоб листинги вставлять.

лучше [code=cpp]
злой полицейский
Аватара пользователя
Digit
 
Сообщения: 3339
Зарегистрирован: 27 ноя 2004, 00:42
Откуда: совсем Москва
ФИО: Григорий

Re: Нужна помощь по СИ.

Сообщение Master » 15 май 2008, 10:52

loid писал(а):Доделать эту функцию никак?

Никак, можно выкрутится вот так.
Вот как вывести Х наносекунд
Код: Выделить всёРазвернуть
for (i=1; i<Х; i++) {delay_us(1);}
Аватара пользователя
Master
 
Сообщения: 4468
Зарегистрирован: 21 дек 2006, 19:56
Откуда: Украина, г.Одесса
прог. языки: Delphi и С

Re: Нужна помощь по СИ.

Сообщение loid » 15 май 2008, 14:01

Master, спасибо за совет, это единственный вариант. Об этом уже думал. Хотелось покороче написать.
Аватара пользователя
loid
 
Сообщения: 349
Зарегистрирован: 16 окт 2007, 11:57
Откуда: Минycинck

Re: Нужна помощь по СИ.

Сообщение Digit » 15 май 2008, 14:07

Loid, ты только учитывай, что на организацию цикла нужно время, т.е. на каждую заданную таким вот макаром микросекунду будет капать ошибка (дополнительное время на операцию сложения и проверку условия).
злой полицейский
Аватара пользователя
Digit
 
Сообщения: 3339
Зарегистрирован: 27 ноя 2004, 00:42
Откуда: совсем Москва
ФИО: Григорий

Re: Нужна помощь по СИ.

Сообщение Сергей » 15 май 2008, 14:17

Вот написан пример специально доступный и спросить можно меня если чо viewtopic.php?f=4&t=3993
Сергей
 
Сообщения: 3744
Зарегистрирован: 29 дек 2004, 23:15
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей

Re: Нужна помощь по СИ.

Сообщение denissyslo » 15 май 2008, 14:27

ДА, ДИДЖИТ точно сказал = на такиеоперации тоже надо время. И эта ошибка СУЩЕСТВЕННА при 10 мкс-х и пренебрегать й нельзя. надо отлаживать в вмлабе. тов авр описал как им пользоваться в своем курсе -почитайте, не поленитесь.

делау - гавно, много всяких загвоздокс этим делау....

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

В помощь начинающим могу предложить вот что: viewtopic.php?f=2&t=4039

это я написал для нвичков. код управления 6 сервами на таймере с моими подробными пояснениями. пользуйтесь
краткая биография: родился в роддоме - учился на учебе - служил на службе - работал на работе.....
Аватара пользователя
denissyslo
 
Сообщения: 191
Зарегистрирован: 17 дек 2007, 15:39
Откуда: г. Комсмольск-на-Амуре / п.Светлая
ФИО: Денис Сусло

Пред.

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

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

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