프로그래밍/ATmega128 3

ATmega128 GPS 이야기 - 마지막 (15.05.12)

[UST-SNR-GPS] 드디어 지겨웠던 GPS와의 마지막 이야기이다. 첫번째로 삽질 했던 점은 레귤레이터를 이용해서 구성한 회로에서 3.3V가 아닌 2V가 나왔다.아마 저번에 무언가 탔던게 문제였던거 같다. 두번째로 UART통신에 폴링으로 불러와서 저장시킨후 strtok()를 사용했는데.. 아무래도 폴링방식이라 중간에 날라가는 문자열들이 있었다. 허허... 저런것 때문에 삽질을 하다니 ㅜㅜ 결국 UART 인터럽트를 이용하여 문자열 저장후 자르니 정상적으로 나온다.그리고 필요한 데이터를 이래 저래 뽑아오니 잘 나온다. 실내에서는 수신감도가 영 별로라 잡히지 않아서 실외에서 15분정도 기다리니 신호가 잡혔다.생각했던데로 위도 경도 잘 받아온다. (DMM방식으로) 사실 이것도 구글 지도에 나타내기 위해서 D..

AVR Studio 4, UART에서 printf() 사용

테스트 환경AVR Studio 4.14ATmega128 (16MHz) [뉴티씨 AB-M128Pro-A] UART에서 printf()함수 사용. #include #include #include void UartTx(char message) { while ((UCSR0A&0x20) == 0); UDR0 = message; UCSR0A |= 0x20; } static int Putchar(char c, FILE *stream) { UartTx(c); return 0; } void Uart_Init(void) { UCSR0B = 0x08; UBRR0H = 0x00; UBRR0L = 0x67; } void Device_Init(void) { Uart_Init(); fdevopen(Putchar,0); } int ..

ATmega128 타이머로 1초 만들기

예전에 해서 기억은 잘...안나지만 정리용 포스팅 이다. ATmega128에 타이머는 8비트 2개(Timer0, 2), 16비트 타이머 2개(Timer 1, 3) #include #include #define F_CPU 16000000 unsigned int timer0Cnt = 0; unsigned char timer1Cnt = 0; unsigned char timer0Sec = 0; unsigned char timer1Sec = 0; SIGNAL(SIG_OVERFLOW0); SIGNAL(SIG_OVERFLOW1); void Timer_Init(void) { TCCR0 = 0x05; TCNT0 = 0x83; TIMSK |=1

반응형