PIC 16F870 / glitches / gjenstander på PORTA, PORTB og PORTC

R

ripkars

Guest
Hei alle,
Jeg opplever glitching / gjenstand effekter på produksjonen låsene knyttet til PORTA, PORTB og PORTC registre av en PIC 16F870.
Koden som skriver til disse havnene er:

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 -knappen

; PORTB -> DATA (SDA)

; PORTC -> Klokke (SCK)BCF STATUS, 7; deaktivere alle avbruddBSF STATUS, 5; Bytt til Bank 1

MOVLW b'00000111 '; satt Porta pins til digitale

MOVWF ADCON1; i / o (i stedet for analog)

MOVLW b'00000001 '; Sett port A pins

MOVWF Trisa; til utgang (unntatt RA0).

BSF STATUS, 5; Bytt til Bank 1 igjen (ikke nødvendig?)

MOVLW b'00000000 '; Sett Port B til utgang

MOVWF TRISB;

BSF STATUS, 5; Bytt til Bank 1 igjen (ikke nødvendig?)

MOVLW b'00000000 '; Sett Port C til utgang

MOVWF TRISC;

BCF STATUS, 5; bytte tilbake til 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 adresse register

MOVWF TBYTE

CLRW; Main syklus

Hvile

BSF PORTA, 2; slå på RA2 (Led GREEN)

CALL GENERIC_DELAY

BCF PORTA, 2; slå RA2

BTFSS PORTA, 0; hvis RA0 er UP -> begin

GOTO hvile

BCF PORTA, 2

; GOTO (OTHER_CODE_NOT_POSTED_BUT_FOR_SURE_NOT_IMPORTANT); Loop Blinkende Led

GENERIC_DELAY

CLRW

DLY_GEN DECFSZ LAMP1, 1

GOTO DLY_GEN

DECFSZ LAMP2, 1

GOTO DLY_GEN

; RICARICO LAMP1 E LAMP2

MOVF T_LAMP1, 0

MOVWF LAMP1

MOVF T_LAMP2, 0

MOVWF LAMP2

RETURN

 
Den Lampen blinker, men den tiden som er igjen i av staten tar ca 2 eller 3 instruksjoner gang, og om staten tar det generiske forsinkelsen sier.
du bør bruke en simulator slik at du kan finne feil som dette lett.

hilsen.

 
narcizzo u hadde rett: Etter brenne pic med denne koden
Code:

Hvile

BSF PORTA, 2; accendo RA2 (Led VERDE)

CALL GENERIC_DELAY

BCF PORTA, 2; spengo RA2

CALL GENERIC_DELAY

BTFSS PORTA, 0; se RA0 č UP -> Cominicia

GOTO hvile

BCF PORTA, 2

GOTO MAIN_LOOP
 

Welcome to EDABoard.com

Sponsor

Back
Top