#include <iom128.h>
#include <ina90.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#define sei() SREG |= 0x80 // SREG의 젙체적 인터럽트 플래그 세트 (1)
#define cli() SREG &= ~0x80 // SREG의 인터럽트(I) 플래그 클리어 (0)
int loop_count = 0;
int end_loop = 0;
int copy_for_loop = 0;
char copy_1[30], copy_2[30], copy_3[30];
char data[100];
char buf,ISR_STATE;
// char second = 0; // ISR : Interrupt Service Routine
// int i=0, j=0;
int k=0;
float Time_f, Lat_f, Lon_f;
void main(void)
{
DDRA=0xff;
PORTA=0x00;
//인터럽트 test
//PORTG=0x03;
//PORTE=0xfe;
// cli();
// UART0
// 수신 영역
UCSR0A = 0x00;
UCSR0B = 0x98; // 1001 1000, RXCIE = 1 (interrupt 허용), RXEN0 = 1, TXEN0 = 1
UCSR0C = 0x06; // 전송 문자의 데이터 비트수 설정 _ 8 bit
UBRR0H = 0x00; // 데이터 송신 속도 결정
UBRR0L = 0x67; // 16MHz에서 9600 bps
// UART1
// 송신 영역
UCSR1A=0x00;
UCSR1B=0x90;
UCSR1C=0x06;
UBRR1H=0x00;
UBRR1L=0x67;
// UCSR1A = 0x00;
// UCSR1B = 0x98; // 1001 1000, RXCIE = 1 (interrupt 허용), RXEN1 = 1, TXEN1 = 1
// UCSR1C = 0x86;
// UBRR1H = 0x00;
// UBRR1L = 0x67; // 8 bit 16MHz에서 9600 bps (10진수 103)
// sei(); // SREG = 0x80, 전체 인터럽트 허용
while(1)
{
// while(ISR_STATE);
// { //송신 완료 인터럽트 비활성화시 1로 변경됨
// while(!(UCSR1A & 0x20)); // 송신 데이터 받을 준비 여부와 관련
// {
UDR0 = data[k]; // 송수신 데이터의 버퍼 기능. 데이터 쓰기.
if( (data[3]=='G' && data[4]=='G' && data[5]=='A'))
{ //data에 들어있는 원소가 각각 G G A이면
for(loop_count =0; ;loop_count++) //무한 반복
{
if(data[loop_count] == ',') //루프 돌릴시에 해당값이 ','라면
{
loop_count++;
for(copy_for_loop=0;data[loop_count] != ',';loop_count++)
{
copy_1[copy_for_loop] = data[loop_count];
copy_for_loop++;
}
loop_count++;
for(copy_for_loop=0;data[loop_count] != ',';loop_count++)
{
copy_2[copy_for_loop] = data[loop_count];
copy_for_loop++;
}
loop_count = loop_count + 3;
for(copy_for_loop=0;data[loop_count] != ',';loop_count++)
{
copy_3[copy_for_loop] = data[loop_count];
copy_for_loop++;
}
// UCSR0B |=0x80; //수신 완료 인터럽트 발생
Time_f = (float)atof(copy_1);
Lat_f = (float)atof(copy_2);
Lon_f = (float)atof(copy_3);
printf("Time = %12.5f , latitude = %12.5f , longitude = %12.5f",Time_f,Lat_f,Lon_f);
}
}
}
// }
// }
}
}
컴파일 할때는 에러가 없는데...
하이퍼 터미널로 할 때는....
GPS 데이터가 들어오지 조차 않네요;;;;;;;
앞에 설정 부분이 잘못 된건가요??
많은 조언좀 ㅠ.ㅠ; 모르는게 너무 많아서 ㅠ.ㅠ;;
모르는게 많아서 C언어를 사용했는디..아....
잘 안되네요 ㅠㅠ