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 ---
Portail lourd motorisé 2 vantaux 24v
- paulfjujo

Maître- Messages : 3341
- Âge : 75
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
Heureux de te voir refaire surface !
j'ai justement un 18F47k42 sur ma breadboard...
je vais prendre connaissance de tes documents et voir où je peux t'apporter une aide constructive....
à verifier et eventuellement mettre à jour de ton coté, la date fraicheur de la chaine de programme MPLAB
#define IDE "MPLABX 6.30"
#define COMPILO "XC8 V3.10 C99"
#define PACK "PIC18F-K_DFP 1.6.308 "
Sortie servant de declencheur pour la capture de signaux logic de mon SQA analyser
#define With_SQA_Analyser // SQA Analyser
#ifdef With_SQA_Analyser // affectation provisoire !
// #define SQA_Dir TRISBbits.TRISB7 // port RB7 c’est input POSTE ou ISCP (PGD)
// #define SQA LATBbits.LATB7 // port RB7 c’est input POSTE ou ISCP (PGD)
#endif
ci dessous ,prevu pour un circuit pont mosfet IBT2 ! .. donc à eliminer
// #define IBT2_Enable_Dir TRISBbits.TRISB5 // C’est CCP3 pour PWM2_CL_outB5
// #define IBT2_Enable LATBbits.LATB5 // C’est CCP3 pour PWM2_CL_outB5
ci- dessous , définitions des caracteres ascii speciaux pour commande (via uart) terminal
// Je ne sais pas à quoi cela correspond
#define CR 13 // code pour Carriage Return : retour à la ligne (equivalent à \r)
#define LF 10 // code pour Line Feed : ligne suivante (equivalent à \n)
#define TAB 9 // code pour Tabulation saute un nombre d'espace predefini (ex 8 blancs)
nota: l'usage de
#define With_LCD
#define With_INA226
N' est utile QUE si on les utilise ensuite dans le programme ,
par exemple pour pouvoir tester une compilation SANS que le hardware correspondant soit raccordé
de meme pour les autres
#define With_TCA_Jn_inA0 // État au TCA U16 (disponibilité Alarme Maison)
#define With_TCA_Rg_inA1 // État au TCA U16 (Alarme Maison en service)
...etc
#define non necessaire si non utilisé dans la suite du programme
à suivre...
j'ai justement un 18F47k42 sur ma breadboard...
je vais prendre connaissance de tes documents et voir où je peux t'apporter une aide constructive....
à verifier et eventuellement mettre à jour de ton coté, la date fraicheur de la chaine de programme MPLAB
#define IDE "MPLABX 6.30"
#define COMPILO "XC8 V3.10 C99"
#define PACK "PIC18F-K_DFP 1.6.308 "
Sortie servant de declencheur pour la capture de signaux logic de mon SQA analyser
#define With_SQA_Analyser // SQA Analyser
#ifdef With_SQA_Analyser // affectation provisoire !
// #define SQA_Dir TRISBbits.TRISB7 // port RB7 c’est input POSTE ou ISCP (PGD)
// #define SQA LATBbits.LATB7 // port RB7 c’est input POSTE ou ISCP (PGD)
#endif
ci dessous ,prevu pour un circuit pont mosfet IBT2 ! .. donc à eliminer
// #define IBT2_Enable_Dir TRISBbits.TRISB5 // C’est CCP3 pour PWM2_CL_outB5
// #define IBT2_Enable LATBbits.LATB5 // C’est CCP3 pour PWM2_CL_outB5
ci- dessous , définitions des caracteres ascii speciaux pour commande (via uart) terminal
// Je ne sais pas à quoi cela correspond
#define CR 13 // code pour Carriage Return : retour à la ligne (equivalent à \r)
#define LF 10 // code pour Line Feed : ligne suivante (equivalent à \n)
#define TAB 9 // code pour Tabulation saute un nombre d'espace predefini (ex 8 blancs)
nota: l'usage de
#define With_LCD
#define With_INA226
N' est utile QUE si on les utilise ensuite dans le programme ,
par exemple pour pouvoir tester une compilation SANS que le hardware correspondant soit raccordé
de meme pour les autres
#define With_TCA_Jn_inA0 // État au TCA U16 (disponibilité Alarme Maison)
#define With_TCA_Rg_inA1 // État au TCA U16 (Alarme Maison en service)
...etc
#define non necessaire si non utilisé dans la suite du programme
à suivre...
Portail lourd motorisé 2 vantaux 24v
- paulfjujo

