Bonjour
Voilà j'ai un programme (fait sous Flowcode V3) qui doit me sortir un état haut de 14µs puis état bas de 14µs tout sa 30 fois avec une pause de 9ms après les 30 fois pour recommencé, or je n'arrive pas à utilisé delay_us.
Je sait bien qu'une boucle prend du temps a s'exécuter, mais comment je pourrais avoir mes 14µs ?
voilà le code C
Quand je test je trouve 35µs à l'état haut et 45µs à l'état bas.Code://************************************************************************************ //** //** File name: F:\2eme phase\PIC12F629_2eme_phase.c //** Generated by: Flowcode v3.4.7.48 //** Date: Thursday, March 26, 2009 12:12:05 //** Licence: ** User //** Registered to: ************* //** //** //** PAS À USAGE COMMERCIAL //** //** http://www.matrixmultimedia.com //************************************************************************************ #define MX_PIC //Définir pour microcontrôleur #define P12F629 #define MX_EE #define MX_EE_TYPE1 #define MX_EE_SIZE 128 //Fonctions #include <system.h> #pragma CLOCK_FREQ 4000000 //Configuration de données #pragma DATA 0x2007, 0xf95 //Fonctions internes #include "C:\Program Files\Matrix Multimedia\Flowcode V3\FCD\internals.h" //Déclarations de fonction Macro //Déclarations de Variable char FCV_DURE; char FCLV_LOOP1; //Définitions supplémentaires //Implémentations Macro //Installation supplémentaire void main() { //Initialisation cmcon = 0x07; //Code d'initialisation d'Interruption option_reg = 0xC0; //Boucle //Boucle: Tant que1 while (1) { //Boucle //Boucle: Boucle 30 fois for (FCLV_LOOP1=0; FCLV_LOOP1<30; FCLV_LOOP1++) { //Sortie //Sortie: 1 -> A2 trisio = trisio & 0xfb; if (1) gpio = (gpio & 0xfb) | 0x04; else gpio = gpio & 0xfb; //Code C //Code C: { delay_us(14); } //Sortie //Sortie: 0 -> A2 trisio = trisio & 0xfb; if (0) gpio = (gpio & 0xfb) | 0x04; else gpio = gpio & 0xfb; //Code C //Code C: { delay_us(14); } } //Pause //Pause: 9 ms delay_ms(9); } mainendloop: goto mainendloop; } void interrupt(void) { }
-----