calin17us
Junior Member level 1
i use atmega8, and y program to send "Hallo" to USART(Tx), and when i look in hyperterminal i see other character. i serch on the net and the character is from extended ascii code.
i dont understand why it happen this.
Please can you give me a hand.
This is the cod i am useing it:
#include <avr/io.h>
#include <util/delay.h>
#define F_CPU 1000000UL
#define BAUD 9600
#define UBRR_VAL F_CPU/16/BAUD-1
void delay_ms(int delay) {
int i;
for (i=0;i<=delay;i++) {
_delay_ms(1);
}
}
void init_uart(unsigned int ubrr) {
/* Set baud rate */
UBRRH = (unsigned char)(ubrr>>8 ) ;
UBRRL = (unsigned char)(ubrr);
/* Enable receiver and transmitter */
UCSRB |= (1<<RXEN);
UCSRB |= (1<<TXEN);
/* Set frame format: 8data, 2stop bit */
UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0);
}
void send_char(unsigned char data) {
/* Wait for empty transmit buffer */
while (!(UCSRA & (1<<UDRE)));
/* Put data into buffer, sends the data */
UDR = data;
}
void send_string(char *data) {
while (*data) {
send_char(*data);
data++;
}
}
int main(void) {
init_uart(UBRR_VAL);
while (1) {
send_string("Hallo");
delay_ms(1000);
}
return 1;
}
This is a picture of what see hyperterminal:
https://obrazki.elektroda.pl/55_1274543482.jpg
Please give me a hand.
i dont understand why it happen this.
Please can you give me a hand.
This is the cod i am useing it:
#include <avr/io.h>
#include <util/delay.h>
#define F_CPU 1000000UL
#define BAUD 9600
#define UBRR_VAL F_CPU/16/BAUD-1
void delay_ms(int delay) {
int i;
for (i=0;i<=delay;i++) {
_delay_ms(1);
}
}
void init_uart(unsigned int ubrr) {
/* Set baud rate */
UBRRH = (unsigned char)(ubrr>>8 ) ;
UBRRL = (unsigned char)(ubrr);
/* Enable receiver and transmitter */
UCSRB |= (1<<RXEN);
UCSRB |= (1<<TXEN);
/* Set frame format: 8data, 2stop bit */
UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0);
}
void send_char(unsigned char data) {
/* Wait for empty transmit buffer */
while (!(UCSRA & (1<<UDRE)));
/* Put data into buffer, sends the data */
UDR = data;
}
void send_string(char *data) {
while (*data) {
send_char(*data);
data++;
}
}
int main(void) {
init_uart(UBRR_VAL);
while (1) {
send_string("Hallo");
delay_ms(1000);
}
return 1;
}
This is a picture of what see hyperterminal:
https://obrazki.elektroda.pl/55_1274543482.jpg
Please give me a hand.