roboforum.ru

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

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




Начать новую тему Ответить на тему  [ Сообщений: 30 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Помогите с таймерами пожалуйста =)
СообщениеДобавлено: 10 янв 2010, 20:34 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Этот кусок не обязателен, но я бы оставил.

_________________
Читайте !


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с таймерами пожалуйста =)
СообщениеДобавлено: 10 янв 2010, 20:47 
Не в сети
Аватара пользователя

Зарегистрирован: 13 фев 2009, 18:37
Сообщения: 28
Откуда: Петрозаводск
Не работает, даже в цикл while(1) не заходит, странно, как такое вобще может быть?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с таймерами пожалуйста =)
СообщениеДобавлено: 10 янв 2010, 20:57 
Не в сети
Аватара пользователя

Зарегистрирован: 23 окт 2007, 22:03
Сообщения: 3037
Откуда: Москва
прог. языки: С
ФИО: Евгений Яковец
Цитата:
Не работает, даже в цикл while(1) не заходит, странно, как такое вобще может быть?

Как определили?
Цитата:
при этом загораются соответствующие светодиоды на выходах PORTB=00010001

А как, простите светодиоды будут зажигаться, если весь портБ на вход сконфигурирован?

_________________
- Этот человек - не человек! это робот!
- Как? уже делают?!
- Делают!!!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с таймерами пожалуйста =)
СообщениеДобавлено: 10 янв 2010, 21:16 
Не в сети
Аватара пользователя

Зарегистрирован: 13 фев 2009, 18:37
Сообщения: 28
Откуда: Петрозаводск
Ой, ошибочка, в цикл заходит (перепутал название порта с диодами) но ШИМ как то неправильно работает, серво стоит на месте
Попробую чуть позже подключить осциллограф и посмотреть какой сигнал на выводе таймера

Добавлено спустя 1 минуту 2 секунды:
Поправил код программы

Добавлено спустя 8 минут 25 секунд:
сейчас светодиоды горят в зависимости от кнопки, значит соответственно уменьшается или увеличивается регистр OCR


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с таймерами пожалуйста =)
СообщениеДобавлено: 10 янв 2010, 21:18 
Не в сети
Аватара пользователя

Зарегистрирован: 23 окт 2007, 22:03
Сообщения: 3037
Откуда: Москва
прог. языки: С
ФИО: Евгений Яковец
Цитата:
Прога должна при нажатии кнопки перегонять серво постепенно из крайнего левого в крайнее правое положение

Постепенно - это как? если ни таймер не задействован, ни временные задержки. При тактовой частоте 1МГц, 110 тактов пролетят и глазом не успеешь моргнуть...

_________________
- Этот человек - не человек! это робот!
- Как? уже делают?!
- Делают!!!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с таймерами пожалуйста =)
СообщениеДобавлено: 10 янв 2010, 21:55 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Рекомендую PROTEUS !

_________________
Читайте !


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

Зарегистрирован: 13 фев 2009, 18:37
Сообщения: 28
Откуда: Петрозаводск
Спасибо =) попробую разобраться, а что лучше-протеус или VMLAB ?

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

Ну ладно , ладно =) хоть и не постепенно, но должно менять состояние сервы из одного положения в другое, притом когда отпускаю должно все обратно вставать) но этого не происходит. Даже 2 раза серва заработала , но не реагировала на кнопку (в отличае от светодиодов) , но всеголишь 2 раза, при неизменном коде прошивки. Искал отстающие контакты и все такое-не нашел. Что-то тут не так.


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

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
PROTEUS конечно более продвинут но он большой а VMLAB просто маленький.

_________________
Читайте !


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с таймерами пожалуйста =)
СообщениеДобавлено: 10 янв 2010, 23:08 
Не в сети
Аватара пользователя

Зарегистрирован: 23 окт 2007, 22:03
Сообщения: 3037
Откуда: Москва
прог. языки: С
ФИО: Евгений Яковец
Ramzez писал(а):
Даже 2 раза серва заработала , но не реагировала на кнопку (в отличае от светодиодов) , но всеголишь 2 раза, при неизменном коде прошивки.

Телепаты в отпуске, поэтому точную схему и последнюю прошивку в студию пожалуйста :)

_________________
- Этот человек - не человек! это робот!
- Как? уже делают?!
- Делают!!!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с таймерами пожалуйста =)
СообщениеДобавлено: 10 янв 2010, 23:53 
Не в сети
Аватара пользователя

