BASIC4MCU | 질문게시판 | 질문있습니다
페이지 정보
작성자 우왕우오옹 작성일2020-11-24 01:54 조회2,599회 댓글1건본문
결론부터 말씀드리자면 '기울기센서에서 기울기 값을 수신하여 (USART이용) LCD출력하라' 입니다
현재까지 일단 USART 설정은 마친 상태이구요 관련코드 첨부합니다
질문드릴께있는데 전체적인흐름이 1.USART로 외부 기울기센서의 값을 수신 2.LCD출력 이렇게 볼수 있는건가요? 그러면 제 코드가 만약에 맞다면 이제 LCD로 출력을 하면되는건가요? (틀렸다면 어디가 틀렸는지도 알 수있을까요?)
#include <avr/io.h>
#include "OK-2561BR.h"
#define F_CPU 16000000UL
#define USART_BAUDRATE 115200
#define GetUbrr(baudrate) (MAIN_CLK_HZ/16/baudrate-1)
char c;
void USART_Init(void)
{
UCSR1A=0x00; // clear
UCSR1B=(1<<RXEN1) | (1<<TXEN1); // Rx, Tx Enable
UCSR1C=(0<<UCSZ12) | (1<<UCSZ11) | (1<<UCSZ10); // Tx data len : 8-bit
UBRR1H=0;
UBRR1L=51; // baudrate 19200
}
unsigned char USART_Receive(void)
{
while(!(UCSR1A & (1<<RXC1))) // Wait for data to be received
;
return UDR1; // Get and return received data form buffer
}
void USART_Transmit(unsigned char data)
{
while(!(UCSR1A & (1<<UDRE1))) // Wait for empty transmit buffer
;
UDR1=data; // Put data into buffer, sends the data
}
char aa;
unsigned char s[8] = {0xAA,0x00,0x64,0x03,0xE8,0x27,0x10,0x55};
int main(void) /* main function */
{ UCSR1B = 0x18;
UCSR1C = 0x06; //bit setting-8, Async, no parity, 1stop
UBRR1 = 8; // baudrate 115200;
unsigned char data;
MCU_initialize(); // initialize ATmega2561 MCU
Delay_ms(50);
LCD_initialize(); // initialize text LCD module
ADC_initialize(); // initialize A/D converter
SPI_initialize(); // initialize SPI
while (1)
{
data=USART_Receive();
aa=UDR0;
while(!(UCSR0A & 0x40));
UDR0=aa;
}
}
댓글 1
조회수 2,599master님의 댓글
master 작성일
기울기 센서에 따라서 몇가지의 인터페이스가 있습니다.
스펙(데이터시트)을 보고서 무슨 인터페이스인지부터 찾으세요