Witam. Podłączyłem megę8 do PC przez MAX232, jednak w HyperTerminalu nic się nie pokazuje. Za to MAX trochę się grzeje. Mój program:
Mógłby ktoś sprawdzić co jest nie tak i dlaczego?
#include <avr/io.h>
#define FOSC 1000000 //taktowanie procesora
#define BAUD 9600 //szybkość transmisji
#define MYUBRR FOSC/16/BAUD-1
void USART_Init(unsigned int ubrr)
{
/* ustaw prędkość */
UBRRH = (unsigned char)(ubrr>>8);
UBRRL = (unsigned char)ubrr;
/* włącz odbiór i transmisję */
UCSRB = (1<<RXEN)|(1<<TXEN);
/* ustaw format: 8dane, 2bity stop */
UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0);
}
void wyslij_znak(unsigned int znak)
{
if (znak == '\n') wyslij_znak('\r');
while (!(UCSRA & (1<<UDRE)));
UDR = znak;
}
unsigned char odbierz(void)
{
while (!(UCSRA & (1<<RXC)));
return UDR;
}
void main(void)
{
USART_Init(MYUBRR);
wyslij_znak(87);
wyslij_znak(73);
wyslij_znak(116);
wyslij_znak(97);
wyslij_znak(74);
wyslij_znak('\n');
if (odbierz() == '1') wyslij_znak('$');
}Mógłby ktoś sprawdzić co jest nie tak i dlaczego?