Donc, si je comprend bien, dand le programme que j'ai ici, cpt est le nombre de fois que t0if a changé?
Autre chose, ou puis-je trouver <timers.h>? Parce que lorsque j'écris la lignes #include <timers.h>, le compilateur me dit ERREUR (il ne trouve pas cette librairie).
Meci pour votre aide.
#include <18F458.h>
#device ICD=TRUE
#device adc=8
#use delay(clock=20000000)
#fuses NOWDT,WDT128,RC_IO, NOPROTECT, NOOSCSEN, BROWNOUT, BORV20, NOPUT, NOCPD, STVREN, NODEBUG, LVP, NOWRT, NOWRTD, NOWRTB, NOCPB, NOWRTC, NOEBTR, NOEBTRB
#define LED_A1 PIN_A1
#define LED_A2 PIN_A2
#define LED_A3 PIN_A3
#use rs232(baud=9600,parity=N,xmit= PIN_C6,rcv=PIN_C7,bits=9)
#define (__PCM__)
#define Reception PIN_B2
#include "C:\Cours\SLP\My_Library\Lcd42 0.c"//On inclut le driver du LCD qui va être recherché lors de la compilation.
#int_RTCC // Timer 0 (RTCC) overflow; Pour le fonctionnement du timer0.
boolean tmr0_flag;
void Compteur(void);
int cpt=0;
#int_TIMER0
TIMER0_isr()
{
cpt++;
}
RTCC_isr()
{
}
#int_TIMER2 // Timer 2 overflow
TIMER2_isr()
{
}
void main()
{
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);//Configurer le convertisseur analogique/digital. Pas utilisé ici.
setup_psp(PSP_DISABLED);//Pour l'initialisation du parallèle slave port. Ici pas utilisé.
setup_spi(FALSE);//Pour l'initialisation de l'interface du port série. Ici pas activé.
setup_wdt(WDT_OFF);//Fonction qui met en route le watchdog timer. Ici il n'est pas activé.( Est-ce normal??)
setup_timer_0(RTCC_INTERNAL|RT CC_DIV_128|RTCC_8_bit);//Pour l'initialisation du timer0
//setup_timer_0(RTCC_INTERNAL|RT CC_8_BIT); Remplacée par la ligne du dessus : pour avoir une interruption toute les 6,55ms
setup_timer_1(T1_DISABLED);//Pour l'initialisation du timer1. Pas utilisé ici.
setup_timer_2(T2_DIV_BY_1,127, 1);//Pour l'initialisation du timer2: générer les 40khz de l'émission.
setup_timer_3(T3_DISABLED|T3_D IV_BY_1);//Pour l'initialisation du timer3. Pas utilisé ici.
setup_ccp1(CCP_PWM);//Pour initialiser la pin ccp1 en mode PWM (pour pouvoir envoyer les 40khz par là).
setup_comparator(NC_NC_NC_NC);//Pour l'initialisation du comparateur analogique. Pas utilisé ici.
enable_interrupts(INT_RTCC);//Pour "autoriser" les interruptions du timer0.
enable_interrupts(INT_TIMER2);//Pour "autoriser" les interruptions du timer2.
enable_interrupts(GLOBAL);//pour réactiver les interruptions
//Le niveau GLOBAL ne permettra aucune des interruptions spécifiques
//mais permettra chacune des interruptions spécifiques précédemment permises de devenir actif.
lcd_init();//Initialisation du LCD.
set_pwm1_duty(30); //Cette ligne va avec le ccp1 mais à quoi elle sert?
// This sets the time the pulse is
// high each cycle. We use the A/D
// input to make a easy demo.
// the high time will be:
// if value is LONG INT:
// value*(1/clock)*t2div
// if value is INT:
// value*4*(1/clock)*t2div
// for example a value of 30 and t2div
// of 1 the high time is 12us
// WARNING: A value too high or low will
// prevent the output from
// changing.
for(; {
lcd_gotoxy (1,1);
printf(lcd_putc," Chrono");
lcd_gotoxy (1,2);
printf(lcd_putc," %02u ",cpt);
if(cpt==55)
cpt=0;
}
}
Encore merci.
-----