roboforum.ru

Технический форум по робототехнике.
Текущее время: 26 ноя 2024, 21:15

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




Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: Пример программы управления сервом (ШИМ)
СообщениеДобавлено: 04 фев 2005, 18:48 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 04 окт 2004, 12:58
Сообщения: 10989
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко
По просьбам трудящихся выкладываю пример кода программы шим управления сервой.
Код:
.include "tn15def.inc"

;Interrupt vector table
rjmp init

;* Объявление переменных
.def  t1    = r19                  ;счетчик времени задержки

;* Задание значений
.equ  LOW   =  80                   ;короткий импульс
.equ  MED   =  150                   ;средний  импульс
.equ  HIGH  =  220                   ;длинный импульс

;* Определения
.equ  serv0    = PB1               ;серв0 на PB1

.org T0OVaddr                     ; Вектор прерывания по переполнению таймера0
rjmp start_pwm

;Main code
init:

; Установка таймера
; The Timer/Counter0 Control Register ? TCCR0
   ldi r16, (1<<CS02)                ; Установка timer0
   out TCCR0, r16                  ; CK/256 = 3906.25Гц = 0.000256 сек
; The Timer Counter 0 ? TCNT0
   ldi r16, 0xB2                  ; Загружаем счётчик числом 0xB2
   out TCNT0, r16                  ; получая переполнение каждые 20.032мс
; Output Compare Interrupt of Timer0
   ldi r16,1<<TOIE0                ; Разрешение прерывания
   out TIMSK,r16                   ; по переполнению таймера0

; Установка ног
   ldi r16, (1<<PB1)               ; Устанавливаем ногу PB1 как выход
   out DDRB, r16

   sei                           ; Разрешение глобальных прерываний
   
idle:                            ; основной цикл
;-------- можно использовать сон когда ничего не делаем --
;   ldi r16, (1<<SE)               ; Enable sleep
;   out MCUCR, r16
;   sleep
;----------------------------------------------------------
   NOP                           ; или отработку пустого цикла или других задач
   rjmp idle

start_pwm:
; Установка таймера
; The Timer/Counter0 Control Register ? TCCR0
   ldi r16, (1<<CS02)                ; Установка timer0
   out TCCR0, r16                  ; CK/256 = 3906.25Гц = 0.000256 сек
; The Timer/Counter Interrupt Flag Register ? TIFR
   ldi r16,1<<TOV0                  ; Видимо признак обработанного прерывания, не знаю нужен ли
   out TIFR,r16                  ; Clear TOV0/ clear pending interrupts
; The Timer Counter 0 ? TCNT0
   ldi r16, 0xB2                  ; Загружаем счётчик числом 0xB2
   out TCNT0, r16                  ; получая переполнение каждые 20.032мс
; Output Compare Interrupt of Timer0
   ldi r16,1<<TOIE0                ; Разрешение прерывания
   out TIMSK,r16                   ; по переполнению таймера0


; Пауза 1цикл=0.001мс  , для управления сервом нужна задержка от 800 до 2200 циклов
; что равняется 0.8мс и 2.2мс соответственно

      sbi      PORTB, serv0         ;запускаем импульс

      ldi   t1, MED                  ;установка длительности задержки, собственно это значение
                              ;и задаёт положение вала.
Delay:    
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      dec t1                     ;задержка по счетчику от t1 до 0
      brne Delay                  ;т.е. t1*10 тактов

      cbi      PORTB, serv0         ;гасим импульc

   reti


P.S. Здесь в примечаниях в принципе всё понятно, чуть позже оформлю в виде готовой обучающей статьи.

P.P.S ещё была версия с управлением сервы от 2х кнопочек право/лево, как найду выложу. Следующим логическим шагом приём значения положения вала по rs232 или i2с , до этого пока руки не дошли.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 06 фев 2005, 15:20 
Не в сети
Мастер Самоделкин
Аватара пользователя

