Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.01.2011, 19:36   #1
V0lk
 
Регистрация: 04.01.2011
Сообщений: 3
Восклицание ШИМ для шагового двигателя

Люди, знающие ассемблер пожалуйста помогите! мне нужно чтобы программа выдавала в порт D4 (контроллера ATmega 16) прямоугольный сигнал с частотой 488Гц (это предделитель 64) Скважностью 50%, допустим 5000 раз, т.е. 5000 дискрет для шагового двигателя, а потом уходить на действие Next2. Я вот тут кое что налепил, но оно по моему не работает. Пожалуйста проверьте, подскажите, помогите. Заранее спасибо!
Код:
Timer0_OV:   PUSHF
         PUSH   R17
         PUSH   R18
         PUSH   R19
      
         INCM   TCNT

         POP   R19
         POP   R18
         POP   R17
         POPF

         RETI
; End Interrupts ==========================================


Reset:      LDI    R16,Low(RAMEND)   ; Инициализация стека
          OUT    SPL,R16         ; Обязательно!!!

          LDI    R16,High(RAMEND)
          OUT    SPH,R16
   


; Internal Hardware Init  ======================================
         SETB   DDRD,4,R16   ; DDRD.4 = 1
         SETB   TIMSK,TOIE0,R16      ; Разрешаем прерывание

OUTI    TCCR1A,2<<COM1A0|2<<COM1B0|0<<WGM11|1<<WGM10   
OUTI    TCCR1B,0<<WGM13|1<<WGM12|011<<CS10        ;Предделитель =64

CLI
   OUTI   OCR1BH,0  ; Скважность 50%
   OUTI   OCR1BL,128
SEI


; Main =========================================================

Next:      LDS      R16,TCNT   ; Грузим числа в регистры
              LDS      R17,TCNT+1

         CPI      R16,0x13   ; Сравниванем побайтно
         BRCS   NoMatch
         CPI      R17,0x88
         BRCS   NoMatch

; Если совпало то отключаем таймер и идем к следующему шагу
Match:      OUTI   TCCR0,0<<CS00   

; Теперь надо обнулить счетчик, иначе за эту же итерацию главного цикла
; Мы сюда попадем еще не один раз -- таймер то не успеет натикать 255 значений
; чтобы число в первых двух байтах счетчика изменилось.

         CLR      R16            ; Нам нужен ноль
         OUTU   TCNT0,R16      ; Ноль в счетный регистр таймера
         STS      TCNT,R16      ; Ноль в первый байт счетчика в RAM
         STS      TCNT+1,R16      ; Ноль в второй байт счетчика в RAM
         STS      TCNT+2,R16      ; Ноль в третий байт счетчика в RAM
         STS      TCNT+3,R16      ; Ноль в первый байт счетчика в RAM
                       JMP Next2
; Не совпало - не делаем :)
NoMatch:   NOP

         INCM   CCNT         ; Шарманка вращается дальше, вхолостую

         JMP      Next

Next2:
NOP

Последний раз редактировалось V0lk; 04.01.2011 в 19:40.
V0lk вне форума Ответить с цитированием
Старый 04.01.2011, 20:38   #2
Valio
Сливочное масло
Участник клуба
 
Аватар для Valio
 
Регистрация: 01.01.2011
Сообщений: 1,149
По умолчанию

Попробуй поковырять исходники готовых проектов

http://robozone.su/2009/01/05/kontro...atelja-na.html

хороший сайт...
Сливочное масло Valio - компиляция как по маслу
Valio вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
разработка ПО для создания АСУ электрического двигателя Joslen_bomon Микроконтроллеры, робототехника, схемотехника, 3D принтеры 11 16.05.2010 22:42
Включить двойную буферизацию для формы в VBA для MsAccess 2003 dplz Microsoft Office Access 0 16.05.2010 17:00
составить функцию для вычисления значения y=P(x) многочлена для заданного аргумента x KASPEER Помощь студентам 2 12.01.2010 15:03
Программа для диагностики двигателя на автомобиле фЁдОр Общие вопросы Delphi 15 24.12.2008 08:53
Бесплатный движок для САЙТА на Java Script для Бесплатных Хостингов антигерой HTML и CSS 0 15.04.2007 21:39