*Uart0 naar Uart1

Heb hier een gps module aan een avr (atcan64) hangen en krijg de data binnen via uart0, deze steek ik via interrupt in een char, dan zend ik wat er in die char zit op uart1 (dit als echo) maar dan krijg ik niet wat ik van de gps module ontvang te zien op Realterm.

Als ik de Txd van de gps module direct uitlees krijg ik het volgende:

$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
$GPGSV,1,1,00*79
$GPGLL,,,,,,V,N*64
$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,,,,,,,,N*30
$GPGGA,,,,,,0,00,99.99,,,,,,*48

zoals je kunt zien heb ik geen fix maar krijg ik wel data binnen en het volgende ontvang ik op de uart1

€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€
€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€
€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€
€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€
€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€
€€€€€€€€€€€€€€€€€€€€€€€€€€€€€

De uart lib dat ik gebruik is van hier tezamen met de NMEA lib: https://code.google.com/p/avr-nmea-gps-library/source/browse/avr-nmea-…

mon code:

#define F_CPU 8000000UL 
#include "u8g.h"
#include "u8g_com_i2c.c"
#include <avr/io.h>
#include <util/delay.h>
#include <compat/twi.h>
#include "uart.cpp"
#include "nmea.cpp"

NMEA nmea;
UART usart0,usart1;

ISR(USART0_RX_vect)
{
	volatile char c = UDR0; //Read the value out of the UART buffer
	nmea.fusedata(c);
	//if ((PORTA & _BV(PA1))==0)	{		PORTA |= _BV(DDA1);	} 	else	{PORTA &= ~_BV(DDA1);	}
	usart1.Send(c);
}

int main(void)
{
	CLKPR=0x80;
	DDRA=0b00000010;
	PORTA=0x00;
	usart0.Init(0,9600,true);
	usart1.Init(1,9600,true);
//init oled display
   while(1)
	{
		//oled en nmea dingen
	}
}

Iemand een idee in welke richting ik moet zoeken?

Dank bij voorbaat Damic

Ik zie nergens een baudrate staan.

Na

// weg niet nodig

komt binnen de lus nog een keer

// weg niet nodig voor

Maar die had een regel lager moeten staan ivm met de }

Beetje lastig uitleggen, hopelijk is het te begrijpen als je in de code kijkt

@Pertinax: Instikkertje he ;)
Als ik die init niet doen dan heb ik ook niets op de poorten, dus dat gaat wel goed. Ook als ik UDR1 = c of UDR1=UDR0 doen dan zien ik data voorbij komen. Ergens een init dat faalt :/

@Rudig76: daar staan dingen die met nmea en de oled te maken heeft, heb het aangepast ;)

Update: heb de originele maker van die uart lib eens een mailtje gestuurd, eens zien wat ie zegt :D

[Bericht gewijzigd door Damic op (14%)]