BASIC4MCU | 질문게시판 | ATmega128 문자열 출력 질문입니다.
페이지 정보
작성자 전자의고수가되고싶다 작성일2018-09-29 17:05 조회29,213회 댓글2건본문
저번 시간에 문자 출력은 완벽하게 했습니다.
밑에 코드 따로 첨부하겠습니다.
하지만 문자열 출력이 서툴러서 아직 str문을 사용한 적이 없어서 애매한 상황입니다.
질문드리고 싶은 거는 str문으로 어떻게 사용하는지랑
두번째 줄에 입력하려면 어떻게 작성해야하는지, 그리고 마지막으로
문자열 출력입니다.
#include <iom128v.h>
#define BYTE unsigned char
void write_instruction(char data);
void write_data(char data);
void init_LCD(void);
void delay_ms(int n);
void LcdPrintString(int t_line, BYTE t_pos, char *ptr);
void set_position(BYTE n);
void lcd_clear(void);int main(void)
{
DDRG = 0xff;
DDRC = 0xff;
init_LCD();
write_data('A');return 0;
}
void delay_ms(int n)
{
int i,j;for(i=0;i<n;++i)
{
for(j=0;j<2100;++j)
{
}
}
}void write_instruction(char data)
{
PORTG = (PORTG & 0xfc) | 0x04; //RS : 0, W/R : 0, Enable : 1 (RS를 0으로 만들려면
delay_ms(1);
PORTC=data; // Valid한 데이터값을 얹은 것.
delay_ms(1);
PORTG &= 0xfb; //RS : 1, W/R : 0, Enable : 0
delay_ms(1);
}void write_data(char data)
{
PORTG = (PORTG & 0xfd) | 0x05; //RS : 1, W/R : 0, Enable : 1
delay_ms(1);
PORTC=data;
delay_ms(1);
PORTG &= 0xfb; //RS : 1, W/R : 0, Enable : 0
delay_ms(1);
}void init_LCD(void)
{
delay_ms(75);
write_instruction(0x30);
delay_ms(25);
write_instruction(0x30);
delay_ms(5);
write_instruction(0x30);
delay_ms(5);
write_instruction(0x3c);
delay_ms(5);
write_instruction(0x08);
delay_ms(5);
write_instruction(0x01);
delay_ms(5);
write_instruction(0x06);
delay_ms(5);
write_instruction(0x0c);
delay_ms(5);
}void set_position(BYTE n) // 첫번째줄 첫번째 칸에 넣고싶다, 하면 여기다가 0x80넣으면되고 오른쪽으로 0x8f까지
// 두번째줄 첫번째는 0xc0 ~ 0xcf까지
{
write_instruction(n);
}void lcd_clear(void)
{
write_instruction(0x01);
}
댓글 2
조회수 29,213master님의 댓글
master 작성일AVRstudio 사용하는 것이 낫지 않을까요?
전자의고수가되고싶다님의 댓글
전자의고수가되고싶다
결론은 스튜디오로ATmega에 구현하는 것인데
코드에서 문자열을 어디에 입력해야 할 지 몰라서 그렇습니다 ㅠ