void Send_Str(char *str){
Busy_Check(); //비지체크
while(*str){ //NULL 문자만날때까지 반복
P0 = *str; //str이 가리키는 상위4비트 출력
RS = 1; //데이터
RW = 0; //라이트
EN = 1;
DELAY(100);
EN = 0;
P0 = ((*str) << 4); //str이 가리키는 값에서 4비트를 좌로 쉬프트한값을 출력
EN = 1;
DELAY(100);
EN = 0;
str++; //다음값으로 이동
}
}
이부분이 LCD에 문자열을 출력하려고하는 함수부분인데요
한글자를 출력하는함수는 되는데
왜 위에처럼 문자열을 보내려고하면안되는거죠?ㅠㅠ
LCD에 D4부터 D7까지가 P0_4~7까지 붙어있구요
RS,RW,E는 P2_4~6까지 붙어있습니다
실제로 저함수를 써서 화면에 출력을해보면 왠이상한 문자들이 나오네요 ㅠㅠ
도와주세요 부탁드립니다 ㅠㅠ
한글자 보내는 함수는 잘 동작하지? 그 함수가 putchar(char ch); 라 치고 putstr(char* str) 만들어서while(*str)putchar(*str++); 해라. 맘편하다. DRY원칙에도 위배 안되는 좋은 코드다.
그리고 안쓸때는 rs/rw 내려라.
유리한님 좋은답변 감사합니다^^