지노님이면..
지난번에..하드웨어 설명 하셨던 분이네요..맞죠..^^
저도 하드웨어를 공부하다가 이분야를 공부하거든요.



감사 합니다..갈켜 주신데로 했더니..되네용..
지금 LCD랑 LED랑 둘이서 날리 치고 있습니당..
이렇게 기쁠수가...
방학내내 이것가지고 고민하고있었는데..
세마나 효과가 있나보네용....^^
이맛에 공부하는거겠죵..

근데 또문제가.. 이단계를 넘어서면..
그다음이.. 웹에서 LCD랑 LED랑 날리치게 해야하는데..
대충 어떻게 해야 하는지..
머릿속에 구상이 안되네요.....
어떻게 해야하나용........^^


그럼 수고하세요....




지노 wrote..
:
: mknod라는 명령어로 장치 파일을 작성 해야 합니다.
:
: mknod c 255 1 /dev/gpio
: 이러한 방식으로 디바이스 장치 파일을 만들어야 합니다.
:
: 리눅스에서는 장치를 접근할때에도 파일 형식으로 인식을 하기 때문에 디바 이스 장치파일을 반드시 만들어야 합니다.
:
:
:
: Hard_angel wrote..
: : 안녕하세요..
: : 세미나 잘 받았습니다..
: :
: : 임베디드를 공부하면서..
: : 어디서부터 해야할지....한숨만 쉬고 있었는데..
: : 세미나 듣고..
: : 이제 조금은 알거 같습니다..
: : 세미나 갔다와서..이거하는 재미에 살고있습니다...^^
: :
: : 세미나 감사 했구요..
: :
: :
: : 지금 GPIO를 공부하고 있는데요..
: : 이지보드를 조금 일찍 알았더라면..이지보드 사는건데..
: : 다른 보드 구입하고 며칠후에 이지보드를 알았거든요..^^
: : 그래서 울 교수님께 적극 추천 했지용..
: : 서론이 너무 길었네요.....지송..
: :
: : 아래 소스로..2line LCD를 제어하고있거든요..
: : 근데요...자꾸..
: : "open() failed" 메시지가 나오거든요..
: :
: : 그래서 타겟보드에서..dev/gpio를 찾아 봤는데
: : 없더라구요..
: : gpio라는 파일이 원래 dev/ 에 있어야 하는건지..??
: :
: : 아래 소스 한번 봐주세용..^^
: : ====================================================
: :
: : #include
: : #include
: : #include
: : #include
: : #include
: : #include
: : #include "gpio.h"
: :
: : int putlcd(int dev, char byte_data, int reg_sel );
: : int putled(int dev, char byte_data );
: :
: : int main(int argc, char **argv)
: : {
: : int dev,pre_data,i,j;
: : int menu;
: : int data ;
: : int buff;
: : char ci ;
: : char wdata[4]={0,0,0,0};
: :
: : printf("
press the push button");
: :
: : dev=open("/dev/gpio",O_WRONLY);
: : if( dev >=0 )
: : {
: : data = 0 ;
: :
: : ci = 0x30 ;
: :
: : /* init LCD module */
: : putlcd(dev,0x38,0); /* 0 : command, 1: data */
: : for(i=0;i<0x100;i++); // initial delay
: : putlcd(dev,0x38,0); /* 0 : command, 1: data */
: : for(i=0;i<0x100;i++); // initial delay
: : putlcd(dev,0x38,0); /* 0 : command, 1: data */
: : for(i=0;i<0x100;i++); // initial delay
: : putlcd(dev,0x0c,0); /* 0 : command, 1: data */
: : for(i=0;i<0x100;i++); // initial delay
: : putlcd(dev,0x01,0); /* 0 : command, 1: data */
: : for(i=0;i<0x100;i++); // initial delay
: : putlcd(dev,0x80,0); /* 0 : command, 1: data */
: : for(i=0;i<0x100;i++); // initial delay
: :
: : for(j=0;j<0x10000;j++)
: : {
: : if(++ci>0x70) ci=0x30 ;
: : putlcd(dev,ci,1) ;
: : putled(dev,ci) ;
: : for(i=0;i<0x100000;i++);
: : }
: : close( dev );
: : }
: : else
: : {
: : fprintf(stderr,"open() failed
");
: : exit(-1);
: : }
: :
: : return 0;
: : }
: :
: :
: : int putlcd(int dev, char byte_data, int reg_sel )
: : {
: : char wdata[4]={0,0,0,0};
: : int i;
: :
: : wdata[0]= 0 ;
: : if(reg_sel)
: : wdata[1]= 0x18 ;
: : else
: : wdata[1]= 0x08 ;
: : wdata[2]= byte_data ;
: : wdata[3]= 0x00 ;
: : write( dev, (char * )wdata, 4 );
: :
: : if(reg_sel) // up LCD EN
: : wdata[1]= 0x10 ;
: : else
: : wdata[1]= 0x00 ;
: : wdata[2]= byte_data ;
: : wdata[3]= 0x00 ;
: : write( dev, (char * )wdata, 4 );
: :
: : wdata[1]= 0x08 ; // up LCD EN
: : wdata[2]= byte_data ;
: : wdata[3]= 0x00 ;
: : write( dev, (char * )wdata, 4 );
: :
: : return(0);
: : }
: :
: : int putled(int dev, char byte_data )
: : {
: : char wdata[4]={0,0,0,0};
: : int i;
: :
: : wdata[0]= 0 ;
: : wdata[1]= 0x08 ;
: : wdata[2]= byte_data ;
: : wdata[3]= 0x00 ;
: : write( dev, (char * )wdata, 4 );
: :
: : wdata[0]= 0 ;
: : wdata[1]= 0x08 ;
: : wdata[2]= byte_data ;
: : wdata[3]= 0x02 ;
: : write( dev, (char * )wdata, 4 );
: :
: : wdata[0]= 0 ;
: : wdata[1]= 0x08 ;
: : wdata[2]= byte_data ;
: : wdata[3]= 0x00 ;
: : write( dev, (char * )wdata, 4 );
: :
: : return(0);
: : }
: :
: : ===============================================================
: : 그럼 수고하시구요..........
: : 멀리 전라도 광주에서..hard_angel 이 였습니다.