roboforum.ru

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

проблема с реакцией на нажатие кнопок

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

Re: проблема с реакцией на нажатие кнопок

Сообщение hadok » 13 ноя 2009, 21:17

а как вообще сервомашинкой управлять? Меняем длительность импульса и всё?
Меня интересует, если в программе МК стоит, предположим, задержка _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;}}



}      
           

   }
Аватара пользователя
hadok
 
Сообщения: 166
Зарегистрирован: 06 июн 2005, 02:27
Откуда: Минск, Лида

Re: проблема с реакцией на нажатие кнопок

Сообщение milkpower » 13 ноя 2009, 22:07

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

Re: проблема с реакцией на нажатие кнопок

Сообщение =DeaD= » 13 ноя 2009, 22:10

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

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

Re: проблема с реакцией на нажатие кнопок

Сообщение hadok » 14 ноя 2009, 00:38

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

Re: проблема с реакцией на нажатие кнопок

Сообщение =DeaD= » 14 ноя 2009, 00:49

шим выдаётся на ноги 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]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: проблема с реакцией на нажатие кнопок

Сообщение hadok » 14 ноя 2009, 01:01

не подскажешь на какую в моём случае ножку?

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

Добавлено спустя 9 минут 4 секунды:
хорошо, можешь написать пример период=500 мс отношение длительности 0/1 = 30%
Вложения
mega16.JPG
Аватара пользователя
hadok
 
Сообщения: 166
Зарегистрирован: 06 июн 2005, 02:27
Откуда: Минск, Лида

Re: проблема с реакцией на нажатие кнопок

Сообщение =DeaD= » 14 ноя 2009, 01:22

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

Re: проблема с реакцией на нажатие кнопок

Сообщение hadok » 15 ноя 2009, 23:06

не могу справиться с LPT портом....всё равно после включения порта МК перестаёт работать,
ножка reset в каком состоянии должна быть?

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

правильно ли я понимаю: после прошивания МК отключаем lpt порт и МК начинает работать по заложенной программе, и не нужно что-то дополнительно переключать???
Вложения
progsch.gif
мк mega16
Аватара пользователя
hadok
 
Сообщения: 166
Зарегистрирован: 06 июн 2005, 02:27
Откуда: Минск, Лида

Re: проблема с реакцией на нажатие кнопок

Сообщение =DeaD= » 16 ноя 2009, 00:26

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

Re: проблема с реакцией на нажатие кнопок

Сообщение SSG » 17 ноя 2009, 18:57

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

Re: проблема с реакцией на нажатие кнопок

Сообщение hadok » 18 ноя 2009, 12:58

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

Re: проблема с реакцией на нажатие кнопок

Сообщение milkpower » 18 ноя 2009, 14:30

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

Пред.

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

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

Сейчас этот форум просматривают: Google [Bot] и гости: 3