C
CEstudent
Guest
hello guyz miten ru kaikille?
i-kirjain kaivata ur auttaa tämän ongelman kanssa, olen käyttämällä ulkoista keskeyttää ja pic16f876a
koska tiedän, että sen jälkeen, kun keskeyttää päättynyt sen pitäisi palata samaan paikkaan sen tapahtunut mutta minun koodi En halua palata takaisin samaan paikkaan haluaisin mennä toiseen paikkaan.
niin i testattu minun koodi i toimii mutta keskeyttää tapahtunut vain kerran! Kun i teho enintään virtapiiriin niin missä on ongelma?i hyväksyi keskeyttää lippu mutta vielä on ongelma
Code:
; / / keskeytä-koodi;///////////////////////////////
TMR0 EQU 1
PORTA EQU 5
PORTB EQU 6
PORTC EQU 7
TRISA EQU 5
TRISB EQU 6
PORTC EQU 7
TRISC EQU 7
PC EQU 2
Tila EQU 3
ZEROBIT EQU 2
Kuljetettava EQU 0
EEADR EQU 0DH
EEDATA EQU 0CH
EECON1 EQU 0CHEECON2 EQU 0DH
ADCON1 EQU 1FH
RD EQU 0
WR EQU 1
Wren EQU 2
ADCON0 EQU 1FH
ADCON1 EQU 1FH
OSOITE EQU 1EH
CHS0 EQU 3
GODONE EQU 2
INTCON EQU 0BH
OPTION_R EQU 1
GIE EQU 7, maailmanlaajuinen Interrupt bittinen
Integraatio EQU 4; B0 keskeyttää mahdollistaa bit.
INTF EQU 1; B0 keskeyttää lippu
COUNT EQU 24H; tarkoittaa count on tiedosto 0C.
; rekisterissä count tapahtumia.
TMR0_T EQU 20H; TMR0 tilapäinen tiedosto
W_TEMP EQU 21H; W tilapäinen tiedosto
STATUS_T EQU 22h; Tila tilapäinen tiedosto
PORTB_T EQU 23h; PORTB tilapäinen tiedosto
COUNT_T EQU 25H
;******************************************LUETTELO P = 16F876A
Org 0
Goto START
Org 4
Goto ISR; location4 siirtyy ISR;************************************************; SUBROUTINE JAKSO; Viive 1 SEK
DELAY CLRF TMR0
MOVLW ,61
MOVWF COUNT
BCF STATUS, 5
WAITA BCF INTCON, 2
WAITB BTFSS INTCON, 2
Goto WAITB
DECFSZ COUNT, 1
Goto WAITA
RETURN
RETLW 0
; Interrupt Service RutiininomaisestiISR
MOVWF W_TEMP; Tallenna W
MOVF Tila, W
MOVWF STATUS_T; Tallenna Tila
MOVF TMR0, W
MOVWF TMR0_T; tallentaa TMR0
MOVF COUNT, W
MOVWF COUNT_T; tallentaa PORTBBSF PORTC, 7
CALL DELAY
CALL DELAY
CALL DELAY
CALL DELAY
CALL DELAY
BCF PORTC, 7BCF INTCON, INTF; Nollaa Interrupt Flag
COMP MOVF STATUS_T, W
MOVWF Tila; Palauta Status
MOVF TMR0_T, W
MOVWF TMR0; Palauta TMR0
MOVF COUNT_T, W
MOVWF COUNT; Palauta PORTB
MOVF W_TEMP, W; Palauta W
Goto ss; Paluu keskeytyspyyntölinjan;************************************************* *************; KONFIGUROINTI JAKSOSTART BCF STATUS, 5; BANK0
BCF STATUS, 6CLRF PORTA
CLRF PORTB
CLRF PORTCBSF STATUS, 5; BANK1MOVLW 0X06
MOVWF ADCON1MOVLW B'00011111 "; PORTA ovat I / P
MOVWF TRISA
MOVLW B'00000001 "; B0 on syöte, B1-7 O / P
MOVWF TRISBMOVLW B'00000000 "
MOVWF TRISCMOVLW B'01000101 "; Prescalar on / 64
MOVWF OPTION_R
BCF STATUS, 5CLRF PORTA; Tyhjentää Porta.
CLRF PORTB; Tyhjentää PortB.
BSF INTCON, GIE; Ota Global Keskeytä
BSF INTCON, integraatio; Ota B0 keskeyttää
;************************************************* **********; käynnistyy nytBEGIN BSF PORTC, 7
CALL DELAY
BCF PORTC, 7
CALL DELAYGoto BEGINss
BSF PORTC, 1
CALL DELAY
CALL DELAY
CALL DELAY
BCF PORTC, 1
Goto BEGIN
END
i-kirjain kaivata ur auttaa tämän ongelman kanssa, olen käyttämällä ulkoista keskeyttää ja pic16f876a
koska tiedän, että sen jälkeen, kun keskeyttää päättynyt sen pitäisi palata samaan paikkaan sen tapahtunut mutta minun koodi En halua palata takaisin samaan paikkaan haluaisin mennä toiseen paikkaan.
niin i testattu minun koodi i toimii mutta keskeyttää tapahtunut vain kerran! Kun i teho enintään virtapiiriin niin missä on ongelma?i hyväksyi keskeyttää lippu mutta vielä on ongelma
Code:
; / / keskeytä-koodi;///////////////////////////////
TMR0 EQU 1
PORTA EQU 5
PORTB EQU 6
PORTC EQU 7
TRISA EQU 5
TRISB EQU 6
PORTC EQU 7
TRISC EQU 7
PC EQU 2
Tila EQU 3
ZEROBIT EQU 2
Kuljetettava EQU 0
EEADR EQU 0DH
EEDATA EQU 0CH
EECON1 EQU 0CHEECON2 EQU 0DH
ADCON1 EQU 1FH
RD EQU 0
WR EQU 1
Wren EQU 2
ADCON0 EQU 1FH
ADCON1 EQU 1FH
OSOITE EQU 1EH
CHS0 EQU 3
GODONE EQU 2
INTCON EQU 0BH
OPTION_R EQU 1
GIE EQU 7, maailmanlaajuinen Interrupt bittinen
Integraatio EQU 4; B0 keskeyttää mahdollistaa bit.
INTF EQU 1; B0 keskeyttää lippu
COUNT EQU 24H; tarkoittaa count on tiedosto 0C.
; rekisterissä count tapahtumia.
TMR0_T EQU 20H; TMR0 tilapäinen tiedosto
W_TEMP EQU 21H; W tilapäinen tiedosto
STATUS_T EQU 22h; Tila tilapäinen tiedosto
PORTB_T EQU 23h; PORTB tilapäinen tiedosto
COUNT_T EQU 25H
;******************************************LUETTELO P = 16F876A
Org 0
Goto START
Org 4
Goto ISR; location4 siirtyy ISR;************************************************; SUBROUTINE JAKSO; Viive 1 SEK
DELAY CLRF TMR0
MOVLW ,61
MOVWF COUNT
BCF STATUS, 5
WAITA BCF INTCON, 2
WAITB BTFSS INTCON, 2
Goto WAITB
DECFSZ COUNT, 1
Goto WAITA
RETURN
RETLW 0
; Interrupt Service RutiininomaisestiISR
MOVWF W_TEMP; Tallenna W
MOVF Tila, W
MOVWF STATUS_T; Tallenna Tila
MOVF TMR0, W
MOVWF TMR0_T; tallentaa TMR0
MOVF COUNT, W
MOVWF COUNT_T; tallentaa PORTBBSF PORTC, 7
CALL DELAY
CALL DELAY
CALL DELAY
CALL DELAY
CALL DELAY
BCF PORTC, 7BCF INTCON, INTF; Nollaa Interrupt Flag
COMP MOVF STATUS_T, W
MOVWF Tila; Palauta Status
MOVF TMR0_T, W
MOVWF TMR0; Palauta TMR0
MOVF COUNT_T, W
MOVWF COUNT; Palauta PORTB
MOVF W_TEMP, W; Palauta W
Goto ss; Paluu keskeytyspyyntölinjan;************************************************* *************; KONFIGUROINTI JAKSOSTART BCF STATUS, 5; BANK0
BCF STATUS, 6CLRF PORTA
CLRF PORTB
CLRF PORTCBSF STATUS, 5; BANK1MOVLW 0X06
MOVWF ADCON1MOVLW B'00011111 "; PORTA ovat I / P
MOVWF TRISA
MOVLW B'00000001 "; B0 on syöte, B1-7 O / P
MOVWF TRISBMOVLW B'00000000 "
MOVWF TRISCMOVLW B'01000101 "; Prescalar on / 64
MOVWF OPTION_R
BCF STATUS, 5CLRF PORTA; Tyhjentää Porta.
CLRF PORTB; Tyhjentää PortB.
BSF INTCON, GIE; Ota Global Keskeytä
BSF INTCON, integraatio; Ota B0 keskeyttää
;************************************************* **********; käynnistyy nytBEGIN BSF PORTC, 7
CALL DELAY
BCF PORTC, 7
CALL DELAYGoto BEGINss
BSF PORTC, 1
CALL DELAY
CALL DELAY
CALL DELAY
BCF PORTC, 1
Goto BEGIN
END