Сейчас на форуме: Magister Yoda, vasilevradislav, tyns777, zombi-vadim (+3 невидимых)

 eXeL@B —› Программирование —› Помогите с контроллером на ассемблере
Посл.ответ Сообщение


Ранг: 529.0 (!), 110thx
Активность: 0.290.04
Статус: Участник
5KRT

Создано: 12 июня 2008 21:49
· Личное сообщение · #1

Вот код:

org 0h ; переход по адресу 0h
jmpa cc_UC,start ; безусловный переход на метку start
org 98h ; переход по адресу 98h
jmpa cc_UC, IntT6INT ; безусловный переход на метку IntT6INT
org 300h ; переход по адресу 300h
start:
calla cc_UC,initT6 ; вызов подпрограммы без дополнительных условий
mov r5, #0
LOOP: nop ; пустая операция
cmp r5, #250
jmpa cc_Z, END ; безусловный переход на метку LOOP
mov r2,p8
mov r1, #0f038h
exts 0ffh,1
mov [r1],r2
mov buscon2, #004C0h ;Максимальное замедление.
jmpa cc_UC,LOOP
END:
mov r6, #0
org 1068h ; переход по адресу 1068h
IntT6INT:
add r5,#1 ; содерхимое Т6 заносим в регистр r1
reti
; безусловный переход на метку start
initT6:
bclr T6CON.6 ; запретить прерывание Т6 ::: bclr - очистка бита :::
movb T6IC,#01111111b
mov CAPREL,#15536
mov t6,#15536
mov T6CON,#1000000001000000b
bset PSW.11
ret

это программа программирующая таймер c167 режим работы по прерываниям, а надо по ожиданию прерывания сделать.

-----
Research For Food





Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 13 июня 2008 03:08
· Личное сообщение · #2

daFix пишет:
это программа программирующая таймер c167 режим работы по прерываниям, а надо по ожиданию прерывания сделать.

Я никогда не видел этот проц, но в принципе, что ты хочешь сделать? Прочитал предложение - не понимаю что ты спрашиваешь. Ты хочешь ждать прерывания таймера крутя цикл? Или наоборот, крутить цикл не запрашивая прерывание? Или ты спрашиваешь как запросить прерывание таймера?



Ранг: 11.5 (новичок)
Активность: 0.010
Статус: Участник

Создано: 13 июня 2008 07:49 · Поправил: btCode
· Личное сообщение · #3

daFix пишет:
org 0h ; переход по адресу 0h


org не выполняет перехода, она указывает по какому адресу разместить следующий за ней код.

daFix пишет:
jmpa cc_UC,start ; безусловный переход на метку start

интересная конструкция, почему в переходе указаны две метки?

про этот процессор идет речь?
--> C167 datasheet <-- http://www.datasheetsite.com/datasheet/C167
--> Infineon C167-LM datasheet <-- http://www.keil.com/dd/chip/2913.htm




Ранг: 529.0 (!), 110thx
Активность: 0.290.04
Статус: Участник
5KRT

Создано: 13 июня 2008 21:18
· Личное сообщение · #4

s0larian
Крутить цикл не запрашивая прерывания

btCode
Конструкция непонятная, потому как рпога готовая была, иникто объяснить
не может что да как, а про процецессор ты верно спросил...

-----
Research For Food





Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 13 июня 2008 21:34
· Личное сообщение · #5

daFix пишет:
Крутить цикл не запрашивая прерывания

Тогда тебе надо найти инструкцию которая возвращает tick counter из спец. регистра. В спеке будет сказано столько этих ticks в секунду для конкретной частоты кристала. Пишешь маленькую ф-цию которая получает, скажем, милисекунды в регистре, считывает tick counter, пересчитывает милисекунды в ticks и крутит такой цикл:

while (get_tick() < finish)
;





Ранг: 529.0 (!), 110thx
Активность: 0.290.04
Статус: Участник
5KRT

Создано: 13 июня 2008 21:50
· Личное сообщение · #6

А кто работал с этим процессором? Можете накатать эту функцию? Завтра уже надо сдать

-----
Research For Food



 eXeL@B —› Программирование —› Помогите с контроллером на ассемблере
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати