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 : Jérémy
Broche en entrée qui sort une tension
-
Jérémy

Administrateur du site- Messages : 2750
- Âge : 46
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
Bonjour à tous,
Je suis confronter à un problème étrange de configuration .
En effet sur la BROCHE RB2 de mon PIC , j'ai connecter un BP avec une pull-down de 10K .
J'ai configurer cette broche en entrée . et pourtant j'ai une tension constante de Vdd sur sur cette boche sans appuyé sur le BP.
Je pense à un problème de configuration car cette broche ( RB2) à été modifié pour ne pas servir de SDO1 .
Voici le schéma
et un bout du programme simpliplfié :
C'est un programme de test, pour vérifier les fonctions principales.
résultat la Led_rouge est tout le temps allumée, j'ai bien 3.29V sur cette broche alors que je l'ai mise en entrée et que je n'appuie pas sur le BP bien évidemment .
En supprimant la ligne SDO1SEL_bit = 1 ; le BP fonctionne normalement.
J'en déduis que cette broche passe en sortie par un système non maitrisé pour ma part. Oui mais lequel ?
Je suis confronter à un problème étrange de configuration .
En effet sur la BROCHE RB2 de mon PIC , j'ai connecter un BP avec une pull-down de 10K .
J'ai configurer cette broche en entrée . et pourtant j'ai une tension constante de Vdd sur sur cette boche sans appuyé sur le BP.
Je pense à un problème de configuration car cette broche ( RB2) à été modifié pour ne pas servir de SDO1 .
Voici le schéma
et un bout du programme simpliplfié :
Code : Tout sélectionner
//############################# DECLARATION ############################
#include "Oled_M.h"
#include "chiffre.h"
#define BP_G PORTB.B2
#define BP_M PORTB.B0
#define BP_D PORTB.B1
#define Led_rouge PORTA.B7
#define Led_verte PORTA.B0
#define NPN PORTA.B3
#define PNP PORTA.B2
#define OLED_RST PORTB.B3
#define OLED_CS PORTA.B1
#define OLED_DC PORTB.B5
//##################################################################################
//###################### PROGRAMME PRINCIPAL ###############################
//##################################################################################
void main(){
ANSELA = 0; // PORTA en digital
ANSELB = 0; // PORTB en digital
TRISA = 0b00110000 ; // RA4 ( vide) et RA5(MCLR) en entrée
TRISB = 0b11000111 ; // RB0(BP_M), RB1(BP_D), RB2(BP_G) et RB6,RB7(ICSP) en entrée
OSCCON = 0b01111110 ; // reglage de L'OSC interne 16Mhz sans PLL
SDO1SEL_bit = 1 ; // Réglage de SDO1 sur RA6
SPI1_Init(); // Initialisation du SPI
Delay_ms(100);
OLED_M_Init(); // Initialisation de l'ecran LCD
Delay_ms(200);
//############################ BOUCLE INFINIE ##############################
while(1){
if (BP_D == 1)
Led_verte = 1;
else
Led_verte = 0;
if ( BP_G == 1)
Led_rouge = 1;
else
Led_rouge = 0;
if ( BP_M == 1){
Led_rouge = 1;
Led_verte = 1; }
else{
Led_rouge = 0;
Led_verte = 0;
}
}
C'est un programme de test, pour vérifier les fonctions principales.
résultat la Led_rouge est tout le temps allumée, j'ai bien 3.29V sur cette broche alors que je l'ai mise en entrée et que je n'appuie pas sur le BP bien évidemment .
En supprimant la ligne SDO1SEL_bit = 1 ; le BP fonctionne normalement.
J'en déduis que cette broche passe en sortie par un système non maitrisé pour ma part. Oui mais lequel ?
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Broche en entrée qui sort une tension
Broche en entrée qui sort une tension
Broche en entrée qui sort une tension
Broche en entrée qui sort une tension
-
Jérémy

Administrateur du site- Messages : 2750
- Âge : 46
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
Me revoici,
J'ai enfin trouvé !!!!
Mais j'avoue que je vois la cause mais je ne comprends pas complétement. Si quelqu'un comprends le pourquoi du comment exact je suis preneur d'une petite explication .
en fait d’après ce que j'ai crû comprendre c'est la faute du SPI_Init. Je pense que pendant l'initialisation il passe la sortie RB2 en SDO , ce qui fait qu'elle est sortie.
En placant un TRISB.B2 = 1; juste après ca fonctionne parfaitement ; je fais donc comme ceci ;
J'ai enfin trouvé !!!!
Mais j'avoue que je vois la cause mais je ne comprends pas complétement. Si quelqu'un comprends le pourquoi du comment exact je suis preneur d'une petite explication .
en fait d’après ce que j'ai crû comprendre c'est la faute du SPI_Init. Je pense que pendant l'initialisation il passe la sortie RB2 en SDO , ce qui fait qu'elle est sortie.
En placant un TRISB.B2 = 1; juste après ca fonctionne parfaitement ; je fais donc comme ceci ;
Code : Tout sélectionner
ANSELA = 0; // PORTA en digital
ANSELB = 0; // PORTB en digital
TRISA = 0b00110000 ; // RA4(vide) et RA5(MCLR) en entrée
TRISB = 0b11000111 ; // RB0(BP_M), RB1(BP_D), RB2(BP_G) et RB6,RB7(ICSP) en entrée
PNP = 1; // Mise au repos des transistors
NPN = 0; // Mise au repos des transistors
OSCCON = 0b01111110 ; // réglage de L'OSC interne 16Mhz sans PLL
SPI1_Init(); // Initialisation du SPI
SDO1SEL_bit = 1 ; // Réglage de SDO1 sur RA6
TRISB.B2 = 1; // A L'initialisation du SPI il configure SDO en RB2 il faut donc le repassé en Entrée
Delay_ms(100);
Broche en entrée qui sort une tension
Broche en entrée qui sort une tension
-
Jérémy

Administrateur du site- Messages : 2750
- Âge : 46
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
tu ne peux pas modifier le fichier h du spi? pour que l'init se face sur RA6? comme dans ma lib sur le LCD ou il suffit de modifier les define
Je ne crois pas malheureusement !
MikroC doit garder secret ces librairies ! je nai pas de fichier h generer seulement pour cette focntion
Broche en entrée qui sort une tension
bonjour
OUI mais tu sais faire maintenant ,donc lib int()SPI jeremy
,et tu te montes tes propres LIB et la
c'est qu'une INTI
Tient j'ai trouvé cela:
http://www.ermicro.com/blog/?p=1846
pour t'aider a faire ta LIB SPI en C
pour un 18F 
OUI mais tu sais faire maintenant ,donc lib int()SPI jeremy
Tient j'ai trouvé cela:
http://www.ermicro.com/blog/?p=1846
pour t'aider a faire ta LIB SPI en C
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 4 invités

