BigBadM student Kragujevac
Član broj: 184486 Poruke: 6 89.216.83.*
|
Pozdrav svima koji citaju ovaj post, isprva nisam hteo da zatrazim za pomoc jer me je bilo sramota zbog svih onih poruka od strane mojih kolega sa fakulteta.Znam da su bili bezobzirni i da su se ponasali kao mala deca "date im prst a oni otmu celu ruku",pa sam se jednostavno okrenuo na drugu stranu i potrazio pomoc "gugletu" trazeci dodatne tutorijale, materijal,predavanja i sta vec,ali bezuspesno.Nije da nisam nasao, imam gomilu raznih stvari na kompu vezano za programiranje mikrokontrolera pocev od raznih zadataka,tudjih seminarskih,raznih preporuka i tutorijala u stilu naucite za 21 dan ,sto na srpskom sto na engleskom, ali vrlo malo stvari mi je bilo od ikakve pomoci.Naime problem je u tome sto smo svi u grupi za informatiku na fakultetu ovde u Kragujevcu imali zavrsni rad iz oblasti programiranje kontrolera u softveru MPLAB u asembleru i svako od kolega je dobio zadatak kao uslov da bi uopste mogao da izadje na usmeni ispit iz predmeta Arhitektura racunarskih sistema.Ako pogledate postove od pre dva meseca mozete da vidite zadatke koji su postavljeni a vecina je uspesno resena.Prvi zadatak koji je bio postavljen je da se napravi oscilator razlicitih ucestanosti i koji je resio neki decko iz Nisa kome sam veoma zahvalan ali je unapred ukazao da postoje neke greskice.
Zadatak glasi ovako :
; Realizovati oscilator razlicitih,unapred definisanih,ucestanosti.
; Zadatak realizovatoi pomocu mikrokontrolera PIC16F84A na asembleru.
;
; PORTA.0 Izlaz oscilatora
; PORTA.1 Invertovani izlaz oscilatora
; PORTB.0 60 impulsa/min
; PORTB.1 120 impulsa/min
; PORTB.2 240 impulsa/min
Resenje koje je ponudjeno i to veoma brzo sto me je narocito iznenadilo u poredjenju na ostale forume (tipa ovog kao forum sk) nije bilo ispravno i forma u kojoj je predstavljeno izgleda :
LIST P=16F84, F=INHX8M
include "P16F84.inc"
count1 equ 0x0c
count2 equ 0x0d
bsf STATUS,Rp0
clrf trisa
movlw b'111'
movwf TRISB
bcf STATUS,Rp0
goto main
delay
movlw d'243'
movwf count2
pom
nop
decfsz count1,f
goto pom
decfsz count2,f
goto pom
return
main
btfsc portb,0
call freq1
btfsc portb,1
call freq2
btfsc portb,2
call freq3
goto main
freq1
movlw b'01'
movwf porta
movlw b'10'
movwf porta
call delay
call delay
call delay
call delay
return
freq2
movlw b'01'
movwf porta
movlw b'10'
movwf porta
call delay
call delay
return
freq3
movlw b'01'
movwf porta
movlw b'10'
movwf porta
call delay
return
end
Nakon konsultacija sa predmetnim asistentom i nekim smernicama uspeo sam da ispravim program i omogucim da ostvari impulse 60/s i 120/s dok ucestalost od 240 nisam uspeo da isprogramiram ,iskreno da kazem nemam pojama kako bih to izveo, ove stvari koje sam ispravio kako bih omogucio vec pomenute ucestalosti jeste analizirajuci vec resene zadake sa foruma tako da program sada izgleda ovako:
LIST P=16F84A, F=INHX8M
include "P16F84A.inc"
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
count1 equ 0x0c
count2 equ 0x0d
bsf STATUS,RP0
clrf TRISA
movlw b'111'
movwf TRISB
bcf STATUS,RP0
clrf PORTB
goto main
delay
movlw d'243'
movwf count2
pom
nop
decfsz count1,f
goto pom
decfsz count2,f
goto pom
return
main
btfsc PORTB,0
call freq1
btfsc PORTB,1
call freq2
btfsc PORTB,2
call freq3
goto main
freq1
movlw b'01'
movwf PORTA
call delay
call delay
movlw b'10'
movwf PORTA
call delay
call delay
return
freq2
movlw b'01'
movwf PORTA
call delay
movlw b'10'
movwf PORTA
call delay
return
freq3
movlw b'01'
movwf PORTA
movlw b'10'
movwf PORTA
call delay
return
end
Ali pri tom da ova ucestalost od 240 impulsa/sec ne radi pa bih hteo da zamolim nekog ko ima volju i malcice slobodnog vremena da mi pomogne da resim ovaj problemcic jer ne verujem da je potrebno vise od desetak minuta nekome ko zna programiranje u assembleru da pogleda zadatak i da ispravit tih par reda koda...
P.S. Ako zelite da pomognete pomognnite ,ako ne necu da se ljutim, kako bi bata Zika rekao skalabudzicu ga neko..
:)
|