어제는 컴퓨터 양측간 통신을 하였다면
오늘은 아트메가와 통신 해보았습니다.
일단
포트를 연결합니다.
그리고 UART0 몰렉스 3핀을 찾아서 연결합니다.
옆은 UART1 입니다.
그리고
window키+Pausw Break키를 눌러 장치관리자에서 포트번호가 무엇인지 기억해둡니다.
전 COM5 입니다.
그리고 소스를 수정합니다.
<USART.c>
#include "usart.h"
void USART0_Init(void)
{
UBRR0H = (unsigned long)((OSC/(16.0*BAUD))-0.5)>>8;
UBRR0L= ((OSC/(16.0*BAUD))-0.5);
//UCSR0A = (0≪RXC)|(0≪ TXC)|(0≪ UDRE)|(0≪ FE)|(0≪ DOR) |(0≪UPE)|(0≪ U2X)|(0≪ MPCM);
UCSR0B = (0<<RXCIE)|(0<< TXCIE)|(0<< UDRIE)|(1<< RXEN)|(1<< TXEN) |(0<<UCSZ2)|(0<< RXB8)|(0<< TXB8);
UCSR0C=(0<<UMSEL1)|(0<<UMSEL0)|(1<<UPM1)|(1<<UPM0)|(1<<USBS)|(1<<UCSZ1)|(1<<UCSZ0)|(0<<UCPOL);
}
unsigned char USART0_Rx(void)
{
while(((1<<RXC) & UCSR0A)==0);
return UDR0;
}
void USART0_Tx(unsigned char ucData)// 이해 ㄴㄴ
{
while(((1<<UDRE) & UCSR0A)==0);
UDR0=ucData;
}
void USART0_Str(const char *cString)//문자열 전송함수 //아트메가 6핀 몰렉스
{
while(*cString!=0)//!=같지 않음
{
USART0_Tx(*cString);
++cString;
}
}
헤더파일에 새로 만든 함수들을 추가합니다.
쁘띠를 킨상태로 AVR전원을 키면 메세지가 나타나게 하기위해서 메인함수를 수정합니다.
<MAIN.c>
int main(void)
{
unsigned char ucData;
LCD_Init();
USART0_Init();
USART0_Str("AVR ON ");
while(1)//
{
ucData=USART0_Rx();//함수호출
LCD_Data(ucData);
}
return 0;
}
그 다음,
쁘띠를 켜서
시리얼에 체크하고 아까 기억해 두었던 포트번호와 지정해둔 숫자를 입력합니다.
이것은 저장이 가능하니 저장해서 사용하면 편합니다!!!!
아까 설정한 것처럼 AVR 전원을 키면
쁘띠에 'AVR ON' 이라는 메세지가 나타납니다.
작동영상 입니다.
'코스웨어 > 16년 스마트컨트롤러' 카테고리의 다른 글
20160323_업무일지_정우민_ADC (0) | 2016.03.23 |
---|---|
2016_03_23_타이밍도_노태경_업무일지 (0) | 2016.03.23 |
20160322_조재찬_업무일지_펌웨어(USART) (0) | 2016.03.23 |
2016-3-17.강정수.Lcd출력 (2) | 2016.03.23 |
20160322-업무일지-이보원 (UART 통신) (0) | 2016.03.23 |
20160322_박진한_업무일지_펌웨어 실습(입력값 LCD에 출력) (0) | 2016.03.23 |
20160317_김도관_업무일지_LCD_특정시간출력 (0) | 2016.03.23 |
20160316_김도관_업무일지_LCD_문자열출력 (0) | 2016.03.23 |