roboforum.ru

Технический форум по робототехнике.
Текущее время: 02 дек 2024, 18:27

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




Начать новую тему Ответить на тему  [ Сообщений: 42 ]  На страницу Пред.  1, 2, 3
Автор Сообщение
 Заголовок сообщения: Re: проблема с реакцией на нажатие кнопок
СообщениеДобавлено: 13 ноя 2009, 21:17 
Не в сети
Аватара пользователя

Зарегистрирован: 06 июн 2005, 02:27
Сообщения: 166
Откуда: Минск, Лида
а как вообще сервомашинкой управлять? Меняем длительность импульса и всё?
Меня интересует, если в программе МК стоит, предположим, задержка _delay_us(100), насколько точно контроллер отработает это время?

Я написал простенький шим-генератор. Знаю, в МК есть свой встроенный, но там нельзя менять период импульсов, а только отношение длительностей 0 и 1, при подборе двигателей период может иметь значение. Не могу пока добраться до осцилографа, чтобы проверить насколько точно мой шим может изменять параметры импульсов.

вот кстати и алгоритм:

Код:
   #include <avr/io.h>
   #include <util/delay.h>
   #define F_CPU 8000000UL 
   
  float d,del1,del2,d2,T;
  int i;
 
int main(void) {   
   
   DDRD = 0xff;         
   DDRC = 0xff;         
   DDRA = 0x00;         
 
  T=2000;               
  del1=1;               
  del2=T-del1;           
i=1;                   
d2=0.1;                 


 
while (1) {
if (i==1)               
{
PORTC=0X00;               

_delay_us(del1);           
PORTC=0XFF;
_delay_us(del2);
del2=T-del1;
del1=del1+d2;

if (del1>T) {i=0;PORTD=0X0F;_delay_ms(100);}}

if (i==0) 

  {
PORTC=0X00;

_delay_us(del1);
PORTC=0XFF;
_delay_us(del2);
del2=T-del1;
del1=del1-d2;

if (del1<2) {i=1;_delay_ms(3000);PORTD=0XF0;}}



}      
           

   }


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: проблема с реакцией на нажатие кнопок
СообщениеДобавлено: 13 ноя 2009, 22:07 
Не в сети
Аватара пользователя

Зарегистрирован: 25 мар 2009, 13:57
Сообщения: 217
Откуда: Ростов-на-Дону
ФИО: Виктор
хм, в С не силен, но насколько я понимаю, твой шим будет работать только в том виде что ты написал, если заставить МК делать еще что-нибудь, то частота будет плавать, и чем больше МК занят, тем больше паузы будут между импульсами.
нужно делать программный шим на таймере.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: проблема с реакцией на нажатие кнопок
СообщениеДобавлено: 13 ноя 2009, 22:10 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
hadok писал(а):
Я написал простенький шим-генератор. Знаю, в МК есть свой встроенный, но там нельзя менять период импульсов, а только отношение длительностей 0 и 1, при подборе двигателей период может иметь значение.

Это вам кто такую ерунду сказал?

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: проблема с реакцией на нажатие кнопок
СообщениеДобавлено: 14 ноя 2009, 00:38 
Не в сети
Аватара пользователя

Зарегистрирован: 06 июн 2005, 02:27
Сообщения: 166
Откуда: Минск, Лида
а как вообще можно поменять период в шим-генераторе?
и ещё пару вопросов по шиму: импульсы можно выдавать только на определённые ножки или на любые выводы портов?
Как запускать шим на мк mega16


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: проблема с реакцией на нажатие кнопок
СообщениеДобавлено: 14 ноя 2009, 00:49 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
шим выдаётся на ноги OCRxx

Добавлено спустя 4 минуты 53 секунды:
Пример настройки ШИМа на ATMega32 из моего кода лайнтрейсера при частоте кварца 7.3728Мгц:

