Bonjour, j'ai un problème, je veut faire la conversion d'un float vers une chaîne de caractères, seul problème le programme plante. Si j'enlève la ligne : "sprintf(buffer, "%12f", ww);" le programme fonctionne.
Comment faire? même si je prend un exemple du compilateur mikroC ça ne fonctionne pas
Merci
Code:void INIT (){ float ww = -1.2587538e+1; char buffer[15]; /******************************************************************************* CONFIGURATION OSCILLATEUR *******************************************************************************/ OSCCON = 0b01101110; //oscillateur interne 4MHz /******************************************************************************* CONFIGURATION ENTREE/SORTIE *******************************************************************************/ ADCON1 = 0b00001111; // configuration des port en entrée sortie numérique TRISA = 0; // sortie TRISB = 0b00000011; // RB0-RB1 entrées TRISC = 0b00000001; // RC0 entrée LATA.RA5 = 1; LATC.RC2 = 1; // CS AD9833 PORTA = 255; /******************************************************************************* CONFIGURATION INTERRUPTION *******************************************************************************/ IPEN_bit = 0; // Pour la configuration de INTCON INTCON = 0b10010000; // interruption sur RB0 INTCON2 = 0b00110001; // sur front descendent /******************************************************************************* CONFIGURATION SPI (CPOL = 1 & CPHA = 0) *******************************************************************************/ SPI1_Init_Advanced(_SPI_MASTER_OSC_DIV4, _SPI_DATA_SAMPLE_MIDDLE, _SPI_CLK_IDLE_HIGH, _SPI_HIGH_2_LOW); /******************************************************************************* CONFIGURATION LCD & AFFICHAGE DEPART *******************************************************************************/ Lcd_Init (); Lcd_Cmd (_LCD_CLEAR); Lcd_Out (1,10, "GBF"); Lcd_Out (2,5, "0.1Hz - 2MHz"); Lcd_Out (3,10, "BY"); Lcd_Out (4,8, "KEVIN"); sprintf(buffer, "%12f", ww); Lcd_Out (1,1, buffer); }
-----