Sida 1 av 1

Hur kan man använda Array på PIC

Postat: 17 april 2005, 21:40:57
av Rolle
Hej. Jag är ny här på forumet och på PIC:ar och har inte hittat hur man kan använda arrayer i loopar.
Jag har provat med följande kod, men det funkar inte. Meningen är att rotera den första in-variabeln ett steg. Sen öka i med ett. Sen rotera nästa in-variabel ett steg. Osv. (Ni fattar säkert vad jag har tänkt) Hur ska man göra?

1 cblock 14h
2 in:3h ; Array för 3 byte
3 i
4 endc
5
6
7 Mainloop
8 rlf in+i,f ; Rotera in-variablerna
9 incf i,f
10 goto Mainloop

Postat: 17 april 2005, 21:58:28
av cyr
Ska du använda pekare i en PIC så är det registren INDF och FSR du ska titta på.

Du lägger in adressen i FSR och läser eller skriver sen till INDF.

Kod: Markera allt

movlw in
movwf FSR

mainloop:

rlf INDF,f
incf FSR

goto mainloop
Ungefär...

edit: fast just ditt exempel är nog betydligt enklare att köra utan loop, även mindre kod:

Kod: Markera allt

rlf in
rlf in+1
rlf in+2
Det får vara en stor array eller så för att indirekt adressering ska vara lönt...

Postat: 17 april 2005, 23:05:20
av Rolle
Det var precis vad jag var ute efter! Tackar så mycket för ett snabbt svar.
Jag har tänkt bygga ut loopen till 2 * 32 varv sen, så det blir ganska mycket kod som man slipper skiva. Tack igen.