Bonjour,
j'ai une entrée analogique à l'aide d'un potentiomètre et un signal externe de freq 50hz. par rapport à cette valeur je dois réquperer en sortie à chaque front montant un signal nul pendant une durée relative à l’entrée analogique , puis à 1 pendant 1ms puis il revient à 0 jusq'à 10ms.
cad pour 5v-->retard=9ms
0v-->retard=0ms
voici mon programme mais ca na pas marcher. il ne se compile pas sur microc.

Code:
#include<16F877.h>
#define out1 PIN_B1
#define out2 PIN_B2
//#define in PIN_BO
int retard_amorcage();
int interruption();
int16 tr=0;
int16 retard;
#INT_EXT
void interruption()
{
retard=retard_amorcage();
delay_us(retard);
output_high(out1);
delay_ms(1);
output_low(out1);
delay_us(10000-1000);
output_high(out2);
delay_ms(1);
output_low(out2);
}
int retard_amorcage()
{
int8 value;
int16 val;
value= read_adc();
delay_us(10);
val= value*9000;
retard=val/255;
return retard;
}
void main ()
{
int8 retard,value;
setup_adc_ports(RA0_ANALOG);
setup_adc(ADC_CLOCK_INTERNAL);
set_adc_channel(0);
ext_int_edge(L_TO_H); // init interrupt triggering for button press
enable_interrupts(INT_EXT);// turn on interrupts
e[PHP]nable_interrupts(GLOBAL);
while(1)
{}
}
merci d'avance pour votre aide
younessrf