Hallo mensen,
Ik heb een stukje code in C wat gegevens via UART een microcontroller uit gaat sturen, alleen worden de doubles en integers niet goed weergegeven. Uiteindelijk wil ik een double met één getal voor, en twee getallen na de komma (bijvoorbeeld 4,32) naar een andere microcontroller sturen, maar het weergeven van een simpel getal zonder komma's lukt al niet. Tot en met 9 gaat het goed, daarna werkt ie alle tekens van het keyboard af. Dit is bij een double en integer allebei hetzelfde. Hoe komt dit?
Hier mijn code:
#include <avr/io.h>
#include <util/delay.h>
#define BAUD 38400 // F_CPU is 8000000 Hz
#define UBRR_VALUE ( ((F_CPU) + 8UL*(BAUD)) / (16UL*(BAUD)) - 1UL )
void uart_init(unsigned int ubrr)
{
UBRRL = ubrr;
UBRRH = (ubrr >> 8);
UCSRC = _BV(URSEL)|_BV(UCSZ1)|_BV(UCSZ0);
UCSRB = _BV(TXEN);
}
int main(void)
{
double i;
uart_init(UBRR_VALUE);
while (1) {
for (i=0; i<=100; i++) {
while ( !(UCSRA & _BV(UDRE)) ) {};
UDR = i + '0';
}
_delay_ms(500);
}
}
Hier is wat in de Terminal wordt weergegeven:

Wie kan mij helpen? Alvast bedankt!
Ik heb een stukje code in C wat gegevens via UART een microcontroller uit gaat sturen, alleen worden de doubles en integers niet goed weergegeven. Uiteindelijk wil ik een double met één getal voor, en twee getallen na de komma (bijvoorbeeld 4,32) naar een andere microcontroller sturen, maar het weergeven van een simpel getal zonder komma's lukt al niet. Tot en met 9 gaat het goed, daarna werkt ie alle tekens van het keyboard af. Dit is bij een double en integer allebei hetzelfde. Hoe komt dit?
Hier mijn code:
#include <avr/io.h>
#include <util/delay.h>
#define BAUD 38400 // F_CPU is 8000000 Hz
#define UBRR_VALUE ( ((F_CPU) + 8UL*(BAUD)) / (16UL*(BAUD)) - 1UL )
void uart_init(unsigned int ubrr)
{
UBRRL = ubrr;
UBRRH = (ubrr >> 8);
UCSRC = _BV(URSEL)|_BV(UCSZ1)|_BV(UCSZ0);
UCSRB = _BV(TXEN);
}
int main(void)
{
double i;
uart_init(UBRR_VALUE);
while (1) {
for (i=0; i<=100; i++) {
while ( !(UCSRA & _BV(UDRE)) ) {};
UDR = i + '0';
}
_delay_ms(500);
}
}
Hier is wat in de Terminal wordt weergegeven:

Wie kan mij helpen? Alvast bedankt!