![]() |
Home > 고객지원 > 기술지원 > Q&A |
| 전체 | IT convergence | Green IT |
| Intelligent Robot System | LabVIEW Embedded | RFID |
| Ubiquitous Sensor Network | Embedded System | Micro Processor |
| DSP | FPGA/SoC | Commuication System |
| Sensor | 기초전기전자 | LED |
| [re]EMPOS III - S6410(7segment) 관련 문의입니다. | |||
|---|---|---|---|
| 카테고리 | Embedded System | ||
| 작성자 | 기술연구소 | 아이피 | 119.203.239.187 |
| 작성일 | 11-11-30 16:50 | 조회수 | 1528 |
| 파일 |
|
||
장비에 사용된 6-digit 7-segment는 스캔 방식으로 동작합니다. 즉, 한 번에 하나씩만 선택해서 켤 수 있는 구조로 되어 있는 부품입니다. 그러므로 동시에 6개를 모두 켜는 것은 불가능합니다. 이런 방식의 7-segment는 빠른 시간에 6개를 돌아가면서 써 줌으로해서 잔상으로 출력이 유지되는 구조입니다. =================================================================== 디바이스 드라이버 수정 중인데 (segment.c) ssize_t segment_write(struct file *inode, const char *gdata, size_t length, loff_t *off_what)
{
unsigned char data[6];
unsigned char digit[6]={0x20, 0x10, 0x08, 0x04, 0x02, 0x01};
unsigned int i,j,ret;
unsigned char num[7];
unsigned char x;
unsigned int y,z;
unsigned int display=0;
unsigned int count=0,temp1,temp2;
// 사용자 메모리 gdata를 커널 메모리 num으로 n만큼 복사
ret=copy_from_user(&num,gdata,6);
for(z=0;z<6;z++){
if(num[5-z]=='a'){
y=0xa;
}
else if(num[5-z]=='b'){
y=0xb;
}
else if(num[5-z]=='c'){
y=0xc;
}
else if(num[5-z]=='d'){
y=0xd;}
else if(num[5-z]=='e'){
y=0xe;}
else if(num[5-z]=='f'){
y=0xf;}
data[z]=Getsegmentcode(y);
}
// if(num!=0) { // num이 0이 아닐때
//while(display<300) {
/*data[5]=Getsegmentcode(count/100000);
temp1=count%100000;
data[4]=Getsegmentcode(temp1/10000);
temp2=temp1%10000;
data[3]=Getsegmentcode(temp2/1000);
temp1=temp2%1000;
data[2]=Getsegmentcode(temp1/100);
temp2=temp1%100;
data[1]=Getsegmentcode(temp2/10);
data[0]=Getsegmentcode(temp2%10);*/
// data[5]=Getsegmentcode(y);
// data[4]=Getsegmentcode(0xa);
// data[3]=Getsegmentcode(0xa);
// data[2]=Getsegmentcode(0xb);
// data[1]=Getsegmentcode(0xb);
// data[0]=Getsegmentcode(0xc);
//
for(j=0;j<17;j++) {
for(i=0;i<6;i++) {
*segment_grid = digit[i];
*segment_data = data[i];
mdelay(1);
}
}
// count++
//display++;
//}
//*segment_grid = ~digit[0];
//*segment_data = 0;
return length;
}
이렇게 수정을 했는데 7세그먼트 6개중에 그리드가 가리키고 세그먼트 데이터에 초기화 되어있는 슬롯에만 불이 들어옵니다. 제가 의도하는 바는 슬롯 여러개가 동시에 들어오게 하고 싶은데 어떻게 해야 할까요 ? 예를들어 1 을 입력하면 grid[0]에 1이 들어오고 2를 그상태에서 추가로 입력하면 grid[1]에 1이 들어오고 grid[0]에는 2가 들어오는 식입니다. 어떻게 2개 이상의 세그먼트를 컨트롤 할 수 있을까요 | |||
다음글 ![]() | EMPOS III - S6410(7segment) 관련 문의입니다. |
|---|---|
이전글 ![]() | SM3-SV210 UART |
댓글 등록은 로그인 하신후 이용하실 수 있습니다.

















