Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Pomoc oko zadatak iz Mikrokontrolera

[es] :: Asembler :: Pomoc oko zadatak iz Mikrokontrolera

[ Pregleda: 3649 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Mikrokontroleri
Student

Član broj: 287003
Poruke: 46
*.dynamic.isp.telekom.rs.



Profil

icon Pomoc oko zadatak iz Mikrokontrolera16.07.2011. u 20:36 - pre 155 meseci
Molio bih [es] Team da mi pomogne oko jednog zadatka iz Mikrokontrolera koji glasi : Bafer veličine 5 bajtova napuniti sa 0xFF. U prvu lokaciju posle kraja bafera upisati 0x00. Upisati u bafer 3,6,12,24. Izaći iz programske petlje kada se dođe do podatka 0x00 upisanog u bafer. Znam da se ova tema ponavljala kao i ovaj zadatak izvinjavam se u napred . Napisao sam kod do pola a od pola ne znam ni da beknem.

Code:

main

LFSR FSR0,buffer
movlw c_buffer_length
movwf Loop_counter
clrf WREG
main_loop0
movlw 0xFF
movwf POSTINC0
decfsz Loop_counter
bra main_loop0
movlw 0x00

U pitanju je PIC 18F4520 . Bio bih do neba zahvalan ako bi neko od [es] Team mogao da mi pomogne . Ako ne mozete da mi pomognete bar mi dajte neke smernice, literaturu na internetu ili mozda cak neki pokusaj resenja ovog zadatka stvarno ne mogu da resim drugu polovinu.Pozdrav i izvinite na uznemiravanju. Molio bih odgovor .Pozdrav
 
Odgovor na temu

jumper2high
2High Jumper

Član broj: 39396
Poruke: 27
*.dynamic.sbb.rs.



+1 Profil

icon Re: Pomoc oko zadatak iz Mikrokontrolera31.07.2011. u 00:15 - pre 155 meseci
Ae da probam da pomognem ako nije kasno :)

Prvo, da li sam razumeo dobro: Poenta je da se prvo bafer napuni 0xFF, a zatim u njega upisu brojevi 24, 12, 6, 3 i 0, i iskoci iz petlje?
 
Odgovor na temu

Mikrokontroleri
Student

Član broj: 287003
Poruke: 46
*.dynamic.isp.telekom.rs.



Profil

icon Re: Pomoc oko zadatak iz Mikrokontrolera31.07.2011. u 12:53 - pre 154 meseci
Da
 
Odgovor na temu

jumper2high
2High Jumper

Član broj: 39396
Poruke: 27
*.dynamic.sbb.rs.



+1 Profil

icon Re: Pomoc oko zadatak iz Mikrokontrolera31.07.2011. u 13:09 - pre 154 meseci
Znaci algoritam bi bio:

a) Inicijalizovati dva registra da cuvaju adresu i 'offset' bafera
b) Proci kroz ciklus od offset=4 do offset=0 i set-ovati* vrednost na 0xFF
c) Inicijalizovati pomocni registar na vrednost 24.
d) Proci kroz ciklus od offset=4 do offset=0, setovati* vrednost bafera (na datom offset-u) na vrednost pomocnog registra, zatim shiftovati vrednost desno bez prenosa (RRNCF ako je PIC18F4520)



* PIC kontroleri imaju mogucnost 'indirektnog' adresiranja registara u memoriji, koriscenjem FSR registra (file select register) [upisivanjem adrese zeljenog registra ovde] i citanjem ili pisanjem u INDF registar.

Dakle, recimo, ako stavimo da je adresa bafera 0x20, i hocemo da upisemo 0xFF u ceo registar islo bi:


while offset > 0
FSR = 0x20+OFFSET
INDF = 0xFF
DECR OFFSET

 
Odgovor na temu

Mikrokontroleri
Student

Član broj: 287003
Poruke: 46
*.dynamic.isp.telekom.rs.



Profil

icon Re: Pomoc oko zadatak iz Mikrokontrolera31.07.2011. u 18:56 - pre 154 meseci
Hvala na algoritmu.Pokusacu da napisem kod pa cu da vam javim ili dokle sam stigao
 
Odgovor na temu

Mikrokontroleri
Student

Član broj: 287003
Poruke: 46
*.dynamic.isp.telekom.rs.



Profil

icon Re: Pomoc oko zadatak iz Mikrokontrolera31.07.2011. u 23:18 - pre 154 meseci
Evo napisao sam deo koda jos je ostalo da napisem za Izaci iz programske petlje kada se dodje do podatka 0x00 upisanog u bafer.
Code:

Main

lfsr FSR0,buffer
movlw c_buffer_length
movwf loop_counter
clrf WREG

Main_loop0

movlw 0xFF
movwf POSTINC0
decfsz loop_counter
bra Main_loop0
movlw 0x00
movlw 3
Main_loop1
CPFSGT INDF0
Bra main_upisi
main_upisi
addlw 3
movwf POSTINC0
bra Main_loop1
 