Maître- Messages : 3341
- Âge : 75
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonjour à tous,
suite au document Babar64
Version V1.0.0-26-06-18_Soft_PIC18F47K42.docx
réponses partielles ci dessous
//2026-0622_Soft_PIC18F47K42.docx
terme BID signification ?
ATTENTION à bien differencier au niveau des "define"...
*ETAT d'une sortie Lire l'etat de la commande via PORTx
* Cde ETAT sortie Ecriture ETAT sortie via Output LATx
utilisation du #ifdef ..pour isoler des ensembles Hardware ou software non activé dans l'application
On part du principe DIVISER POUR MIEUX REGNER
permettant de tester individuellement certaines portions de code (ou hardware)
..regroupage global de define
// Datas (mesurages)
float Ames_INA1= 0.00 ; // 0.00 à la compilation Valeur du Mesurage Amp INA2…
float Ames_INA2= 0.00 ; // en dur dans le code
// Datas (calculés)
uint16_t Duty_LW= 10 ; // Valeur PWM définies par defaut en dur dans le code au 1er chargement
uint16_t Duty_HI= 85 ; //ou remontée depuis l' Eeprom apres un reset
// Ports du PIC
#define With_Alarme Maison
#ifdef With_Alarme Maison
#define TCA_Jn_inA0_Dir TRISAbits.TRISA0
#define TCA_Jn_inA0 LATAbits.LATA0 // 0 (Dispo) ou 1 (Non dispo)
#define TCA_Rg_inA1_Dir TRISAbits.TRISA1 //Alarme_Maison en service
#define TCA_Rg_inA1 LATAbits.LATA1 // 0 (ON) ou 1 (OFF)
#define ALARM_inA5_Dir TRISAbits.TRISA5 // Action fugitive : Commande Clavier de mise sous Alarme Maison (code 2)
#define ALARM_inA5 LATAbits.LATA5 // 0 (ON) ou 1 (OFF)
#endif
#define With_contact_Portillon
#ifdef With_contact_Portillon
#define PTNctc_inA2_Dir TRISAbits.TRISA2
#define PTNctc_inA2 LATAbits.LATA2 // 0 (fermé) ou 1 (ouvert)
#define OBST_inA3_Dir TRISAbits.TRISA3// État détection Entrave
#define OBST_inA3 LATAbits.LATA3 // 0 (OFF) ou 1 (ON)
#define ASbcl_inA4_Dir TRISAbits.TRISA4// État boucle autosurveillance
#define ASbcl_inA4 LATAbits.LATA4 // 0 (fermée) ou 1 (ouverte)
#define CMDptl_inA6_Dir TRISAbits.TRISA6// État Commande Portail valide (contact du verrou fermé)
#define CMDptl_inA6 LATAbits.LATA6 // 0 (fermé) ou 1 (ouvert)
#define PTLcmd_inA7_Dir TRISAbits.TRISA7 // Action fugitive : Ordre de Commande Ouverture / Fermeture du Portail lancé
#define PTLcmd_inA7 LATAbits.LATA7 // 0 (ON/OFF) ou 1 (nothing)
#endif
#define With_Vantaux
#ifdef With_Vantaux
#define SwOP1_inB1_Dir TRISBbits.TRISB1// État Contact came OP du vantail 1
#define SwOP1_inB1 LATBbits.LATB1 // 0 (fermé) ou 1 (ouvert)
#define SwCL1_inB2_Dir TRISBbits.TRISB2
#define SwCL1_inB2 LATBbits.LATB2 // 0 (fermé) ou 1 (ouvert)
#define SwOP2_inB3_Dir TRISBbits.TRISB3// État Contact came OP du vantail 2
#define SwOP2_inB3 LATBbits.LATB3 // 0 (fermé) ou 1 (ouvert)
#define SwCL2_inB4_Dir TRISBbits.TRISB4// État Contact came CL du vantail 2
#define SwCL2_inB4 LATBbits.LATB4 // 0 (fermé) ou 1 (ouvert)
#endif
#define POSTE_inB6_Dir TRISBbits.TRISB6// Configuration : État Boite aux lettres
#define POSTE_inB6 LATBbits.LATB6 // Boite aux lettres : 0 (Pleine) ou 1 (Vide)
#define RADAR_inB7_Dir TRISBbits.TRISB7// Configuration : État Radar intrusion temporisé
#define RADAR_inB7 LATBbits.LATB7 // Détection Radar : 0 (ON) ou 1 (OFF)
// PGC et PGD toujours en entrées au RESET
// par contre pas de sortie à 0 (au Gnd) connectées dessus si on veut reprogrammer le PIC
nota: c'est luxueux de mettre une sortie + 1 transistor (BC547) + relais (RL2) pour isoler les 2 pins de programmation
un jeu d'aiguillage par cavalier sur le circuit serait bien plus simple
d'autant qu'au Reset la sortie RC0 retombera en mode entrée
et de plus ,la connection ICSP <->Pickit est temporaire
#define With_ICS_INP_outC0 // Configuration ICS_INP : 2x Inputs (POSTE +RADAR) ou ICSP (PCD+PDD) / (Menu D4)
#ifdef With_ICS_INP_outC0
#define ICS_INP_outC0_Dir TRISCbits.TRISC0
#define ICS_INP_outC0 LATCbits.LATC0 // selon état PROG : 0 -> 2 x input) ; 1 -> ICSP
#endif
// ? RC1 CCP2 PWM1_OP_outC1 // Duty PWM Ouverture Vantail 1 : PWM_LW (Taux Menu A2) ou PWM_Hi (Taux Menu A3) selon MOTOR1
// ? RC2 CCP1 PWM1_CL_outC2 // Duty PWM Fermeture Vantail 1 : PWM_LW (Taux Menu A2) ou PWM_Hi (Taux Menu A3) selon MOTOR1
// ? RC3 BID I2C_SCL // Port Clock
// ? RC4 BID I2C-SDA // Port Data
#define With_LCK_Verrou // État de mise sous tension de la bobine du verrou
//le terme Etat laisse supposer que c'est une lecture entree PIC,
#ifdef With_LCK_Verrou
#define Cde_LCK_Bob_outC5_Dir TRISCbits.TRISC5 //=0 => Sortie
#define Cde_LCK_Bob_outC5 LATCbits.LATC5 // 0 (OFF) ou 1 (ON) Sortie
#define Etat_LCK_Bob_C5 PORTAbits.RC5; // lecture de la sortie RC5
#endif
#define With_FLASH
#ifdef With_FLASH
#define FLASH_outD0_Dir TRISDbits.TRISD0 // État Commande Feu Flash
#define FLASH_outD0 LATDbits.LATD0 // 0 (OFF) ou 1 (ON)
#endif
#define With_SIRENE
#ifdef With_SIRENE
// État Commande Sirène autoalimentée activée (Report Alarme Portail active vers la Maison)
#define SIRN_outD1_Dir TRISDbits.TRISD1
#define SIRN_outD1 LATDbits.LATD1 // 0 (OFF) ou 1 (ON)
#endif
#define With_BUZZER
// État Commande Buzzer à 2 tons
#ifdef With_BUZZER
#define BUZ_outD2_Dir TRISDbits.TRISD2
#define BUZ_outD2 LATDbits.LATD2 // selon 3 états de BUZ (0;1;2)
//? #define BUZ_outD2_Toggle() do { LATDbits.LATD2 = ~LATDbits.LATD2; } while(0)
#endif
#define With_SURVEIL
#ifdef With_SURVEIL
#define SURV_outD3_Dir TRISDbits.TRISD3 // Validation fugitive : mise sous Alarme Maison via Code 2
#define SURV_outD3 LATDbits.LATD3 // 1 (ON) ou 0 (nothing)
#endif
#define With_LedHome
#ifdef With_LedHome
#define LedHome_outD4_Dir TRISDbits.TRISD4
#define LedHome_outD4 LATDbits.LATD4 // selon 4 états de LHM (0;1;2;3)
//? #define LedHome_outD4_Toggle() do { LATDbits.LATD4 = ~LATDbits.LATD4; } while(0)
#endif
#define With_Led_Jn
#ifdef With_ Led_Jn
#define Led_Jn_outD5 LATDbits.LATD5
#define Led_Jn_outD5_Dir TRISDbits.TRISD5 // => selon 4 états de LJN (0;1;2;3)
//? #define Led_Jn_outD5_Toggle() do { LATDbits.LATD5 = ~LATDbits.LATD5; } while(0)
#endif
#define With_Led_Vr
#ifdef With_Led_Vr
#define Led_Vr_outD6 LATDbits.LATD6
#define Led_Vr_outD6_Dir TRISDbits.TRISD6 // selon 4 états de LVB (0;1;2;3)
//? #define Led_Vr_outD6_Toggle() do { LATDbits.LATD6 = ~LATDbits.LATD6; } while(0)
#endif
#define With_Led_Rg
#ifdef With_Led_Rg
#define Led_Rg_outD7 LATDbits.LATD7
#define Led_Rg_outD7_Dir TRISDbits.TRISD7 // selon 4 états de LRG (0;1;2;3)
//? #define Led_Rg_outD7_Toggle() do { LATDbits.LATD7 = ~LATDbits.LATD7; } while(0)
#endif
#define With_Poussoir_Sx10
#ifdef With_Poussoir_Sx10
#define Sx1_inE0_Dir TRISEbits.TRISE0 // Action fugitive : Paramétrage Poussoir Sx1
#define Sx1_inE0 LATEbits.LATE0 // 0 (poussé) ou 1 (repos)
#endif
#define With_Poussoir_Sx2
#ifdef With_Poussoir_Sx2
#define Sx2_inE1_Dir TRISEbits.TRISE1 // Action fugitive : Paramétrage Poussoir Sx2
#define Sx2_inE1 LATEbits.LATE1 // 0 (poussé) ou 1 (repos)
#endif
#define With_Alert_INA
#ifdef With_Alert_INA
#define Alert_inE2_Dir TRISEbits.TRISE2 // État Sécurité interne aux INA
#define Alert_inE2 LATEbits.LATE2 // 0 (ON) ou 1 (OFF)
#endif
// ? MCLR // Reset MCLR via Sx0 // 0 (poussé) ou 1 (repos)
#define With_UART1
//.. dans le Hardware init
#ifdef With_UART1
TRISCbits.TRISC6=0; // BlueTooth HC05/06_Rx ou via cordon USB_Rx
LATCbits.RC6=1;
TRISCbits.TRISC7=1 // BlueTooth HC05/06_Tx ou via cordon USB_Tx
WUPC6=1;
WUPC7=1;
RC6PPS = 0x13; //RC6->UART1:TX1;
U1RXPPS = 0x17; //RC7->UART1:RX1;
#endif
20 Khz me parait bien trop elevé ...
choix de valeurs PWM
à suivre ....
sur le schema (pdf) vers TCA U16
je ne retouve pas U_Low U_Home U_High ? en analogique ?
suite au document Babar64
Version V1.0.0-26-06-18_Soft_PIC18F47K42.docx
réponses partielles ci dessous
//2026-0622_Soft_PIC18F47K42.docx
terme BID signification ?
ATTENTION à bien differencier au niveau des "define"...
*ETAT d'une sortie Lire l'etat de la commande via PORTx
* Cde ETAT sortie Ecriture ETAT sortie via Output LATx
utilisation du #ifdef ..pour isoler des ensembles Hardware ou software non activé dans l'application
On part du principe DIVISER POUR MIEUX REGNER
permettant de tester individuellement certaines portions de code (ou hardware)
..regroupage global de define
// Datas (mesurages)
float Ames_INA1= 0.00 ; // 0.00 à la compilation Valeur du Mesurage Amp INA2…
float Ames_INA2= 0.00 ; // en dur dans le code
// Datas (calculés)
uint16_t Duty_LW= 10 ; // Valeur PWM définies par defaut en dur dans le code au 1er chargement
uint16_t Duty_HI= 85 ; //ou remontée depuis l' Eeprom apres un reset
// Ports du PIC
#define With_Alarme Maison
#ifdef With_Alarme Maison
#define TCA_Jn_inA0_Dir TRISAbits.TRISA0
#define TCA_Jn_inA0 LATAbits.LATA0 // 0 (Dispo) ou 1 (Non dispo)
#define TCA_Rg_inA1_Dir TRISAbits.TRISA1 //Alarme_Maison en service
#define TCA_Rg_inA1 LATAbits.LATA1 // 0 (ON) ou 1 (OFF)
#define ALARM_inA5_Dir TRISAbits.TRISA5 // Action fugitive : Commande Clavier de mise sous Alarme Maison (code 2)
#define ALARM_inA5 LATAbits.LATA5 // 0 (ON) ou 1 (OFF)
#endif
#define With_contact_Portillon
#ifdef With_contact_Portillon
#define PTNctc_inA2_Dir TRISAbits.TRISA2
#define PTNctc_inA2 LATAbits.LATA2 // 0 (fermé) ou 1 (ouvert)
#define OBST_inA3_Dir TRISAbits.TRISA3// État détection Entrave
#define OBST_inA3 LATAbits.LATA3 // 0 (OFF) ou 1 (ON)
#define ASbcl_inA4_Dir TRISAbits.TRISA4// État boucle autosurveillance
#define ASbcl_inA4 LATAbits.LATA4 // 0 (fermée) ou 1 (ouverte)
#define CMDptl_inA6_Dir TRISAbits.TRISA6// État Commande Portail valide (contact du verrou fermé)
#define CMDptl_inA6 LATAbits.LATA6 // 0 (fermé) ou 1 (ouvert)
#define PTLcmd_inA7_Dir TRISAbits.TRISA7 // Action fugitive : Ordre de Commande Ouverture / Fermeture du Portail lancé
#define PTLcmd_inA7 LATAbits.LATA7 // 0 (ON/OFF) ou 1 (nothing)
#endif
#define With_Vantaux
#ifdef With_Vantaux
#define SwOP1_inB1_Dir TRISBbits.TRISB1// État Contact came OP du vantail 1
#define SwOP1_inB1 LATBbits.LATB1 // 0 (fermé) ou 1 (ouvert)
#define SwCL1_inB2_Dir TRISBbits.TRISB2
#define SwCL1_inB2 LATBbits.LATB2 // 0 (fermé) ou 1 (ouvert)
#define SwOP2_inB3_Dir TRISBbits.TRISB3// État Contact came OP du vantail 2
#define SwOP2_inB3 LATBbits.LATB3 // 0 (fermé) ou 1 (ouvert)
#define SwCL2_inB4_Dir TRISBbits.TRISB4// État Contact came CL du vantail 2
#define SwCL2_inB4 LATBbits.LATB4 // 0 (fermé) ou 1 (ouvert)
#endif
#define POSTE_inB6_Dir TRISBbits.TRISB6// Configuration : État Boite aux lettres
#define POSTE_inB6 LATBbits.LATB6 // Boite aux lettres : 0 (Pleine) ou 1 (Vide)
#define RADAR_inB7_Dir TRISBbits.TRISB7// Configuration : État Radar intrusion temporisé
#define RADAR_inB7 LATBbits.LATB7 // Détection Radar : 0 (ON) ou 1 (OFF)
// PGC et PGD toujours en entrées au RESET
// par contre pas de sortie à 0 (au Gnd) connectées dessus si on veut reprogrammer le PIC
nota: c'est luxueux de mettre une sortie + 1 transistor (BC547) + relais (RL2) pour isoler les 2 pins de programmation
un jeu d'aiguillage par cavalier sur le circuit serait bien plus simple
d'autant qu'au Reset la sortie RC0 retombera en mode entrée
et de plus ,la connection ICSP <->Pickit est temporaire
#define With_ICS_INP_outC0 // Configuration ICS_INP : 2x Inputs (POSTE +RADAR) ou ICSP (PCD+PDD) / (Menu D4)
#ifdef With_ICS_INP_outC0
#define ICS_INP_outC0_Dir TRISCbits.TRISC0
#define ICS_INP_outC0 LATCbits.LATC0 // selon état PROG : 0 -> 2 x input) ; 1 -> ICSP
#endif
// ? RC1 CCP2 PWM1_OP_outC1 // Duty PWM Ouverture Vantail 1 : PWM_LW (Taux Menu A2) ou PWM_Hi (Taux Menu A3) selon MOTOR1
// ? RC2 CCP1 PWM1_CL_outC2 // Duty PWM Fermeture Vantail 1 : PWM_LW (Taux Menu A2) ou PWM_Hi (Taux Menu A3) selon MOTOR1
// ? RC3 BID I2C_SCL // Port Clock
// ? RC4 BID I2C-SDA // Port Data
#define With_LCK_Verrou // État de mise sous tension de la bobine du verrou
//le terme Etat laisse supposer que c'est une lecture entree PIC,
#ifdef With_LCK_Verrou
#define Cde_LCK_Bob_outC5_Dir TRISCbits.TRISC5 //=0 => Sortie
#define Cde_LCK_Bob_outC5 LATCbits.LATC5 // 0 (OFF) ou 1 (ON) Sortie
#define Etat_LCK_Bob_C5 PORTAbits.RC5; // lecture de la sortie RC5
#endif
#define With_FLASH
#ifdef With_FLASH
#define FLASH_outD0_Dir TRISDbits.TRISD0 // État Commande Feu Flash
#define FLASH_outD0 LATDbits.LATD0 // 0 (OFF) ou 1 (ON)
#endif
#define With_SIRENE
#ifdef With_SIRENE
// État Commande Sirène autoalimentée activée (Report Alarme Portail active vers la Maison)
#define SIRN_outD1_Dir TRISDbits.TRISD1
#define SIRN_outD1 LATDbits.LATD1 // 0 (OFF) ou 1 (ON)
#endif
#define With_BUZZER
// État Commande Buzzer à 2 tons
#ifdef With_BUZZER
#define BUZ_outD2_Dir TRISDbits.TRISD2
#define BUZ_outD2 LATDbits.LATD2 // selon 3 états de BUZ (0;1;2)
//? #define BUZ_outD2_Toggle() do { LATDbits.LATD2 = ~LATDbits.LATD2; } while(0)
#endif
#define With_SURVEIL
#ifdef With_SURVEIL
#define SURV_outD3_Dir TRISDbits.TRISD3 // Validation fugitive : mise sous Alarme Maison via Code 2
#define SURV_outD3 LATDbits.LATD3 // 1 (ON) ou 0 (nothing)
#endif
#define With_LedHome
#ifdef With_LedHome
#define LedHome_outD4_Dir TRISDbits.TRISD4
#define LedHome_outD4 LATDbits.LATD4 // selon 4 états de LHM (0;1;2;3)
//? #define LedHome_outD4_Toggle() do { LATDbits.LATD4 = ~LATDbits.LATD4; } while(0)
#endif
#define With_Led_Jn
#ifdef With_ Led_Jn
#define Led_Jn_outD5 LATDbits.LATD5
#define Led_Jn_outD5_Dir TRISDbits.TRISD5 // => selon 4 états de LJN (0;1;2;3)
//? #define Led_Jn_outD5_Toggle() do { LATDbits.LATD5 = ~LATDbits.LATD5; } while(0)
#endif
#define With_Led_Vr
#ifdef With_Led_Vr
#define Led_Vr_outD6 LATDbits.LATD6
#define Led_Vr_outD6_Dir TRISDbits.TRISD6 // selon 4 états de LVB (0;1;2;3)
//? #define Led_Vr_outD6_Toggle() do { LATDbits.LATD6 = ~LATDbits.LATD6; } while(0)
#endif
#define With_Led_Rg
#ifdef With_Led_Rg
#define Led_Rg_outD7 LATDbits.LATD7
#define Led_Rg_outD7_Dir TRISDbits.TRISD7 // selon 4 états de LRG (0;1;2;3)
//? #define Led_Rg_outD7_Toggle() do { LATDbits.LATD7 = ~LATDbits.LATD7; } while(0)
#endif
#define With_Poussoir_Sx10
#ifdef With_Poussoir_Sx10
#define Sx1_inE0_Dir TRISEbits.TRISE0 // Action fugitive : Paramétrage Poussoir Sx1
#define Sx1_inE0 LATEbits.LATE0 // 0 (poussé) ou 1 (repos)
#endif
#define With_Poussoir_Sx2
#ifdef With_Poussoir_Sx2
#define Sx2_inE1_Dir TRISEbits.TRISE1 // Action fugitive : Paramétrage Poussoir Sx2
#define Sx2_inE1 LATEbits.LATE1 // 0 (poussé) ou 1 (repos)
#endif
#define With_Alert_INA
#ifdef With_Alert_INA
#define Alert_inE2_Dir TRISEbits.TRISE2 // État Sécurité interne aux INA
#define Alert_inE2 LATEbits.LATE2 // 0 (ON) ou 1 (OFF)
#endif
// ? MCLR // Reset MCLR via Sx0 // 0 (poussé) ou 1 (repos)
#define With_UART1
//.. dans le Hardware init
#ifdef With_UART1
TRISCbits.TRISC6=0; // BlueTooth HC05/06_Rx ou via cordon USB_Rx
LATCbits.RC6=1;
TRISCbits.TRISC7=1 // BlueTooth HC05/06_Tx ou via cordon USB_Tx
WUPC6=1;
WUPC7=1;
RC6PPS = 0x13; //RC6->UART1:TX1;
U1RXPPS = 0x17; //RC7->UART1:RX1;
#endif
20 Khz me parait bien trop elevé ...
choix de valeurs PWM
à suivre ....
sur le schema (pdf) vers TCA U16
je ne retouve pas U_Low U_Home U_High ? en analogique ?
Portail lourd motorisé 2 vantaux 24v
Bonjour à tous,
Merci Paul !
Oui Paul, je n'ai pas tout détaillé : c'est une tension analogique qui est fournie par la Centrale d'Alarme de la Maison. Elle est d'abord ajustée par RV8 pour ne pas dépasser les 6v de la tension de référence du TCA, puis les 2 seuils Bas et Haut de la fenêtre sont ajustés par RV7 et RV6. P6 à P10 sont des points de mesure.
Donc, OK, pour retour à des cavaliers (que j'avais initialement prévus, et donc sans incidence majeure au PCB).
Reste une question :
Serait-ce utile d'utiliser RC0, en entrée cette fois, pour une gestion de la sélection faite (condition d'Exploitation valide avec RB6 et RB7 en entrée), comme ci-dessous ?
A venir, la mise à jour des fichiers avec :
-> l'ajout des conditions pour les périphériques
-> l'ajout des indications correctives de Paul
-> corrections de quelques erreurs de frappe
A+
Merci Paul !
paulfjujo a écrit :Source du message sur le schema (pdf) vers TCA U16
je ne retouve pas U_Low U_Home U_High ? en analogique ?
Oui Paul, je n'ai pas tout détaillé : c'est une tension analogique qui est fournie par la Centrale d'Alarme de la Maison. Elle est d'abord ajustée par RV8 pour ne pas dépasser les 6v de la tension de référence du TCA, puis les 2 seuils Bas et Haut de la fenêtre sont ajustés par RV7 et RV6. P6 à P10 sont des points de mesure.
Oups! j'ai effectivement zappé le Reset...paulfjujo a écrit :Source du message un jeu d'aiguillage par cavalier sur le circuit serait bien plus simple
d'autant qu'au Reset la sortie RC0 retombera en mode entrée
Donc, OK, pour retour à des cavaliers (que j'avais initialement prévus, et donc sans incidence majeure au PCB).
Reste une question :
Serait-ce utile d'utiliser RC0, en entrée cette fois, pour une gestion de la sélection faite (condition d'Exploitation valide avec RB6 et RB7 en entrée), comme ci-dessous ?
OK. On peux ramener à 10kz, sachant que le menu A1 permet une sélection sur 2 chiffres (donc en théorie de1kHz à 99kHz !!!) : des valeurs de saisies qui doivent bien sûr être limitéespaulfjujo a écrit :Source du message 20 Khz me parait bien trop elevé ...
A venir, la mise à jour des fichiers avec :
-> l'ajout des conditions pour les périphériques
-> l'ajout des indications correctives de Paul
-> corrections de quelques erreurs de frappe
A+
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Portail lourd motorisé 2 vantaux 24v
- paulfjujo

