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