roboforum.ru

Технический форум по робототехнике.
Текущее время: 21 май 2025, 02:45

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




Начать новую тему Ответить на тему  [ Сообщений: 30 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Нужна помощь по СИ.
СообщениеДобавлено: 16 апр 2008, 15:11 
Не в сети
Аватара пользователя

Зарегистрирован: 17 дек 2007, 15:39
Сообщения: 191
Откуда: г. Комсмольск-на-Амуре / п.Светлая
ФИО: Денис Сусло
Читать: "Си для микроконтроллеров" и он-лайн книга "Язык Си" Кергниган Ричи < avr123.nm.ru >

Извиняюсь за абсолютно глупый вопрос для некоторых, но тем не менее для меня важный.
рулю сервой по следующему алгоритму:
PORTA.1=0;
delay_us(1400);
PORTA.1=0;
delay_us(18600);
решил одернизировать что бы было так:
PORTA.1=0;
delay_us(S0);
PORTA.1=0;
delay_us(20000-S0);
т.е. плавным изменением переменной S0 управлять углом. Почитал 5 страницу нашей "библии", обе :)
для этого объявил переменную
unsigned int S0=1400; //Серва поворота

после чего компилятор подчеркивает строку
delay_us(S0);

и пишет:
must be constant expression

так вот, где грабли??? это, что задержка может быть только цифрой задана????

_________________
краткая биография: родился в роддоме - учился на учебе - служил на службе - работал на работе.....


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь по СИ.
СообщениеДобавлено: 16 апр 2008, 15:34 
Не в сети
Аватара пользователя

Зарегистрирован: 21 дек 2006, 19:56
Сообщения: 4468
Откуда: Украина, г.Одесса
прог. языки: Delphi и С
Нет, я задавал переменной странно. А ты библиотеку delay.h подключал.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь по СИ.
СообщениеДобавлено: 16 апр 2008, 15:43 
Не в сети
Аватара пользователя

Зарегистрирован: 17 дек 2007, 15:39
Сообщения: 191
Откуда: г. Комсмольск-на-Амуре / п.Светлая
ФИО: Денис Сусло
#include <mega16.h>
#include <delay.h>

да. Выше кусок из кода. просто заменял S0 на любую цифру, нажимаю F9 - отлично...странно

_________________
краткая биография: родился в роддоме - учился на учебе - служил на службе - работал на работе.....


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь по СИ.
СообщениеДобавлено: 16 апр 2008, 15:47 
Не в сети
Аватара пользователя

Зарегистрирован: 21 дек 2006, 19:56
Сообщения: 4468
Откуда: Украина, г.Одесса
прог. языки: Delphi и С
Юзай delay_ms();
просто вместо 14000 пиши 14 и все


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь по СИ.
СообщениеДобавлено: 16 апр 2008, 15:48 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
эмм
господа
а компилятор дэлэй вычисляет nop'ами чтоли?


тоесть в асмовый листинг вбивается нужное количество нопов вместо дэлэя???

если так то понятно почему не работает...

_________________
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь по СИ.
СообщениеДобавлено: 16 апр 2008, 15:55 
Не в сети
Аватара пользователя

Зарегистрирован: 17 дек 2007, 15:39
Сообщения: 191
Откуда: г. Комсмольск-на-Амуре / п.Светлая
ФИО: Денис Сусло
Цитата:
Юзай delay_ms();
просто вместо 14000 пиши 14 и все


Ага...тогда серва не рулиться. Странно, но тогда 14.5 = 15....пофиг, т.е. тогда серву ожно повернуть в 4 крайних положения - меня это не утравиает. Может таки не должно быть, но напрактике так.
работает мкросекунд

_________________
краткая биография: родился в роддоме - учился на учебе - служил на службе - работал на работе.....


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь по СИ.
СообщениеДобавлено: 16 апр 2008, 15:56 
Не в сети
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь по СИ.
СообщениеДобавлено: 16 апр 2008, 15:58 
Не в сети
Аватара пользователя

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


тоесть в асмовый листинг вбивается нужное количество нопов вместо дэлэя???

