hi everyone,
Good day. I have a problem in printing float values in atmel studio 6.2. I think it may be a BUG. And also ftoa function also not available in Atmel Studio 6.2. I am using Atmega 32 with 8MHz crystal. And my code is:
/* * Float_Bug.c * * Created: 12/11/2014 9:57:54 AM * Author: Dev5 */ #define F_CPU 8000000UL // Atmega32 with clock 8MHz #include <avr/io.h> #include <avr/pgmspace.h> #include <stdio.h> #include <util/delay.h> void uart0_init(void) { UCSRA=0x00; UCSRB=0x18; UCSRC=0x06; UBRRH=0x00; UBRRL=0x33; } void transmitByte( unsigned char data ) { while ( !(UCSRA & (1<<UDRE)) ) ; /* Wait for empty transmit buffer */ UDR = data; /* Start transmition */ } void transmitString(char* string) { while (*string) transmitByte(*string++); } int main(void) { float data_i_f; float data_f = 1.1; unsigned int data_i = 22; char temp[20]; uart0_init(); _delay_ms(500); transmitString("\nin main"); sprintf(temp,"\ndata_f=%f",data_f); transmitString(temp); _delay_ms(200); data_i_f = data_i / 10.0; sprintf(temp,"\ndata_i_f=%f",data_i_f); transmitString(temp); while(1) { //TODO:: Please write your application code } }
And the result i am getting is:
in main
data_f=?
data_i_f=?