Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
21.02.2011, 14:21
|
#11
|
Частый гость
Регистрация: 10.12.2010
Сообщений: 42
Сказал спасибо: 7
Сказали Спасибо 5 раз(а) в 4 сообщении(ях)
|
Re: Работа с массивами (PIC18, Assembler)
Код:
|
dat0 UDATA
count res 1
temp res 1
dat1 UDATA
ArrayA res 128
ArrayB res 128
cod1 CODE
.....
lfsr FSR0, ArrayA
lfsr FSR1, ArrayB
clrf count
bra mm03
mm01:
movf count, W
movf PLUSW0, W
movwf temp
movf count, W
movf PLUSW1, W
cpfslt temp ; skip if A[i]‹B[i]
bra mm02
....
....
mm02: incf count
mm03: movlw 127
cpfsgt count ; skip if count › 127
bra mm01 |
вот еще исправленный (ещё ближе к задаче)
fsr1 и fsr0 в данном варианте не изменяются
а как без fsr вы хотите обработать массив?
|
|
|
|
21.02.2011, 14:30
|
#12
|
Частый гость
Регистрация: 10.12.2010
Сообщений: 42
Сказал спасибо: 7
Сказали Спасибо 5 раз(а) в 4 сообщении(ях)
|
Re: Работа с массивами (PIC18, Assembler)
Код:
|
dat0 UDATA
count res 1
temp res 1
dat1 UDATA
ArrayA res 128
ArrayB res 128
cod1 CODE
.....
lfsr FSR0, ArrayA
lfsr FSR1, ArrayB
clrf count
bra mm03
mm01: movf count, W
movff PLUSW0, temp
movf PLUSW1, W
cpfslt temp ; skip if A[i]‹B[i]
bra mm02
....
....
mm02: incf count
mm03: movlw 127
cpfsgt count ; skip if count › 127
bra mm01 |
вот еще
|
|
|
|
21.02.2011, 14:35
|
#13
|
Прописка
Регистрация: 26.01.2009
Сообщений: 249
Сказал спасибо: 23
Сказали Спасибо 102 раз(а) в 61 сообщении(ях)
|
Re: Работа с массивами (PIC18, Assembler)
Сообщение от master.k
|
вот еще
|
Ну, все. окончательно запутал топикстартера
|
|
|
|
21.02.2011, 14:38
|
#14
|
Частый гость
Регистрация: 10.12.2010
Сообщений: 42
Сказал спасибо: 7
Сказали Спасибо 5 раз(а) в 4 сообщении(ях)
|
Re: Работа с массивами (PIC18, Assembler)
Код:
|
dat0 UDATA
count res 1
temp res 1
dat1 UDATA
ArrayA res 128
ArrayB res 128
cod1 CODE
.....
clrf count
bra mm03
mm01: movf count, W
lfsr FSR0, ArrayA
movff PLUSW0, temp
lfsr FSR0, ArrayB
movf PLUSW0, W
cpfslt temp ; skip if A[i]‹B[i]
bra mm02
....
....
mm02: incf count
mm03: movlw 127
cpfsgt count ; skip if count › 127
bra mm01 |
а вот вообще с одним регистром FSR
(а как это будет на AVR? ![Голова кругом](images/smilies/icon_rolleyes.gif) )
|
|
|
|
21.02.2011, 14:40
|
#15
|
Частый гость
Регистрация: 10.12.2010
Сообщений: 42
Сказал спасибо: 7
Сказали Спасибо 5 раз(а) в 4 сообщении(ях)
|
Re: Работа с массивами (PIC18, Assembler)
пусть учатся!
|
|
|
Сказали "Спасибо" master.k
|
|
|
21.02.2011, 14:49
|
#16
|
Гражданин KAZUS.RU
Регистрация: 02.06.2003
Адрес: Челябинск
Сообщений: 545
Сказал спасибо: 10
Сказали Спасибо 341 раз(а) в 202 сообщении(ях)
|
Re: Работа с массивами (PIC18, Assembler)
Сообщение от master.k
|
а как без fsr вы хотите обработать массив?
|
Ну, например так (fsr используется только один):
Код:
|
i: res 1
.....
clrf fsr0h ; temp = A[i]
movfw i ;
addlw (low)A ;
movwf fsr0l ;
movlw (high)A ;
addfc fsr0h, f ;
movff indf0, temp ; |
Или нет?
Последний раз редактировалось Bill; 21.02.2011 в 14:53.
|
|
|
|
21.02.2011, 15:00
|
#17
|
Прописка
Регистрация: 26.01.2009
Сообщений: 249
Сказал спасибо: 23
Сказали Спасибо 102 раз(а) в 61 сообщении(ях)
|
Re: Работа с массивами (PIC18, Assembler)
Сообщение от master.k
|
(а как это будет на AVR? )
|
О! Сейчас опять холивар начнется.
|
|
|
|
21.02.2011, 15:03
|
#18
|
Частый гость
Регистрация: 10.12.2010
Сообщений: 42
Сказал спасибо: 7
Сказали Спасибо 5 раз(а) в 4 сообщении(ях)
|
Re: Работа с массивами (PIC18, Assembler)
Сообщение от Bill
|
Ну, например так (fsr используется только один):
Код:
|
i: res 1
.....
clrf fsr0h ; temp = A[i]
movfw i ;
addlw (low)A ;
movwf fsr0l ;
movlw (high)A ;
addfc fsr0h, f ;
movff indf0, temp ; |
Или нет?
|
так из последнего примера
тоже самое, но FSR не изменяется
Код:
|
mm01: movf count, W
lfsr FSR0, ArrayA
movff PLUSW0, temp |
|
|
|
|
21.02.2011, 15:25
|
#19
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Работа с массивами (PIC18, Assembler)
Сообщение от testerplus
|
О! Сейчас опять холивар начнется.
|
... тогда мы идём к вам!
шутка
|
|
|
|
21.02.2011, 16:25
|
#20
|
Гражданин KAZUS.RU
Регистрация: 02.06.2003
Адрес: Челябинск
Сообщений: 545
Сказал спасибо: 10
Сказали Спасибо 341 раз(а) в 202 сообщении(ях)
|
Re: Работа с массивами (PIC18, Assembler)
Сообщение от master.k
|
(а как это будет на AVR? )
|
Для начала я лучше на STM8 нарисую:
Код:
|
clrw x ; i = 0
1$:
ld a, (_A, x) ; if (A[i] ‹ B[i])
cp a, (_B, x) ;
jruge 2$ ;
.......
2$:
incw x ; ++i
cpw #128 ; if (i ‹ 128)
jrult 1$ ; continue; |
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
Напряжённая работа
|
Roshens |
Отвлекитесь, эмбеддеры! |
8 |
01.09.2010 23:08 |
Часовой пояс GMT +4, время: 20:34.
|
|