
도와주세요!!
글 수 15,339
2002.08.21 14:54:13 (*.53.73.161)
8024
하드웨어는 푸지 님입니다.
전 객원 입니다. ^^;
KELP짱입니다. 그럼..
저에 대해서 잘못 알고 계신것 같아서.
http://kelp.or.kr
도 많이 오세요.
아싸 광고당.
Hard_angel wrote..
: 지노님이면..
: 지난번에..하드웨어 설명 하셨던 분이네요..맞죠..^^
: 저도 하드웨어를 공부하다가 이분야를 공부하거든요.
:
:
:
: 감사 합니다..갈켜 주신데로 했더니..되네용..
: 지금 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 이 였습니다.
전 객원 입니다. ^^;
KELP짱입니다. 그럼..
저에 대해서 잘못 알고 계신것 같아서.
http://kelp.or.kr
도 많이 오세요.
아싸 광고당.
Hard_angel wrote..
: 지노님이면..
: 지난번에..하드웨어 설명 하셨던 분이네요..맞죠..^^
: 저도 하드웨어를 공부하다가 이분야를 공부하거든요.
:
:
:
: 감사 합니다..갈켜 주신데로 했더니..되네용..
: 지금 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 이 였습니다.