Gast
#846442
Hallo
Habe ein Problem mit einlesen vom GPS UART0
mit 4Mhz intern Quarz gehts mit 8 Mhz intern Quarz nicht.
#define cpuclock 4000000 //geht
#define cpuclock 8000000 //geht nicht
//MIT umstellung der Fuse von 4 auf 8 Mhz
init_rs232(4800,4800);
void init_rs232(unsigned int baud0,unsigned int baud1)
{
baud0=cpuclock/((baud0*16L)-1);
baud1=cpuclock/((baud1*16L)-1);
//UART 0 INIT
UBRR0H= (unsigned char)(baud0>>8);
UBRR0L = (unsigned char) baud0;
UCSR0A = 0x00; /* USART operates at normal speed */
UCSR0B = ( (1<<RXCIE) | (1<<RXEN)); /* Enable receiver */
UCSR0C = ( (0<<UMSEL) | /* Configure for asynchronous operation */
(0<<UPM1) | /* No parity */
(0<<UPM0) |
(0<<USBS) | /* 1 stopbit */
(1<<UCSZ1) | /* 8 data bits */
(1<<UCSZ0));
//UART 1 INIT
UBRR1H= (unsigned char)(baud1>>8);
UBRR1L = (unsigned char) baud1;
UCSR1B= ((1<<RXCIE)|(1<<RXEN) | (1<<TXEN));
UCSR0C = ( (0<<UMSEL) | /* Configure for asynchronous operation */
(0<<UPM1) | /* No parity */
(0<<UPM0) |
(0<<USBS) | /* 1 stopbit */
(1<<UCSZ1) | /* 8 data bits */
(1<<UCSZ0));
}
Es geht aber nur UART0 nicht wo das GPS direkt dran hängt.
UART 1 un MAX 3232 geht bei 4 Mhz und 8 Mhz.
UART0 nur bei 4Mhz
Warum???
NMEA bei 4Mhz kommen sauber rein.
NMEA bei 8 Mhz sieht es so aus als ob die Baudrate nicht stimmt.
Danke