Зарегистрирован: 11 окт 2004, 19:20
Сообщения: 3678
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич
А можно по просьбам трудящихся сишную версию выложить? Правда до серв мне еще далеко, но велосипед изобретать не хочется, а в асме я мало что понимаю... =(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 07 фев 2005, 11:53 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 04 окт 2004, 12:58
Сообщения: 10989
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко
-= Александр =- писал(а):
А можно по просьбам трудящихся сишную версию выложить? Правда до серв мне еще далеко, но велосипед изобретать не хочется, а в асме я мало что понимаю... =(

Сам в Си  ШИМ я не писал (надобности не было), но примеры видел, попадутся под руку - обязательно выложу.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 фев 2006, 14:03 
Не в сети
Аватара пользователя

Зарегистрирован: 05 окт 2005, 12:03
Сообщения: 3340
Откуда: Литва
прог. языки: asm
To Setar: пост от 04.02.2005 -
<P.S. Здесь в примечаниях в принципе всё понятно, чуть позже оформлю в виде готовой обучающей статьи.> - и когда же енто обещание выполнится? 8)  Очень хотелось бы, аж спать не могу и кушать тоже :D ... А если серьёзно - созрел, очень нуждаюсь в подробностях,
или ссылочку где всё "разжёвано", тока не на сях...
___________
С уважением
Vovan


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 фев 2006, 14:46 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
лучше напрвится в соответсвующий топик - там уж 100 сылок выложили по ШИМу и управлению сервами,

а тут все новые топики открываются зачемто.

Естественно кому нужно фиг что найдет.

информацию нужно не распылять по форуму а концентрировать по темам !

В правилах форума этого нет ?  не читали ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 фев 2006, 17:38 
Не в сети
Аватара пользователя

Зарегистрирован: 05 окт 2005, 12:03
Сообщения: 3340
Откуда: Литва
прог. языки: asm
А где я новый топик открыл? По теме и продолжаю! В чём моя вина?
Зачем же так-то?
Очень огорчён, несправедливым укором :cry:
ЗЫ: не я один интересуюсь, нас тут три человека, а может ещё кто-то созреет,  а Вы нас всех фэйсом об тэйбл... А уж если что-то не по правилам или не по-теме для этого, наверное, есть админы, модеры и т.д. Тут по сто раз спрашивают по ваще элемнтарным вопросам - и ничего.... А если Вам лично чем-то не угодил вопрос - это не даёт Вам права посылать меня (нас)... Вы, кстати, не первый раз мои вопросы закрываете своими репликами - я протестую, имейте терпение и такт.
___________
С уважением
Vovan


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 фев 2006, 21:49 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Vovan писал(а):
А где я новый топик открыл? По теме и продолжаю! В чём моя вина?
Зачем же так-то?


извини, ты не правильно меня понял !  

я ж без цитирования высказался!  

т.е. к автору топика ессно!

и я не обвинял а просто сказал что лучше не распылять инфу по новым топикам.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 фев 2006, 22:04 
Не в сети
Аватара пользователя

Зарегистрирован: 05 окт 2005, 12:03
Сообщения: 3340
Откуда: Литва
прог. языки: asm
А какие претензии к автору? :shock:
Автор = админ :)
Топик создан задолго до Вашей регистрации на форуме (Вы на дату посмотрите).
И убедительная просьба не перекрывайте своим постом, если он не несёт никакой информации, мой пост, пожалуйста...
Пусть повесИт вопросик, авось кто-то откликнется, а так мы только засоряем форум, что вопрос забывается.

А меня интересуют подробные подробности на асме по ШИМ для АВРов. Если у кого-нибудь есть что-то, пожалуйста, поделитесь.
___________
С уважением
Vovan


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 фев 2006, 23:13 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Vovan писал(а):
А какие претензии к автору? :shock:


Вован, успокойтесь!  

где в моих словах вы увидели претензии ???

там был вопрос и мое мнение !


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 фев 2006, 23:45 
Не в сети
Аватара пользователя

Зарегистрирован: 05 окт 2005, 12:03
Сообщения: 3340
Откуда: Литва
прог. языки: asm
Первая ссылочка не пашет :(
А во второй на Си... :(
На Си у меня траблов нет, но сложилась ситуация (не вдаюсь в подробности), нужно проработать ШИМ на асме...
В форуме - это единственный код по ШИМу на асме, но там много непонятно... Хочется ведь разобраться и пользоваться, поэтому и нашёл енту темку (в форуме с темой ШИМ) и интересуюсь сим... Тем более, что автор кода обещал поподробнее описАть...Ну не будет ответа - что ж поделаешь...
___________
С уважением
Vovan


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 фев 2006, 23:53 
Не в сети
Аватара пользователя

Зарегистрирован: 05 окт 2005, 12:03
Сообщения: 3340
Откуда: Литва
прог. языки: asm
Sorry :oops:  первая тоже заработала, видимо был сбой...
Хорошо :( , вопрос снимаю...
Никак не удаётся мне у форума спросить что-либо...
Обидно... :cry:  но ухожу...
ЗЫ: ведь просил же, вежливо вроде, не закрывать пост с вопросом...ммм...да-с кому-то всё можно, а кому-то... :arrow:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 15 фев 2006, 11:09 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Vovan писал(а):

нужно проработать ШИМ на асме...


ну дак и прочитай 1-ю стр курса ! там написано где взять исходники на асме !


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 12 ] 

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


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

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


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

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