Mellan atmegan och PC:n sitter en MAX232.
Kör hyperterminalen på PC:n för att ta emot inkommande data.
Tyvärr blir det ingen som helst reaktion i hyperterminalen när jag försöker skicka data från atmegan.
Jag har mätt signalerna på MAX232:ans pinnar och de verkar vara bra, +-9V på RS232-sidan och 0/5V på uC-sidan.
Har även kontrollmätt seriekabeln efter avbrott, och testat serieporten mot en annan seriell enhet.
Hög och låg hastighet har provats (115200/2400 bps).
Nu kan jag inte komma på något mer som kan felsökas. Har ni några bra tips?
Nedan visas koden som används för initera atmegans USART och skicka data.
Kod: Markera allt
#define USART_BAUD 115200ul
#define USART_UBBR_VALUE ((F_CPU/(USART_BAUD<<4))-1)
#define F_CPU 8000000
void USART_vInit(void){
// Set baud rate
UBRRH = (uint8_t)(USART_UBBR_VALUE>>8);
UBRRL = (uint8_t)USART_UBBR_VALUE;
// Set frame format to 8 data bits, no parity, 1 stop bit
UCSRC = (0<<USBS)|(1<<UCSZ1)|(1<<UCSZ0);
// Enable receiver and transmitter
UCSRB = (1<<RXEN)|(1<<TXEN);
}
void USART_vSendByte(uint8_t u8Data){
// Wait if a byte is being transmitted
while((UCSRA&(1<<UDRE)) == 0);
UDR = u8Data; // Transmit data
}