если так то понятно почему не работает...


АГА....а мне вообще стало ве непоняно нопы какие-то...:)
Лучше бы если было поятно, может и мне растолковали....

_________________
краткая биография: родился в роддоме - учился на учебе - служил на службе - работал на работе.....


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь по СИ.
СообщениеДобавлено: 16 апр 2008, 16:13 
Не в сети
Аватара пользователя

Зарегистрирован: 21 дек 2006, 19:56
Сообщения: 4468
Откуда: Украина, г.Одесса
прог. языки: Delphi и С
NOP - not operation - команда асемблера которая говорит МК ничего не делать за этот такт.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь по СИ.
СообщениеДобавлено: 16 апр 2008, 17:42 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
Master писал(а):
Вот к примеру здеся
http://roboforum.ru/viewtopic.php?f=35& ... %82#p51997
Там Дед писал код и использовал, переменные как и ты в Delay_us, но у него правда в куске кода не указан тип переменных.

код деда не работает тажа ошибка...

_________________
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь по СИ.
СообщениеДобавлено: 16 апр 2008, 20:32 
Не в сети

Зарегистрирован: 22 мар 2008, 21:01
Сообщения: 23
Откуда: Белгород
Skype: dackinevitch_yan
прог. языки: C/C++
Не надо использовать задержки для управления сервами! Это делается на таймерах.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь по СИ.
СообщениеДобавлено: 16 апр 2008, 23:18 
Не в сети
Аватара пользователя

Зарегистрирован: 04 фев 2008, 13:18
Сообщения: 1060
Откуда: Москва
прог. языки: PHP
Во я то же хотел сказать, разберитесь с таймерами и сможете обрабатывать задачи паралельно и выстовлять нужные задежки.
В CodeVisionAVR переферия настраивается через помошник элементарно.

Вот например:
Код:
#include <mega8.h>
//4МГц

char sim1 = 0;//пример семафора

// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
// Place your code here
//Пишем сюда короткий код.
//Например установка семафора.

sim1 = 1;

}

void initmain(void)
{
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 3,906 kHz//частота генерации прерываний
TCCR0=0x05;
TCNT0=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x01;

// Global enable interrupts
#asm("sei")
}

void main(void)
{
initmain();//активация таймера 0
while (1)
      {
      // Place your code here
      if(sim1)// семафора сработал
          {
          sim1 = 0;
         }
      };
}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь по СИ.
СообщениеДобавлено: 17 апр 2008, 00:34 
Не в сети
Аватара пользователя

Зарегистрирован: 15 сен 2007, 13:03
Сообщения: 6338
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович
Пишите на асме господа )

_________________
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь по СИ.
СообщениеДобавлено: 17 апр 2008, 05:42 
Не в сети
Аватара пользователя

Зарегистрирован: 17 дек 2007, 15:39
Сообщения: 191
Откуда: г. Комсмольск-на-Амуре / п.Светлая
ФИО: Денис Сусло
Добавлено спустя 6 минут 14 секунд:
А вообще не понимаю: Сервы очень распространены, многие их используют. А нигде нет инструкции как рулить ей с МК. Вот как тов.123АВР сделал - замутил сайт. Его спрашивают, а он - пошел туд-то (я не шучу, грамотно сделано).
вопросов этих куча как я посмотрю - новичок спрашивает - а как рулить - управление Серво SERVO - подробнейше рассказано с примеами для симуляции
http://avr123.nm.ru/z13.htm

_________________
краткая биография: родился в роддоме - учился на учебе - служил на службе - работал на работе.....


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь по СИ.
СообщениеДобавлено: 17 апр 2008, 10:30 
Не в сети
Аватара пользователя

Зарегистрирован: 15 сен 2007, 13:03
Сообщения: 6338
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович
в асме ничего страшного нету, все ясно.. прозрачно.. как вода ключевая ...
http://asm-avr.narod.ru/ Ассемблер для AVR на русском

но читать чей то код и правда хуже чем кодить по сравнению с си, хотя и в сях умудряются такого нагородить что за голову хватаешься

_________________
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"


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

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


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

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


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

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