Зарегистрирован: 13 фев 2009, 18:37
Сообщения: 28
Откуда: Петрозаводск
Вложение:
МК.jpg
МК.jpg [ 140.23 КиБ | Просмотров: 1443 ]

Код:
#define F_CPU 1000000UL  // 1 MHz
   #include <avr/io.h>
   #include <avr/interrupt.h>

// Declare your global variables here

void main(void)
{

PORTD=0x00;     
DDRD=0x20;    //выход таймера
DDRA = 0xff; //выходы
DDRB=0x00; //входы
PORTB=0b00000001 ;  //pull-up на нулевую ногу

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 125,000 kHz
// Mode: Normal top=FFFFh
// OC1A output: Set
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0xC0;
TCCR1B=0x02;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x09;
ICR1L=0xc4;
OCR1AH=0x00;
OCR1AL=0xBC;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;

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

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

while (1)
{

while(PINB & 0x01 != 0) {     
if (OCR1AL<250)
{
OCR1AL++;
PORTA = 0b00000001;
}

}

if (OCR1AL>140)
{
OCR1AL--;
PORTA=0b00010000;
}
}
}


Добавлено спустя 2 минуты 24 секунды:
вот так вот все и обстоит, и не работает =)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с таймерами пожалуйста =)
СообщениеДобавлено: 11 янв 2010, 00:09 
Не в сети
Аватара пользователя

Зарегистрирован: 23 окт 2007, 22:03
Сообщения: 3037
Откуда: Москва
прог. языки: С
ФИО: Евгений Яковец
Ужос! :shock:
А нормальной схемы нет?
Ну на вскидку:
1. портА не запитан.(пин 30,32 на +5в надо).
2. Резистор на кнопке не нужен.
3. Ёмкости на питание есть? керамика и электролит должен стоЯть.
4. Питание стабильно? (чем питаемся?)

_________________
- Этот человек - не человек! это робот!
- Как? уже делают?!
- Делают!!!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с таймерами пожалуйста =)
СообщениеДобавлено: 11 янв 2010, 00:23 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
2. я считаю что нужен, но небольшой 150-560 Ом.

31 и 11 надо соединить и конденсаторы добавить и серву я бы отдельно питал от батарейки иль еще как.

_________________
Читайте !


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с таймерами пожалуйста =)
СообщениеДобавлено: 11 янв 2010, 02:03 
Не в сети
Аватара пользователя

Зарегистрирован: 13 фев 2009, 18:37
Сообщения: 28
Откуда: Петрозаводск
Питаю от компа, USB. Сопротивление для кнокпи нужно на всякий случай, если в том или ином коде забуду поставить порт на вход,чтобы не спалить все. Конденсаторы хз, нужны или нет, если иточник питания до 40 ампер? броски по питанию не надо сглаживать, все в БП предусмотрено, а вот помехи не знаю, их надо керамикой или нет?
Скажите пожалуйста , зачем нужны ножки 30 и 32, обязательно ли их подключать? (все и так работало, свтодиоды мигали, серва управлялась (программно, без таймера))

Добавлено спустя 6 минут 48 секунд:
кстати чем схема то не понравилась?)) все понятно, все ясно)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с таймерами пожалуйста =)
СообщениеДобавлено: 11 янв 2010, 08:24 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Сопротивление ко всем ногам МК - это ОЧЕНЬ ПРАВИЛЬНО для начинающих и продолжающих если не мешает работе схемы.

30 это аналоговое питание и его надо подключить к питанию.

32 это опорное напряжение - подключать не обязательно, можно просто конденсатором 0.1 uF заземлить если используете АЦП.

"Устройство микроконтроллера AVR на русском языке" - http://proavr.narod.ru/02.htm - найдите время почитать ВНИМАТЕЛЬНО !

_________________
Читайте !


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с таймерами пожалуйста =)
СообщениеДобавлено: 11 янв 2010, 12:04 
Не в сети
Аватара пользователя

Зарегистрирован: 23 окт 2007, 22:03
Сообщения: 3037
Откуда: Москва
прог. языки: С
ФИО: Евгений Яковец
Ramzez писал(а):
если иточник питания до 40 ампер

Ого! :shock: Где это из USB 40 ампер выходит? Обычно 0,5А не более, поэтому ёмкости крайне желательны.

_________________
- Этот человек - не человек! это робот!
- Как? уже делают?!
- Делают!!!


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

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


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

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


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

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