IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Autres architectures Assembleur Discussion :

[PIC 16F690] Le programme saute les macros


Sujet :

Autres architectures Assembleur

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2014
    Messages : 1
    Points : 2
    Points
    2
    Par défaut [PIC 16F690] Le programme saute les macros
    Bonjour tout le monde
    Mon projet est de faire un programme en assembleur pour communication avec le bus 1-wire et ses différent composants. Le problème c'est que mon programme, dès le début, n'entre pas dans les macros. J'essaye la simulation pas à pas avec le debugger MPLAB SIM et j'ai trouvé que dès qu il y a un appel de macro, le programme le saute en fait. Je pense qu'il y a un problème de configuration de bits. Je travaille avec un pic 16F690 cadencé à 4Mhz. Ci-dessous se trouve la routine initialisation de bus.
    Merci d'avance à toute personne qui peu t m'aider.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    ;x                             PROJET:
    ;x                                 
    ;x
    ;x
    ;x	le 01/11/2014
    ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    		
    		#include <p16F690.inc>
    		List p=16F690
    	;	__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _HS_OSC 	
    	 __config 0x3F38
    	
    	org	0x00
    		goto init
    	
    
    ;xxxxxxxxxxxxxxxxxxxx
    ;x		macros		x
    ;xxxxxxxxxxxxxxxxxxxx 					
    
    	bank1 macro			 	; passage en banque 1 
    		 bcf STATUS,IRP 
    		 bsf STATUS,RP0
    		 bcf STATUS,RP1
    	endm
    
    	bank0  macro				; passage en banque 0 
    		 bcf STATUS,IRP
    		 bcf STATUS,RP0
    		 bcf STATUS,RP1 
    	endm
    	
    	ow_haut 	macro
    		banksel	PORTA               ; la j'utiliser le BANKSEL car  avec le macro bank0  sa marche pas 
    		bsf	PORTA,5			;RAP5=1
    		endm
    
    	ow_bas    macro
    		banksel	PORTA
    		bcf	PORTA,5			;RAP5=0
    		endm
    
    ;la c'est une macro que normalement que fait une tomporisation multiple de 5 (je trouver ca sur le site  de maxim:D) mais aussi je peux pas l'utiliser 
    
    	wait: macro   temps		        ;Temps :variable en microsecondes correspondant a temps de retard a généré,doit être multiple de 5.
    		movlw	(temps/5) -1		; 1us
    		movwf	tempo			; 1us	
    		call	attendre_5us		        ; 2us
    	endm	
    		attendre_5us
    		nop						;1us
    		nop						;1us
    		decfsz	tempo,f			;1us /2 si tempo 0
    		goto	attendre_5us      		;2us 
                    retlw 0  
    ;xxxxxxxxxxxxxxxxxxxxxxx 
    ;x 	initialisation de bus   x 
    ;xxxxxxxxxxxxxxxxxxxxxxx
    
    init
    	banksel	OSCCON	
    	movlw	b'01100111'
    	movwf	OSCCON 		;régler l'oscillateur interne a 4Mhz,1us par instruction .
    
    
    	clrf	 esclave	 ; initialisation de nombre des esclaves à 0
    
    attendre_bs
    	banksel	TRISA
    	BCF		TRISA,TRISA5	;RA5=0 RA5 en sortie
    	
           ow_haut 				;bus 1-wire par default a l'etat haut 								
    
    	ow_bas				;bus ow a l'etat bas 
    	wait     .500 		        ;attendre 500us a l'etat bas,le temps de Pulse RESET de maitre 
    	ow_haut				;relacher le bus 
    	wait      .70			;attendre 70us pour arriver au zone de detection de presence des esclaves 
    
    	banksel	TRISA
    	bsf		TRISA,TRISA5	;RA5=0 RA5 en entrée
    
    	btfss	PORTA,5			;lire RA5 et sauter si egale a 1 ,si y'a aucune esclave
    	incf	esclave,F		        ;esclave=1 si RA5 =0 
    	wait     .400		        ;si non on attend 430us le temps maximum de RESET de maitre 
    
    	goto attendre_bs 
    	
    end
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Programmation PIC 16F690 + CODE MIDI
    Par topher973 dans le forum C
    Réponses: 1
    Dernier message: 13/04/2014, 12h31
  2. [VBA][Word]Sauvegarder sans les macros
    Par Oui-Oui MB dans le forum VBA Word
    Réponses: 3
    Dernier message: 23/07/2007, 12h29
  3. Réponses: 2
    Dernier message: 29/07/2005, 10h14
  4. c efficace les macros ?
    Par graphicsxp dans le forum C
    Réponses: 19
    Dernier message: 08/09/2004, 14h00
  5. [VBA-E] ouvrir un fichier .xls sans executer les macro
    Par lae_t2 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/01/2003, 17h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo