Dvojita podminka v ASM PIC16F84A
Saša (Alexandra)
sasa.dvoraku
Středa Březen 17 14:26:51 CET 2004
Tak uz jsem tu zase :)
Nasledujici kousek kodu by mel pri dosazeni nuly v registru JEDNOU pipnout.
Jenze ono to pipne 3 :( Ale pocet pipnuti neni stejny, kdyz je rychlejsi
pipaci smycka, tak to stihne i 5x.
Plan je ze kdyz se pipne, tak se nastavi priznak PRIZ,0 na log1, tim se
zakaze dalsi pipani. Po dosazeni Seconds,1=1 se pipani zase povoli prechodem
PRIZ,0 zpet do log 0.
Muze mi nekdo, prosim, rici co delam spatne ?
A ted ten kousek kodu:
.
.
.
movf Seconds,w ; Seconds do W
sublw .0 ; odecti od W
"0"
btfsc STATUS,Z ; Je Z=0 ?
goto dalsi ; ANO
goto hlav ; NE
dalsi btfss priz,0 ; je povoleno
PIPANI ?
goto dalsi1 ; ANO
goto hlav ; NE
dalsi1 call PIP ; Jestli muzes,
tak pipni (take se zakaze pipani)
hlav btfss Seconds,1 ; Jsou 2 sekundy ?
bcf priz,0 ; ANO ->
povol pipani
.
.
.
;/////////////////////////////////////////////////////////
;// Pipnuti na repracku //
;/////////////////////////////////////////////////////////
PIP movlw .255
movwf TMP2 ; doba zvukoveho signalu
loop4 movlw .80
movwf TMP ; ton zvuku, doba trvani 0
loop2 bcf REPRO
decfsz TMP,f
goto loop2
movlw .80
movwf TMP ; ton zvuku, doba trvani
loop3 bsf REPRO
decfsz TMP,f
goto loop3
decfsz TMP2,f
goto loop4
bsf priz,0
return ; navrat do hlavni smycky
Poslu klidne cely kod, ale pripada mi to zbytecne.
Diky moc Sasa
---
Odchoz? zpr?va neobsahuje viry (Snad :))
Zkontrolov?no antivirov?m syst?mem AVG (http://www.grisoft.cz).
Verze: 6.0.345 / Virov? b?ze: 193 - datum vyd?n?: 9.4.2002
Další informace o konferenci Hw-list