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
Réglage TIMER1 sur pIC18F47K40
-
Jérémy
Administrateur du site- Messages : 2725
- Âge : 45
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
Bonjour à tous,
Je commence à me mordre les doigts d'avoir choisis ce PIC !!! Mais maintenant c'est trop tard pour changer . Je dois donc faire l'effort !
Je n'arrive pas à comprendre le réglage du timer 1.
J'ai essayé de nombreuses combinaisons sans succés ma led test reste éteinte .
Voici le bout de code test, seulement pour faire clignoter une led toutes les 30ms pendant 30ms
Voyez vous ce qui me manque dans les réglages pour faire clignoter ma LED !
Je commence à me mordre les doigts d'avoir choisis ce PIC !!! Mais maintenant c'est trop tard pour changer . Je dois donc faire l'effort !
Je n'arrive pas à comprendre le réglage du timer 1.
J'ai essayé de nombreuses combinaisons sans succés ma led test reste éteinte .
Voici le bout de code test, seulement pour faire clignoter une led toutes les 30ms pendant 30ms
Code : Tout sélectionner
#define LED_R LATC.B2 // Sortie led rouge
char i;
//##############################################################################
//------------------------ INTERRUPTION -----------------------------
void interrupt(){
if (TMR1IF_bit){
TMR1IF_bit = 0;
TMR1H = 0x15;
TMR1L = 0xA0;
LED_R = ~LED_R;
}
}
void main() {
// RAZ des broches
LATA = LATB = LATC = LATD = LATE = 0;
// registres des I/O
TRISA = 0x7F; // RA7 en sortie pour moteur
TRISC = 0xFA; // RC0 en sortie pour moteur et RC2 pour led_rouge
TRISB = TRISD = TRISE = 0xFF;
// registrse analogiques
ANSELA = ANSELB = ANSELC = ANSELD = ANSELE = 0x00;
// test de clignotement
for (i=0;i<6;i++){
LED_R = ~LED_R;
delay_ms(1000);
}
// Timer 1
TMR1IF_bit = 0; // RAZ du flag
TMR1H = 0x15; // remplissage du registre pour 30 ms
TMR1L = 0xA0;
TMR1CLK = 0b00000011; // HFINTOSC
T1CON = 0b00110001; // PRESCALER 1:8 ; RD16 = 0 ; Timer ON = 1;
TMR1IE_bit = 1; // active l'INT sur dépassement timer
INTCON.PEIE = 1; // Active les INT Periphériques
INTCON.GIE = 1; // Active toutes les INT
}
Voyez vous ce qui me manque dans les réglages pour faire clignoter ma LED !
Réglage TIMER1 sur pIC18F47K40
-
Jérémy
Administrateur du site- Messages : 2725
- Âge : 45
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
Bon ben j'ai écris trop vite .
Voila la configuration de mon timer 1 qui fonctionne:
Il faut mettre Fosc sur Fosc et non sur HFINTOSC comme je le croyais !
Il faut mettre aussi RD16 à 0 pour avoir des mots de 8bits pour al configuration aussi §
Voila la configuration de mon timer 1 qui fonctionne:
Il faut mettre Fosc sur Fosc et non sur HFINTOSC comme je le croyais !
Il faut mettre aussi RD16 à 0 pour avoir des mots de 8bits pour al configuration aussi §
Code : Tout sélectionner
// Timer 1
TMR1IF_bit = 0; // RAZ du flag
TMR1H = 0x15; // remplissage du registre pour 30 ms
TMR1L = 0xA0;
TMR1CLK = 0b00000001 ;
T1CON = 0b00110001; // PRESCALER 1:8 ; RD16 = 0 ; Timer ON = 1;
TMR1IE_bit = 1; // active l'INT sur dépassement timer
INTCON.PEIE = 1; // Active les INT Periphériques
INTCON.GIE = 1; // Active toutes les INT
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 106 invités