Bienvenue aux nouveaux arrivants sur FantasPic !
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
Modérateur : mazertoc
Config port A et C en mode I/O
Bonjour nondediode, satinas, et tout le forum
Content de te revoir
Avec ce code ça devrait fonctionner, ton problème venait surement du registre T1CON, mais il y a pas que ça comme le précise Satinas
si tu écris dans la même adresse qu'un registre tu le configure sans ton rendre compte.
Utilise CBLOCK quand tu déclares tes variables, avec l'adresse du début de la bank que tu veux utiliser, après le compilateur va
s'occuper de classer toutes tes variables dans l'ordre que tu l'as déclarer.
A+
Content de te revoir
Avec ce code ça devrait fonctionner, ton problème venait surement du registre T1CON, mais il y a pas que ça comme le précise Satinas
si tu écris dans la même adresse qu'un registre tu le configure sans ton rendre compte.
Utilise CBLOCK quand tu déclares tes variables, avec l'adresse du début de la bank que tu veux utiliser, après le compilateur va
s'occuper de classer toutes tes variables dans l'ordre que tu l'as déclarer.
Code : Tout sélectionner
;--------------------------------------------------DIRECTIVE D'ASSEMBLAGE POUR MPLAB-------------------------------------------------------
list p=16f877
#include <p16f877.inc>
__CONFIG _CP_OFF & _DEBUG_OFF & _WRT_ENABLE_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC
;-------------------------------------------------DEFINITION DES REGISTRES TEMPORAIRES------------------------------------------------------
CBLOCK 0x20 ; Début de la zone (0x20 à 0x6F)
CPT2 :1 ; variable
CPT3 :1 ; variable
RETARD1 :1 ; variable
RETARD2 :1 ; variable
RETARD3 :1 ; variable
RETARD4 :1 ; variable
RETARD5 :1 ; variable
VAL1 :1 ; variable
VAL2 :1 ; variable
VAL3 :1 ; variable
VAL4 :1 ; variable
ENDC
;******************************* "adresse de depart après reset" *******************************
ORG H'0'
clrf PCLATH ; effacer sélecteur de pages
goto init
;********************************** "adresse d'interruption" ***********************************
ORG H'4'
retfie
;-----------------------------------------PROGRAMME D'INITIALISATION----------------------------------------
init
BANKSEL TRISA ; bank 1
clrf TRISA ; On charge la valeur dans le registre W pour configuration des pattes
clrf TRISB ; On charge la valeur dans le registre W pour configuration des pattes
clrf TRISC ; On charge la valeur dans le registre W pour configuration des pattes
MOVLW B'11111111' ; On charge la valeur dans le registre W pour configuration des pattes
MOVWF TRISD ;
clrf TRISE ; configuration des pattes de TRISE, et pouvoir utiliser le PORTD comme entrée/sortie
; pour plus d'information voir registre TRISE bit 4(PSPMODE)
MOVLW B'00000110' ; tous les convertisseurs analogique son hors fonction
MOVWF ADCON1 ;
movlw B'10000000' ;
movwf OPTION_REG ; résistance pull-ups hors fonction sur PORTB
BANKSEL T1CON ; bank 0
clrf T1CON ; RC0, RC1, n'est pas en comptage
clrf INTCON ; interuption hors service
;-----------------------------------------PROGRAMME D'INITIALISATION----------------------------------------
clrf PORTA ; On remet à 0 le port A
clrf PORTB ; On remet à 0 le port B
clrf PORTC ; On remet à 0 le port C
clrf PORTD ; On remet à 0 le port D
clrf PORTE ; On remet à 0 le port E
;---------------------------------------------------------Programme PRINCIPAL-------------------------------------------------------
DEBUT
CALL TEMPO1
MOVLW B'00111111' ; RA0, RA1, RA2, RA3, RA4, RA5 en entrée
MOVWF PORTA
CALL TEMPO1
MOVLW B'00000000' ; RC0, RC1, RC2, RC3, RC4, RC5, RC6, RC7 en sortie
MOVWF PORTC
GOTO debut
;-------------------------------------------------------------------------------
TEMPO1
MOVLW 0X50 ; On met 50 dans le registre W
MOVWF RETARD1 ; On met W dans le registre retard1
MOVWF RETARD2 ; On met W dans le registre retard2
MOVLW 0X12 ; On met 12 dans le registre W
MOVWF RETARD3 ; On met W dans le registre retard3
ATTENTE1
DECFSZ RETARD1,F ; On décrémente retard1 et on saute la prochaine instruction si le registre retard1 = 0
GOTO ATTENTE1 ; Sinon retour à attente1
MOVLW 0XC8 ; On met C8 dans le registre W
MOVWF RETARD1 ; On met W dans RETARD1
DECFSZ RETARD2,F ; On décrémente retard2 et on saute la prochaine instruction si le registre retard2 = 0
GOTO ATTENTE1 ; Sinon retour à attente1
MOVLW 0X50 ; On met 50 dans le registre W
MOVWF RETARD2 ; On met W dans RETARD2
DECFSZ RETARD3,F ; On décrémente retard3 et on saute la prochaine instruction si le registre retard3 = 0
GOTO ATTENTE1 ; Sinon retour à attente2
RETURN ; Retour au programme principal après l'instruction call
;-------------------------------------------------------------------------------
debut
movlw B'11111111'
movwf PORTC ; allumage de tout le PORTC
;-------------------------------------------------------------------------------
terminer
nop
goto terminer
END
A+
Modifié en dernier par Temps-x le sam. 12 déc. 2020 13:07, modifié 4 fois.
Config port A et C en mode I/O
-
nondediode
Amateur- Messages : 148
- Enregistré en : novembre 2018
- Localisation : Lyon
Bonjour à tous!
Encore une fois un grand merci à vous tous vous êtes vraiment super
Je vais aller voir tout ça et corriger ttes ces erreurs après avoir fini mes corvées matinales.
Je suis resté plus d'1 an sans toucher au PIC et on perd vite.
Merci et je reviens en milieu de journée pour vous donner les résultats
JP
Encore une fois un grand merci à vous tous vous êtes vraiment super
Je vais aller voir tout ça et corriger ttes ces erreurs après avoir fini mes corvées matinales.
Je suis resté plus d'1 an sans toucher au PIC et on perd vite.
Merci et je reviens en milieu de journée pour vous donner les résultats
JP
Config port A et C en mode I/O
-
nondediode
Amateur- Messages : 148
- Enregistré en : novembre 2018
- Localisation : Lyon
Config port A et C en mode I/O
-
nondediode
Amateur- Messages : 148
- Enregistré en : novembre 2018
- Localisation : Lyon
Config port A et C en mode I/O
Re
Attention j'ai fait une petite rectification sur le code ci-dessus, car il y a un piège sur le PORTD
Si on veut utiliser le PORTD comme entrée/sortie il faut mettre le bit 4(PSPMODE) du registre TRISE à zéro.
Toujours un plaisir de te revoir sur le forum
A+
Attention j'ai fait une petite rectification sur le code ci-dessus, car il y a un piège sur le PORTD
Si on veut utiliser le PORTD comme entrée/sortie il faut mettre le bit 4(PSPMODE) du registre TRISE à zéro.
Toujours un plaisir de te revoir sur le forum
A+
Config port A et C en mode I/O
-
nondediode
Amateur- Messages : 148
- Enregistré en : novembre 2018
- Localisation : Lyon
Là ça fonctionne très bien avec les modifs que tu m'as donné, j'ai tout monté dans la boîte et le collègue va être heureux quand il va venir le récupérer le 19
J'ai réussi à faire plaisir à qq'un grace au forum
J'ai un sujet costaud qui me trotte dans la tête; réaliser un drive CD à partir d'un bloc optique Philips CDM4 ou CDM9. Je ne suis jamais arrivé à récupérer un protocole pour CDM mais nous aurons l'occasion d'en reparler pour l'instant j'essaie de me documenter sur le sujet.
Bon week end à tous confinés sous la grisaille
J'ai réussi à faire plaisir à qq'un grace au forum
J'ai un sujet costaud qui me trotte dans la tête; réaliser un drive CD à partir d'un bloc optique Philips CDM4 ou CDM9. Je ne suis jamais arrivé à récupérer un protocole pour CDM mais nous aurons l'occasion d'en reparler pour l'instant j'essaie de me documenter sur le sujet.
Bon week end à tous confinés sous la grisaille
Retourner vers « Langage ASM »
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 49 invités