R
ripkars
Guest
Hi all,
Jaz sem se srečujejo glitching / artefakt učinki na izhod ključavnice, povezanih s PORTA, PORTB in PORTC registri PIC 16F870.
Kodo, ki piše za ta pristanišča, je:
Code:SCL_UP EQU H'0020 "
SCL_DN EQU H'0021 "
SDA_ORG EQU H'0022 "
TBYTE EQU H'0023 "
LAMP1 EQU H'0024 "
LAMP2 EQU H'0025 "
T_LAMP1 EQU H'0026 "
T_LAMP2 EQU H'0027 "
TEMPB EQU H'0028 "
TEMPC EQU H'0029 "ORG 00h
; PORTA -> LEDs BUTTON
; PORTB -> DATA (SDA)
; PORTC -> CLOCK (SCK)BCF STATUS, 7, onemogočite vse interruptsBSF STATUS, 5; Switch to Bank 1
MOVLW b'00000111 "iz Porta zatiči na digitalno
MOVWF ADCON1; i / o (namesto analogni)
MOVLW b'00000001 "Set Port pins
MOVWF TRISA; v izhod (razen RA0).
BSF STATUS, 5; Switch banki 1 spet (ni nujno?)
MOVLW b'00000000 '; Nastavi Port B za izhod
MOVWF TRISB;
BSF STATUS, 5; Switch banki 1 spet (ni nujno?)
MOVLW b'00000000 '; Nastavi Port C na izhod
MOVWF TRISC;
BCF STATUS, 5; preklopite nazaj v Bank 0MOVLW d'5 '
MOVWF SCL_UP
MOVLW d'5 '
MOVWF SCL_DN
MOVLW d'150 '
MOVWF LAMP1
MOVLW d'150 '
MOVWF LAMP2
MOVF LAMP1, 0
MOVWF T_LAMP1
MOVF LAMP2, 0
MOVWF T_LAMP2
MOVLW B'00000000 '; initialize naslov register
MOVWF TBYTE
CLRW; Main cikel
Zopet začeti
BSF PORTA, 2; vklopite RA2 (Led GREEN)
CALL GENERIC_DELAY
BCF PORTA, 2; zapreti RA2
BTFSS PORTA, 0; če RA0 je UP -> začetek
Pojdi zopet začeti
BCF PORTA, 2
; GoTo (OTHER_CODE_NOT_POSTED_BUT_FOR_SURE_NOT_IMPORTANT); Utripa Loop Led
GENERIC_DELAY
CLRW
DLY_GEN DECFSZ LAMP1, 1
Pojdi na DLY_GEN
DECFSZ LAMP2, 1
Pojdi na DLY_GEN
; RICARICO LAMP1 E LAMP2
MOVF T_LAMP1, 0
MOVWF LAMP1
MOVF T_LAMP2, 0
MOVWF LAMP2
RETURN
Jaz sem se srečujejo glitching / artefakt učinki na izhod ključavnice, povezanih s PORTA, PORTB in PORTC registri PIC 16F870.
Kodo, ki piše za ta pristanišča, je:
Code:SCL_UP EQU H'0020 "
SCL_DN EQU H'0021 "
SDA_ORG EQU H'0022 "
TBYTE EQU H'0023 "
LAMP1 EQU H'0024 "
LAMP2 EQU H'0025 "
T_LAMP1 EQU H'0026 "
T_LAMP2 EQU H'0027 "
TEMPB EQU H'0028 "
TEMPC EQU H'0029 "ORG 00h
; PORTA -> LEDs BUTTON
; PORTB -> DATA (SDA)
; PORTC -> CLOCK (SCK)BCF STATUS, 7, onemogočite vse interruptsBSF STATUS, 5; Switch to Bank 1
MOVLW b'00000111 "iz Porta zatiči na digitalno
MOVWF ADCON1; i / o (namesto analogni)
MOVLW b'00000001 "Set Port pins
MOVWF TRISA; v izhod (razen RA0).
BSF STATUS, 5; Switch banki 1 spet (ni nujno?)
MOVLW b'00000000 '; Nastavi Port B za izhod
MOVWF TRISB;
BSF STATUS, 5; Switch banki 1 spet (ni nujno?)
MOVLW b'00000000 '; Nastavi Port C na izhod
MOVWF TRISC;
BCF STATUS, 5; preklopite nazaj v Bank 0MOVLW d'5 '
MOVWF SCL_UP
MOVLW d'5 '
MOVWF SCL_DN
MOVLW d'150 '
MOVWF LAMP1
MOVLW d'150 '
MOVWF LAMP2
MOVF LAMP1, 0
MOVWF T_LAMP1
MOVF LAMP2, 0
MOVWF T_LAMP2
MOVLW B'00000000 '; initialize naslov register
MOVWF TBYTE
CLRW; Main cikel
Zopet začeti
BSF PORTA, 2; vklopite RA2 (Led GREEN)
CALL GENERIC_DELAY
BCF PORTA, 2; zapreti RA2
BTFSS PORTA, 0; če RA0 je UP -> začetek
Pojdi zopet začeti
BCF PORTA, 2
; GoTo (OTHER_CODE_NOT_POSTED_BUT_FOR_SURE_NOT_IMPORTANT); Utripa Loop Led
GENERIC_DELAY
CLRW
DLY_GEN DECFSZ LAMP1, 1
Pojdi na DLY_GEN
DECFSZ LAMP2, 1
Pojdi na DLY_GEN
; RICARICO LAMP1 E LAMP2
MOVF T_LAMP1, 0
MOVWF LAMP1
MOVF T_LAMP2, 0
MOVWF LAMP2
RETURN