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
MPLABX XC8 System initialisation
- paulfjujo
Expert- Messages : 2598
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonjour à tous,
je voudrais votre avis sur la façon que MCC réalise l'initialisation system
l'ordre des differentes initialisations me parait inapproprié :
j'aurais plutôt mis l'ordre suivant :
PIN_MANAGER_Initialize(); // peut concerner RA6 et RA7
OSCILLATOR_Initialize(); // il faut bien que le MCU oscille , autre que Frequnce par defaut
PMD_Initialize(); // pour les annexes
I2C1_Initialize(); // une fois que les PPS relient les bonnes pins
NCO1_Initialize(); // une fois que les PPS relient les bonnes pins
TMR2_Initialize();
PWM5_Initialize(); // une fois que les PPS relient les bonnes pins
EXT_INT_Initialize();
TMR1_Initialize();
UART1_Initialize(); // une fois que les PPS relient les bonnes pins
I NTERRUPT_Initialize(); // une fois que les acteurs d'interrupt sont déja mis en place
Votre avis m'interesse ..
nota:
j'ai volontairement inhibé l'init ADC ..qui ne marche pas
remplacée par :
Nota:a prochaine étape est de remplacer MCC RX interrupt
mon projet MPLABX en cours ... (OK , mais RX interrupt pas encore traitée)
nota:
utilise ADC1,RTC,OLED LCD ,NCO1,PWM5 10 bits..et UART
Nota: module ADXL345 déja utilisé ICI avec 18F26K22 en C18
nota:
avec MikroC on peut gerer parfaitement l 'interrupt RX
la librairie UART ne gérant pas l'interrupt comme avec MCC
de quoi devenir chèvre (béééh ) quand on passe de l'un à l'autre ( MikroC et MPLAXB XC8)
sans parler de Necto Studio encore pire que MCC
je voudrais votre avis sur la façon que MCC réalise l'initialisation system
Code : Tout sélectionner
void SYSTEM_Initialize(void)
{
INTERRUPT_Initialize(); // étatit en 1ere position ?
PMD_Initialize();
I2C1_Initialize();
PIN_MANAGER_Initialize();
OSCILLATOR_Initialize();
// ADCC_Initialize();
NCO1_Initialize();
TMR2_Initialize();
PWM5_Initialize();
EXT_INT_Initialize();
TMR1_Initialize();
UART1_Initialize();
INTERRUPT_Initialize(); // étatit en 1ere position ?
}
l'ordre des differentes initialisations me parait inapproprié :
j'aurais plutôt mis l'ordre suivant :
PIN_MANAGER_Initialize(); // peut concerner RA6 et RA7
OSCILLATOR_Initialize(); // il faut bien que le MCU oscille , autre que Frequnce par defaut
PMD_Initialize(); // pour les annexes
I2C1_Initialize(); // une fois que les PPS relient les bonnes pins
NCO1_Initialize(); // une fois que les PPS relient les bonnes pins
TMR2_Initialize();
PWM5_Initialize(); // une fois que les PPS relient les bonnes pins
EXT_INT_Initialize();
TMR1_Initialize();
UART1_Initialize(); // une fois que les PPS relient les bonnes pins
I NTERRUPT_Initialize(); // une fois que les acteurs d'interrupt sont déja mis en place
Votre avis m'interesse ..
nota:
j'ai volontairement inhibé l'init ADC ..qui ne marche pas
remplacée par :
Code : Tout sélectionner
y_Init_ADC1(void)
{
ADCON0bits.FM = 1; //right justify
ADCON0bits.CS = 1; //ADCRC Clock
ADPCH = 0x01; //RA1 is Analog channel
TRISAbits.TRISA1 = 1; //Set RA0 to input
ANSELAbits.ANSELA1 = 1; //Set RA0 to analog
ADCON0bits.ON = 1; //Turn ADC On
}
----- usage ------
CPrint(" Init ADC EA1\r\n");
My_Init_ADC1();
CPrint(" 1024 Mesures et Moyenne ADC EA1\r\n");
j=0;
EA1_Avg=0;
while(j<1024)
{
SQA=1; // pour mesure duree acquisition
ADCON0bits.GO = 1; //Start conversion
while (ADCON0bits.GO); //Wait for conversion done
pot_value= ADRESH<<8 | ADRESL; //Read result*
SQA=0;
EA1_Avg= EA1_Avg+ pot_value;
j++;
}
EA1_Avg=EA1_Avg>>10;
F0 = (float)EA1_Avg * ADCRES ;//* 10000;
Buffer2[0]=0;
sprintf(Buffer2," j=%05d Moyenne 1024 mesures EA1_Avg=%lu soit %5.3fV ",j,EA1_Avg,F0);
Print(Buffer2);
CRLF1();
Nota:a prochaine étape est de remplacer MCC RX interrupt
mon projet MPLABX en cours ... (OK , mais RX interrupt pas encore traitée)
nota:
utilise ADC1,RTC,OLED LCD ,NCO1,PWM5 10 bits..et UART
Nota: module ADXL345 déja utilisé ICI avec 18F26K22 en C18
nota:
avec MikroC on peut gerer parfaitement l 'interrupt RX
la librairie UART ne gérant pas l'interrupt comme avec MCC
de quoi devenir chèvre (béééh ) quand on passe de l'un à l'autre ( MikroC et MPLAXB XC8)
sans parler de Necto Studio encore pire que MCC
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 115 invités