Odgovor na temu

jumper2high
2High Jumper

Član broj: 39396
Poruke: 27
*.dynamic.sbb.rs.



+1 Profil

icon Re: Pomoc oko zadatak iz Mikrokontrolera31.07.2011. u 23:42 - pre 154 meseci
Ne znam koliko ces nauciti o programiranju u asembleru ako koristis neki visi programski jezik i zatim prevedes u Asembler.

Na osnovu izgleda koda, mislim da je C u pitanju? :) Mislim da je cak i nepotrebno zakomplikovan kod bas zato.
 
Odgovor na temu

Mikrokontroleri
Student

Član broj: 287003
Poruke: 46
*.dynamic.isp.telekom.rs.



Profil

icon Re: Pomoc oko zadatak iz Mikrokontrolera31.07.2011. u 23:56 - pre 154 meseci
Dao sam moguce resenje ali ako ne valja onda kako da uradim . Zadatak treba uraditi u Asembleru
 
Odgovor na temu

jumper2high
2High Jumper

Član broj: 39396
Poruke: 27
*.dynamic.sbb.rs.



+1 Profil

icon Re: Pomoc oko zadatak iz Mikrokontrolera01.08.2011. u 09:18 - pre 154 meseci
Instrukcije

movlw 0x00
movlw 3


Pune W registar nulom, a zatim brojem tri.
Nigde ne upisujes te registre u buffer kroz onaj POSTINC registar.

Kasnije,

ADDLW 3 znaci da dodajes 3 na W registar, al' tvoj niz brojeva bi trebao da bude 3, 6, 12, 24 (svaki je 2 puta veci od prethodnog).
bolje bi bilo da shift-ujes bez carry-ja levo i time 'mnozis' sa dva.


Takodje, INDF0 registar drzi VREDNOST na adresi stavljenoj u FSR0 registar. Proveravas da li je INDF0 > 0 instrukcijom CPFSGT INDF0?

 
Odgovor na temu

Mikrokontroleri
Student

Član broj: 287003
Poruke: 46
*.dynamic.isp.telekom.rs.



Profil

icon Re: Pomoc oko zadatak iz Mikrokontrolera02.08.2011. u 19:56 - pre 154 meseci
Ispravite me ako gresim instrukcija movff WREG, buffer_end ovo verovatno znaci da se sadrzaj WREG prepise (kopira) u buffer_end a u to u mom zadatku trebalo da 0x00 prepisem u buffer_end (na poslednju lokaciju u baferu pa tek onda mogu da upisem 3,6,12,24). Zanimame da li sam upravu ako nisam onda gde sam pogresio.
 
Odgovor na temu

Mikrokontroleri
Student

Član broj: 287003
Poruke: 46
*.dynamic.isp.telekom.rs.



Profil

icon Re: Pomoc oko zadatak iz Mikrokontrolera03.08.2011. u 13:33 - pre 154 meseci
Evo napisao sam kod koji bi trebalo da valja ali samo je jos ostalo da napisem da izadjem iz programske petlje kada se dodje do podatka 0x00.

Main
lfsr FSR0,buffer
movlw c_buffer_length
movwf loop_counter
clrf WREG
Main_loop0
movlw 0xFF
movwf POSTINC0
decfsz loop_counter
bra Main_loop0
movlw 0x00
movff WREG,buffer_end
Main_loop1
movf 3
rlncf
rlncf
rlncf
movf INDF0,W
bra Main_loop1

Ne znam kako da napisem instrukciju za rotiranje registra f stao mi mozak pokusavao sam na razlicite nacine ali pokazuje gresku.
 
Odgovor na temu

jumper2high
2High Jumper

Član broj: 39396
Poruke: 27
*.dynamic.sbb.rs.



+1 Profil

icon Re: Pomoc oko zadatak iz Mikrokontrolera03.08.2011. u 16:52 - pre 154 meseci
Rotiranje je RLCF i RLNCF (with and without Carry) LEVO i RRCF RRNCF desno (with and without Carry).


Mozda pomogne :)
 
Odgovor na temu

Mikrokontroleri
Student

Član broj: 287003
Poruke: 46
*.dynamic.isp.telekom.rs.



Profil

icon Re: Pomoc oko zadatak iz Mikrokontrolera03.08.2011. u 20:06 - pre 154 meseci
Hvala na pomoci ali kako da napisem u ovom mom zadatku.Inace sta mislite o resenju da li je tacno.
 
Odgovor na temu

Mikrokontroleri
Student

Član broj: 287003
Poruke: 46
*.dynamic.isp.telekom.rs.



Profil

icon Re: Pomoc oko zadatak iz Mikrokontrolera12.08.2011. u 14:04 - pre 154 meseci
Da li sam dobro napisao kod?
 
Odgovor na temu

[es] :: Asembler :: Pomoc oko zadatak iz Mikrokontrolera

[ Pregleda: 3649 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.