begin process at 2010 03 19 15:10:20
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Assembleur

 > 

Archives

 > 

Les PIC

 > 

prob. timer/interruption


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

prob. timer/interruption

mardi 7 juin 2005 à 15:36:40 | prob. timer/interruption

julien__68

voila , j'ai réaliser une interruption sur rb0 (il fonctionne) mai je ne compren pas a quoi peut servir cette ligne par rapport a l'interruption de rb0 .... :  bsf    PIE1,TMR1IE    pasque normalement c'est pour autoriser l'interruption sur le timer , et en faite je doit enlevé cette ligne pour continuer mon programme ..... mais quand je l'enleve , mon programme ne fonctionne plus ....
que dois-je faire pour enlevé cette ligne ?
merci pour vos réponses ++

voici mon programme :

    list p=18f452, n=48, t=ON, st=OFF
    #include "p18f452.inc"
       
;------------------BIT DEFINITIONS------------------------------------
F                     EQU     0x0001
ptr                    EQU     0x0c
compt                EQU        0x000d
;------------------VECTORS--------------------------------------------

    org    0x000000        ; reset vector
    bra    START
   
    org    0x000008        ; high priority interrupt vector
    bra    TMR1_ISR

;--------------------PROGRAM-----------------------------------
START

    rcall    INIT

       movlw 0x03
    movwf ADCON1

    clrf compt
     clrf TRISB
    CLRF PORTB
     MOVLW B'00000001'     ;RB0=inputs
     MOVWF TRISB         ;RB2-RB7=outputs.


   movlw    B'00000000'        ;initialize USART
   MOVWF     ptr


    bsf    PIE1,TMR1IE    ;enable Timer1 interrupts
;--------------------
;enable rb0 interrupts
   
   
     MOVLW B'01100001'     ;RB0=inputs
     MOVWF INTCON2        ;RB2-RB7=outputs

    bcf        INTCON2,INT1IE         ;clear the rb0 interrupt flag
    bcf        INTCON2,INT1IF         ;clear the rb0 interrupt flag

    bsf        INTCON,RBIE            ;
    bcf        INTCON,RBIF

;---------------------
    bsf    INTCON,GIEH                ;set the global interrupt enable bits
    bsf    INTCON,GIEL                ;    "

MLOOP                                                 
    goto    MLOOP
  
;-------------------------------SUBROUTINES---------------------------------
TMR1_ISR            ; high priority isr                     

    btfsc     INTCON,INT0IE
    goto    int_rb0

    btfsc     INTCON,INT0IF
    goto    int_rb0

    goto fin

int_rb0
    bcf        INTCON,INT0IE ;clear the rb0 interrupt flag
    bcf        INTCON,INT0IF ;clear the rb0 interrupt flag

    btfss     ptr,1
    goto    affon3

    bcf     PORTB,1
    bsf        INTCON2,INTEDG0   
    bcf     ptr,1

    goto fin

affon3
    bcf        INTCON2,INTEDG0   
    bsf     PORTB,1
    bsf     ptr,1
    goto fin


fin

    retfie

INIT
    clrf    PORTB        ; setup portb for outputs
    clrf    DDRB
     
    return

    END   


mardi 7 juin 2005 à 16:48:33 | Re : prob. timer/interruption

phenojeff

allo    tu mélange ca un peu

 list p=18f452, n=48, t=ON, st=OFF
    #include "p18f452.inc"
      
;------------------BIT DEFINITIONS------------------------------------
F                     EQU     0x0001
ptr                    EQU     0x0c
compt                EQU        0x000d
;------------------VECTORS--------------------------------------------

    org    0x000000        ; reset vector
    bra    START
  
    org    0x000008        ; high priority interrupt vector
    bra    TMR1_ISR

;--------------------PROGRAM-----------------------------------
START

   
INIT
    clrf    DDRB
 movlw 0x07  ;desactive A/D pin sur PORTA pin toute en digital
    movwf ADCON1

    clrf compt
    CLRF PORTB
    MOVLW B'00000001'     ;RB0=inputs
    MOVWF TRISB         ;RB2-RB7=outputs.


   movlw    B'00000000'        ;initialize USART
   MOVWF     ptr

;--------------------
;enable rb0 interrupts
  
    bsf        INTCON,INT0IE         ;active interup sur RB0
    bcf        INTCON,INT0IF         ;efface le flag interrupt RB0

    ;---------------------
    bsf    INTCON,GIEH                ;TOUTE interrupt ACTIVE
    bsf    INTCON,GIEL                ;    "

MLOOP                                                
    goto    MLOOP
 
;-------------------------------SUBROUTINES---------------------------------
TMR1_ISR            ; high priority isr                    

    btfsc     INTCON,INT0IF ; si interup sur RB0
    goto    int_rb0

    goto fin

int_rb0
;    bcf        INTCON,INT0IE ;desactive interup sur RB0
    bcf        INTCON,INT0IF ;clear the rb0 interrupt flag

    btfss     ptr,1
    goto    affon3

    bcf     PORTB,1
    bsf     INTCON2,INTEDG0  ; Interrupt on rising edge
    bcf     ptr,1

    goto fin

affon3
    bcf        INTCON2,INTEDG0   ;Interrupt on falling edge
    bsf     PORTB,1
    bsf     ptr,1
    goto fin


fin

    retfie

    END   



Cette discussion est classée dans : goto, rb0, bsf, bcf, intcon


Répondre à ce message

Sujets en rapport avec ce message

Problème d'IRQ avec un PIC18F442 [ par snoopyweb68 ] Dans le cadre d'un stage, je suis amené à établir une communication entre deux PICs (un 16F627 et un 18F442). J'ai choisi de la faire via un port de c progr.pic interruption [ par julien__68 ] bonjours a tous, j'utilise un pic18f4620, je débute dans la programmation, je voulai réaliser une interruption sur rb0 , si quelqu'un pouvai me dire pic16f631/690 [ par elsena ] Bonjour, J'ai fait un petit programme afin de me familariser avec la série 16f631/390, avant de réinscrire mes programmes dans ces nouveaux pics. Celu programme de 2 servos avec 2 boutons différents à l'aide d'un picbasic 3b [ par Valve ] bonjour à vous...je me présente à vous en tant qu'étudiant débutant dans le domaine de la programmation car un problème sur lequel j'ai déjà passé 6h Problème entre la simulation et la réalité [ par bibou1234 ] Bonjour, (j'avais commencé une programmation en C de se programme, mais trop compliqué, et j'ai perdu trop de temps, donc je le fais maintenant en ass prob interruption timer (pic) [ par julien__68 ] bonjours tout le monde, voici une parti de mon programme, je réalise une interruption avec mon timer, et je voulai mettre une interruption toute les demende de renseignement urgent [ par ya9out ] bonjour,j'ai un programme du pic 16F628 en languge basic et je veux le convertir en assembleur j'ai essayé de le faire en se s'aidant avec les logicie Flags dans le registre INTCON [ par tahiti_bob ] Bonjour,J'ai  trouvé sur cette page une excellente routine de communication RS232 entre un PIC et un PC.http://www.electronic-engineering.ch


Nos sponsors


Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,530 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales