Bonjour à tous !
Je suis en traind e concevoir un quadritotor, et j'ai un gros problème pour générer un signal carré à l'aide du TMR0 d'un pic 16F877.
Mon compilateur est MikroC.
J'ai configuré le registre INTCON comme ceci : 10100000
J'ai mis le bit 7 à 1 pour valider toutes les interruptions.
J'ai mis le bit 5 à 1 pour valider les interruptions lors débordement du tmr0.
J'ai configuré le registre OPTION comme ceci : 10010000
Voici mon r=programme en C :
Le problème, c'est que j'ai 0.1 V qui sort alors que je devrai avoir 0.40V. En et + à l'oscilloscope mon signal b'est pas carré (c'est un signal de "crotte").Code:void main () { PORTC=0; TRISC=0; //En sortie PORTA = 0; TRISA = 1; //PORTA en entrée OPTION_REG=0b10010000; // Timer INTCON=0b10100000; while (1) { ////////////////impulsion///////////////////////////////////////// if (compteur1 == 117 && impulsionC1 == 1) //Compteur1 = PWM1 est augmenté { PORTC.F1=0; compteur1=0; impulsionC1=0; } if (compteur2 == 112 && impulsionC2 == 1) //Compteur2 = PWM2 est réduit { PORTC.F2=0; compteur2=0; impulsionC2=0; } ////////////////////////////////////////////////////////////////// ///////////////temps de latence/////////////////////////////////// if (compteur1 == 1445 && impulsionC1 == 0) { PORTC.F1=1; compteur1=0; impulsionC1=1; } if (compteur2 == 1451 && impulsionC2 == 0) { PORTC.F2=1; compteur2=0; impulsionC2=1; } ////////////////////////////////////////////////////////////////// } }
Suis-je assez clair ? Merci d'avance pour vos réponses !
-----