//PWM, Phase and frequency correct, TOP=ICR1
TCCR1A=0xA0; //clear on up-counting, set on down-counting
TCCR1B=0x11; //Clock prescaler 1/1
ICR1=740; //Set 5000Hz frequency
PORTB=0x00;
OCR1A=0;
OCR1B=0;

ICR - это до куда счетчик крутится и начинается сначала (меняя его и Prescaler - меняем как раз частоту\период)
А меняя OCR1A, OCR1B - меняем скважность (тут пока 0).

Добавлено спустя 52 секунды:
Ну и там еще ноги выставить на выход соотв. OCR1A, OCR1B которые.

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: проблема с реакцией на нажатие кнопок
СообщениеДобавлено: 14 ноя 2009, 01:01 
Не в сети
Аватара пользователя

Зарегистрирован: 06 июн 2005, 02:27
Сообщения: 166
Откуда: Минск, Лида
не подскажешь на какую в моём случае ножку?

Добавлено спустя 30 секунд:
ага.....уже вижу

Добавлено спустя 9 минут 4 секунды:
хорошо, можешь написать пример период=500 мс отношение длительности 0/1 = 30%


Вложения:
mega16.JPG
mega16.JPG [ 32.29 КиБ | Просмотров: 1295 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: проблема с реакцией на нажатие кнопок
СообщениеДобавлено: 14 ноя 2009, 01:22 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Э нет, я не кодевизард, тут уж сами смотрите как Prescaler выставлять и как ICR от вашей частоты, которую вы даже не сказали.

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: проблема с реакцией на нажатие кнопок
СообщениеДобавлено: 15 ноя 2009, 23:06 
Не в сети
Аватара пользователя

Зарегистрирован: 06 июн 2005, 02:27
Сообщения: 166
Откуда: Минск, Лида
не могу справиться с LPT портом....всё равно после включения порта МК перестаёт работать,
ножка reset в каком состоянии должна быть?

схему программатора использовал эту

правильно ли я понимаю: после прошивания МК отключаем lpt порт и МК начинает работать по заложенной программе, и не нужно что-то дополнительно переключать???


Вложения:
Комментарий к файлу: мк mega16
progsch.gif
progsch.gif [ 10.57 КиБ | Просмотров: 1268 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: проблема с реакцией на нажатие кнопок
СообщениеДобавлено: 16 ноя 2009, 00:26 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Ресет в рабочем состоянии подтянут к питанию, вытащи МК и проверь, куда её порт тянет?

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: проблема с реакцией на нажатие кнопок
СообщениеДобавлено: 17 ноя 2009, 18:57 
Не в сети
Аватара пользователя

Зарегистрирован: 15 янв 2007, 19:23
Сообщения: 1058
Откуда: Беларусь, Барановичи
прог. языки: С для МК, Delphi для ПК
Да спаяй ты себе обыкновенные пять проводков и не мучайся :)
А ножки на рисунке есть (PD4 и PD5).

_________________
I live My life!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: проблема с реакцией на нажатие кнопок
СообщениеДобавлено: 18 ноя 2009, 12:58 
Не в сети
Аватара пользователя

Зарегистрирован: 06 июн 2005, 02:27
Сообщения: 166
Откуда: Минск, Лида
Паял с пятью проводками....вообще всё было глухо, ни одна зашивающая прога не видела МК. А с микросхемой 74HC244 хотя бы Pony Prog зашивает. Но вот нет возможности прописать, чтобы МК использовал кварц внешний. Кварц у меня на 8 мегагерц. Но видно работает на родном 1 мегагерце.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: проблема с реакцией на нажатие кнопок
СообщениеДобавлено: 18 ноя 2009, 14:30 
Не в сети
Аватара пользователя

Зарегистрирован: 25 мар 2009, 13:57
Сообщения: 217
Откуда: Ростов-на-Дону
ФИО: Виктор
тут тебе поможет тема про фьюзы http://roboforum.ru/viewtopic.php?f=2&t=3363


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

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


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

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


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

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