Страница 104 из 400
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Пт сен 09, 2011 14:19:32
Engineer_Keen
Valek87 писал(а):Куда мне необходимо вставить эту программу, чтобы они (таймер и выше упомянутая) работали совместно?
Зависит от того, что нужно, чтобы программа делала. Можно хоть в конец флеша засунуть, чтобы она не выполнилась ни разу...
Код: Выделить всё
breq V4 ;breq - переход, если равно
rjmp F4
а чего не заменить на brne F4 ?
Кстати, там используется R17, а уже занят...
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Пт сен 09, 2011 14:35:17
Valek87
а чего не заменить на brne F4 ?
не. это требует программа.
Мне нужно, чтобы они работали параллельно. Мигал светодиод с опред.частотой (прог-ма ту, кот. мы обсуждали так долго) и эта подпрограммка.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Пт сен 09, 2011 14:39:16
GP1
Valek87 писал(а):
Мне нужно, чтобы они работали параллельно. Мигал светодиод с опред.частотой (прог-ма ту, кот. мы обсуждали так долго) и эта подпрограммка.
для этого нужно чтобы процессор был 2х ядерным
а вот выполнение основной программы с небольшими "перерывами" на прерывания (у тебя переключение светодиода) это сколько угодно
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Пт сен 09, 2011 15:01:46
Valek87
GP1 писал(а):для этого нужно чтобы процессор был 2х ядерным
это здесь причем?)))
GP1 писал(а):а вот выполнение основной программы с небольшими "перерывами" на прерывания (у тебя переключение светодиода) это сколько угодно
МОжно же программу изменить так, чтобы эти программы выполнялись одновременно?
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Пт сен 09, 2011 15:06:26
GP1
Valek87 писал(а):
МОжно же программу изменить так, чтобы эти программы выполнялись одновременно?
вот тут ты просто не понимаешь физики работы мк.
основная программа у тебя пустой цикл
Код: Выделить всё
;****************************************************
; ОСНОВНОЙ ЦИКЛ
;****************************************************
Inf:
rjmp Inf ;бесконечный цикл
в котором у тебя пока ничего кроме зацикливания хода выполнения не происходит, и лишь периодически, раз в 5 мс, переключается состояние светодиода (в прерывании)
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Пт сен 09, 2011 15:09:35
GP1
Valek87 писал(а):GP1 писал(а):для этого нужно чтобы процессор был 2х ядерным
это здесь причем?)))
при том, чтобы выполнять параллельно 2е программы в системе должно быть 2 ядра, всего лишь.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Пт сен 09, 2011 15:15:26
Valek87
Т
GP1 писал(а):Valek87 писал(а):
МОжно же программу изменить так, чтобы эти программы выполнялись одновременно?
вот тут ты просто не понимаешь физики работы мк.
основная программа у тебя пустой цикл
Код: Выделить всё
;****************************************************
; ОСНОВНОЙ ЦИКЛ
;****************************************************
Inf:
rjmp Inf ;бесконечный цикл
в котором у тебя пока ничего кроме зацикливания хода выполнения не происходит, и лишь периодически, раз в 5 мс, переключается состояние светодиода (в прерывании)
Так куда мне прописать команду
, чтобы подключить эту подпрограму?
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Пт сен 09, 2011 15:22:24
Engineer_Keen
Valek87 писал(а):а чего не заменить на brne F4 ?
не. это требует программа.
В данном случае эффект будет один и тот-же, но код будет меньше и работать будет быстрее.
Код: Выделить всё
cpi r17, 0b00000000 ;сравниваем с 0
breq V4 ;breq - переход, если равно на V4
rjmp F4 ;переход если не равно на F4
V4: ;код если равно
F4: ;код если не равно
=
Код: Выделить всё
cpi r17, 0b00000000 ;сравниваем с 0
brne F4 ;переход если не равно на F4
V4: ;код если равно
F4: ;код если не равно
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Пт сен 09, 2011 15:22:37
ploop
при том, чтобы выполнять параллельно 2е программы в системе должно быть 2 ядра, всего лишь.
И независимо от того, МК работает, или нормальный компьютер.
В данный момент времени может выполняться только один участок кода. Задача программиста - переключать эти участки в зависимости от логики программы, чтобы получить нужный результат.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Пт сен 09, 2011 15:29:57
Valek87
GP1 писал(а):ничего кроме зацикливания хода выполнения не происходит, и лишь периодически, раз в 5 мс, переключается состояние светодиода
А почему идет 5 мс, если настройки таймера выставлены на 1с?
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Пт сен 09, 2011 15:48:22
Engineer_Keen
Valek87 писал(а):
А почему идет 5 мс, если настройки таймера выставлены на 1с?
Это
GP1 для наглядности сказал. При таких настройках, как я уже говорил, на скорости 8MHz получается 5 секунд (подпрограмма вызывается раз в 2.5с).
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Сб сен 10, 2011 11:17:06
IfoR
GP1 писал(а):Valek87 писал(а):
это здесь причем?)))
при том, чтобы выполнять параллельно 2е программы в системе должно быть 2 ядра, всего лишь.
Ну так, используй псевдомногозадачность, Люк!

Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Сб сен 17, 2011 22:56:53
DX168B
Valek87 писал(а):А ничего хорошего не получилось. (хотя компиляция прошла удачно) Мне кажется он до TIM1_COMPA вообще не доходит.(
Код: Выделить всё
; ***** INTERRUPT VECTORS ************************************************
.org 0x00 ;RESET
rjmp RESET
.org INT0addr ; External Interrupt Request 0
reti
.org INT1addr ; External Interrupt Request 1
reti
.org INT2addr ; External Interrupt Request 2
reti
.org PCI0addr ; Pin Change Interrupt Request 0
reti
.org PCI1addr ; Pin Change Interrupt Request 1
reti
.org PCI2addr ; Pin Change Interrupt Request 2
reti
.org PCI3addr ; Pin Change Interrupt Request 3
reti
.org WDTaddr ; Watchdog Time-out Interrupt
reti
.org OC2Aaddr ; Timer/Counter2 Compare Match A
reti
.org OC2Baddr ; Timer/Counter2 Compare Match B
reti
.org OVF2addr ; Timer/Counter2 Overflow
reti
.org ICP1addr ; Timer/Counter1 Capture Event
reti
.org OC1Aaddr ; Timer/Counter1 Compare Match A
rjmp TIM1_COMPA
.org OC1Baddr ; Timer/Counter1 Compare Match B
reti
.org OVF1addr ; Timer/Counter1 Overflow
reti
.org OC0Aaddr ; Timer/Counter0 Compare Match A
reti
.org OC0Baddr ; Timer/Counter0 Compare Match B
reti
.org OVF0addr ; Timer/Counter0 Overflow
reti
.org SPIaddr ; SPI Serial Transfer Complete
reti
.org URXC0addr ; USART0, Rx Complete
reti
.org UDRE0addr ; USART0 Data register Empty
reti
.org UTXC0addr ; USART0, Tx Complete
reti
.org ACIaddr ; Analog Comparator
reti
.org ADCCaddr ; ADC Conversion Complete
reti
.org ERDYaddr ; EEPROM Ready
reti
.org TWIaddr ; 2-wire Serial Interface
reti
.org SPMRaddr ; Store Program Memory Read
reti
.org URXC1addr ; USART1 RX complete
reti
.org UDRE1addr ; USART1 Data Register Empty
reti
.org UTXC1addr ; USART1 TX complete
reti
Ужасть
Уж так лучше:
Код: Выделить всё
.cseg
.org 0x0000
rjmp RESET
;--------------------------
.org OC1Aaddr ; Timer/Counter1 Compare Match A
rjmp TIM1_COMPA
.org OC1Baddr ; Timer/Counter1 Compare Match B
rjmp TIM1_COMPB
;--------------------------
.org INT_VECTORS_SIZE
;**************************
;* SUB's *
;**************************
TIM1_COMPA:
reti
;--------------------------
TIM1_COMPB:
reti
;**************************
;* MAIN POINT *
;**************************
RESET:
ldi r16, Low(RAMend)
ldi r17, High(RAMend)
out SPL, r16
out SPH, r17
......
Лишнее меньше будет мельтешить перед глазами.

Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вс сен 18, 2011 19:07:24
ploop
Это не лишнее. Это хороший тон в программировании. Если мешает - вынеси в отдельный файл.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Ср сен 21, 2011 15:15:11
kotofeev
Посоветуйте пожалуйста хороший самоучитель по ассемблеру для AVR .
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Ср сен 21, 2011 15:20:24
Gudd-Head
kotofeev писал(а):самоучитель по ассемблеру
Это как? Описание команд есть у Евстифеева.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Ср сен 21, 2011 15:20:59
GP1
Абсолютно хорошего нет, везде свои косяки и залипоны, я бы рекомендовал начать с прочтения "Курса для начинающих" у DiHalt-а
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Ср сен 21, 2011 15:29:08
kotofeev
А ссылку можно?
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Ср сен 21, 2011 15:32:05
Gudd-Head
kotofeev писал(а):А ссылку можно?
http://easyelectronics.ru/
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Ср сен 21, 2011 16:09:46
kotofeev
Спасибо, буду изучать!