Maître- Messages : 3341
- Âge : 75
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
Babar64 a écrit :Reste une question :
Serait-ce utile d'utiliser RC0, en entrée cette fois, pour une gestion de la sélection faite (condition d'Exploitation valide avec RB6 et RB7 en entrée), comme ci-dessous ?
ICSP_2Input.jpg
ça reste encore luxueux , mais Pourquoi pas !... à voir si RC0 restera dispo ..(.ne represente pas une pin de reserve pour la suite.).
RC0=0 au lancement programme ..bloque le programme
avec Msg LCD ... "basculer le switch RB6-RB7"
il y a eu le" Pourquoi Pas" et le "Titanic" .. on a le choix (funeste)As-tu la possibilité de monter une maquette breadboard avec PIC18F47K42 , LCD 4x20 I2C , INA226,
interface de puissance et une charge (R) fictive
SANS le PORTAIL.
Quid de la mise à jour version MPLAB CX8 ?
J'ai encore l'ancienne version sur mon PC Win10 12Go compil en 4min
La nouvelle version MPLABX IDE et XC8 sur mon nouveau PC Win11 I7 et 32Go de ram compil en 5sec
Retourner vers « Coin Fourre-tout »
Qui est en ligne
Utilisateurs parcourant ce forum : Google [Bot], paulfjujo et 14 invités

