Технический форум по робототехнике.
setar » 04 фев 2005, 18:48
По просьбам трудящихся выкладываю пример кода программы шим управления сервой.
- Код: Выделить всё • Развернуть
.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
А можно по просьбам трудящихся сишную версию выложить? Правда до серв мне еще далеко, но велосипед изобретать не хочется, а в асме я мало что понимаю... =(
setar » 07 фев 2005, 11:53
-= Александр =- писал(а):А можно по просьбам трудящихся сишную версию выложить? Правда до серв мне еще далеко, но велосипед изобретать не хочется, а в асме я мало что понимаю... =(
Сам в Си ШИМ я не писал (надобности не было), но примеры видел, попадутся под руку - обязательно выложу.
Vovan » 14 фев 2006, 14:03
To Setar: пост от 04.02.2005 -
<P.S. Здесь в примечаниях в принципе всё понятно, чуть позже оформлю в виде готовой обучающей статьи.> - и когда же енто обещание выполнится?

Очень хотелось бы, аж спать не могу и кушать тоже

... А если серьёзно - созрел, очень нуждаюсь в подробностях,
или ссылочку где всё "разжёвано", тока не на сях...
___________
С уважением
Vovan
avr123.nm.ru » 14 фев 2006, 14:46
лучше напрвится в соответсвующий топик - там уж 100 сылок выложили по ШИМу и управлению сервами,
а тут все новые топики открываются зачемто.
Естественно кому нужно фиг что найдет.
информацию нужно не распылять по форуму а концентрировать по темам !
В правилах форума этого нет ? не читали ?
Vovan » 14 фев 2006, 17:38
А где я новый топик открыл? По теме и продолжаю! В чём моя вина?
Зачем же так-то?
Очень огорчён, несправедливым укором
ЗЫ: не я один интересуюсь, нас тут три человека, а может ещё кто-то созреет, а Вы нас всех фэйсом об тэйбл... А уж если что-то не по правилам или не по-теме для этого, наверное, есть админы, модеры и т.д. Тут по сто раз спрашивают по ваще элемнтарным вопросам - и ничего.... А если Вам лично чем-то не угодил вопрос - это не даёт Вам права посылать меня (нас)... Вы, кстати, не первый раз мои вопросы закрываете своими репликами - я протестую, имейте терпение и такт.
___________
С уважением
Vovan
avr123.nm.ru » 14 фев 2006, 21:49
Vovan писал(а):А где я новый топик открыл? По теме и продолжаю! В чём моя вина?
Зачем же так-то?
извини, ты не правильно меня понял !
я ж без цитирования высказался!
т.е. к автору топика ессно!
и я не обвинял а просто сказал что лучше не распылять инфу по новым топикам.
Vovan » 14 фев 2006, 22:04
А какие претензии к автору?
Автор = админ
Топик создан задолго до Вашей регистрации на форуме (Вы на дату посмотрите).
И убедительная просьба не перекрывайте своим постом, если он не несёт никакой информации, мой пост, пожалуйста...
Пусть повесИт вопросик, авось кто-то откликнется, а так мы только засоряем форум, что вопрос забывается.
А меня интересуют подробные подробности на асме по ШИМ для АВРов. Если у кого-нибудь есть что-то, пожалуйста, поделитесь.
___________
С уважением
Vovan
avr123.nm.ru » 14 фев 2006, 23:13
Vovan писал(а):А какие претензии к автору?
Вован, успокойтесь!
где в моих словах вы увидели претензии ???
там был вопрос и мое мнение !
Vovan » 14 фев 2006, 23:45
Первая ссылочка не пашет
А во второй на Си...
На Си у меня траблов нет, но сложилась ситуация (не вдаюсь в подробности), нужно проработать ШИМ на асме...
В форуме - это единственный код по ШИМу на асме, но там много непонятно... Хочется ведь разобраться и пользоваться, поэтому и нашёл енту темку (в форуме с темой ШИМ) и интересуюсь сим... Тем более, что автор кода обещал поподробнее описАть...Ну не будет ответа - что ж поделаешь...
___________
С уважением
Vovan
Vovan » 14 фев 2006, 23:53
Sorry

первая тоже заработала, видимо был сбой...
Хорошо

, вопрос снимаю...
Никак не удаётся мне у форума спросить что-либо...
Обидно...

но ухожу...
ЗЫ: ведь просил же, вежливо вроде, не закрывать пост с вопросом...ммм...да-с кому-то всё можно, а кому-то...

avr123.nm.ru » 15 фев 2006, 11:09
Vovan писал(а):
нужно проработать ШИМ на асме...
ну дак и прочитай 1-ю стр курса ! там написано где взять исходники на асме !