Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1999 connectés 

  FORUM HardWare.fr
  Programmation
  ASM

  debutant_aides

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

debutant_aides

n°2143392
khowaylid
Posté le 23-05-2012 à 10:56:52  profilanswer
 

Salut à tout le monde
C’est ma première participation et j’espère que je trouverai de l’aides de  votre part
Enfaite j’ai un partie de programme écrit en assembleur (PIC12F629),
Et pour bien comprendre ce programme et qui fait pour piloter le moteur , il faut le  décortiquer  et dépouiller  ,
Et comme je suis débutant en langage assembleur , j’ai lu le data-sheet du PIC
Du coup j’ai remarqué la partie du programme que je pense responsable des interruptions  
Je fait un copie coller du partie de programme , et j’aime bien que vous me détaillez le fonctionnement est les source de cette interruption.
Mercii d’avance  :)  
 
ORG                      0x0004
                MOVWF   0x20
                MOVF    STATUS    , W
                CLRF    STATUS
                MOVWF   0x4F
                ram[0x4D] = ram[0x4B];
                ram[0x4E] = ram[0x4C];
                BTFSC   INTCON    , T0IF; // test si l'interruption vient du TMR0
                BTFSS   INTCON    , T0IE; // test si TMR0 déborde  
                GOTO    Label_0002
                CLRF    STATUS
                BCF     INTCON    , T0IF; //  
                MOVLW   0x9C
                BCF     STATUS    , RP0; // bank 0
                ADDWF   TMR0      , f
                ram[0x4B] = ram[0x43];
                ram[0x4C] = 0x00;
                MOVF    0x3F      , W
                SUBWF   0x4B      , f; //  
                BTFSS   STATUS    , C; // tester le  carry par rapport à 1
                ram[0x4C] --;
                if (!(ram[0x4C] & 0x80)) GOTO Label_0003;
                PORTA |= 0x20;               // PORTA5                
                GOTO    Label_0004
 
Label_0003 :
                PORTA &= ~0x20;            // PORTA5                
 
Label_0004 :
                ram[0x3F] --;
                ram[0x4B] = ram[0x3F];
                ram[0x4C] = 0x00;
                MOVF    0x44      , W
                SUBWF   0x4B      , f;// [4B,4C]-=[0x44]
                BTFSS   STATUS    , C
                ram[0x4C] --;
                if (!(ram[0x4C] & 0x80)) GOTO Label_0005; si [4B,4C]>0
                PORTA |= 0x01;               // PORTA0      
                GOTO    Label_0006
 
Label_0005 :
                PORTA &= ~0x01;            // PORTA0      
 
Label_0006 :
                if (ram[0x3F] != 0x00) GOTO Label_0007;
                ram[0x3F] = 0x10;//
 
Label_0007 :
                DECFSZ  0x42      , f
                GOTO    Label_0002
                ram[0x42] = 0x0A;
                if (ram[0x3E] != 0x00) ram[0x3E] --;
 
Label_0002 : ;// Restauration des Registres  
                BCF     STATUS    , RP0 ; // bank 0
                ram[0x4B] = ram[0x4D];  
                ram[0x4C] = ram[0x4E];  
                MOVF    0x4F      , W
                MOVWF   STATUS       ; // STATUS=[0x4F]
                SWAPF   0x20      , f
                SWAPF   0x20      , W ;  
                RETFIE;//fin d'interruption

mood
Publicité
Posté le 23-05-2012 à 10:56:52  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  ASM

  debutant_aides

 

Sujets relatifs
[C] débutant a=b différent de b=a ?[Débutant PHP] Comment afficher "l'âge" à côté du pseudo ?
[Débutant] Module Turtle et Tkinter[php débutant] formulaire avec mess. d'erreur (tp minichat siteduzero)
Question de débutant, créer petit logiciel de recherche de texte.[QST] Débutant pour faire un formulaire simple
Python débutant separateurDébutant - Récupérer les données d'un post
Redondance d'un printf (débutant)Select Case en VBA : question de débutant
Plus de sujets relatifs à : debutant_aides


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR