- 2 -

Size: px
Start display at page:

Download "- 2 -"

Transcription

1

2 - 2 -

3 - 3 -

4 - 4 -

5 - 5 -

6 - 6 -

7 - 7 -

8 - 8 -

9 - 9 -

10 - 10 -

11 - 11 -

12 - 12 -

13 - 13 -

14 - 14 -

15 - 15 -

16 - 16 -

17 - 17 -

18 - 18 -

19 - 19 -

20 - 20 -

21 - 21 -

22 - 22 -

23 - 23 -

24 - 24 -

25 /********************************************* Chip type : ATmega16 Program type : Application Clock frequency : MHz Memory model : Small Internal SRAM size : 1024 External SRAM size : 0 Data Stack size : 256 *********************************************/ #include <mega16.h> #include <stdio.h> #define ltm #define lt1 #define lt2 #define lt3 #define tp #define kb_cki #define kb_di #define kb_cko #define kb_do PORTA.4 PORTA.5 PORTA.6 PORTA.7 PORTD.2 PIND.3 PIND.4 PORTD.3 PORTD.4 #define led_com PORTD #define io_port PORTC #define foot_port PINB #define km_mode PINA.2 #define sft_pin PINA.3 #define mouse 1 #define keyboard 0 #define txm 1 #define rxm 2 #define one_ch 1 #define two_ch 2 #define led 3 #define sheft 4 #define h_e 5 #define stop 0 #define up 1 #define down 2 #define left 3 #define right 4 #define celick 5 #define nocelick 6 #define celick2 7 #define tdl 25 // 키보드송신시딜레이타임 static char i,j,k,s,imsi,rxd1,rxd2,rxd3,input_data,rx_imsi, r_time,g_time,clk,sec,rx_ok, kb_count,kb_imsi,pty,kb_pty,kb_rx_count,sft_sta,kb_ok,new_disp, kb_data1,kb_data2,kb_data3,kb_data4, kb_data5,kb_data6,kb_data7,kb_data8, tx_imsi,kb_mode=rxm,kb_led,ack_err_time, foot_key,old_foot_key,led_no, tx_sta,tx_time,tx_count,scan_time,

26 key,old_key,out_delay,code_su=1,tx_mode,rx_time,rx_pty, rx_data1,rx_data2, kx=9,ky=3,joy_time,mouse_time,mouse_data=0,mx,my, xc,yc,mck_sta=0, led_data,disp_count=0, sft_key,sft_old_key; static int li,rom_adr,chk_count,x_adc,y_adc,ad_imsi, kb_time,key_code; flash char hex[18]=" abcdef"; //flash char key_code_db[100]; flash unsigned char led_db[22][3]= 0x01,0x00,0x00, //0 0x02,0x00,0x00, //1 0x04,0x00,0x00, //2 0x08,0x00,0x00, //3 0x10,0x00,0x00, //4 0x20,0x00,0x00, //5 0x40,0x00,0x00, //6 0x80,0x00,0x00, //7 0x00,0x01,0x00, //8 0x00,0x02,0x00, //9 0x00,0x04,0x00, //10 0x00,0x08,0x00, //11 0x00,0x10,0x00, //12 0x00,0x20,0x00, //13 0x00,0x40,0x00, //14 0x00,0x80,0x00, //15 0x00,0x00,0x01, //16 0x00,0x00,0x02, //17 0x00,0x00,0x04, //18 0x00,0x00,0x08, //19 0x00,0x00,0x10, //20 0x00,0x00,0x20; //21 // ; void delay(unsigned int dy) unsigned int ddy; ddy=dy; while(ddy>0) ddy--; // 컴퓨터로데이타보내기 void key_host(char _kd) // 키보드클럭핀인터럽트금지 //GICR=0x00; // 인터럽트인에이블래지스터 kb_cko=1; DDRD.3=1; DDRD.4=1; // 킄럭버튼을하이로설정 // 클럭출력설정 // 데이타출력설정 kb_do=0; delay(tdl); kb_cko=0; delay(tdl*2); kb_cko=1; delay(tdl); pty=0; // 패리티비트초기화 tx_imsi=_kd; // 데이타대입 for(i=0;i<8;i++) // 데이타송신 // 데이터송신 if(tx_imsi & 0x01) kb_do=1; pty++; kb_do=0; delay(tdl); kb_cko=0; delay(tdl*2); kb_cko=1; delay(tdl);

27 tx_imsi>>=1; // kb_count++; // 패리티송신 if(pty&0x01) kb_do=0; kb_do=1; delay(tdl); kb_cko=0; delay(tdl*2); kb_cko=1; delay(tdl); // kb_count++; // 스탑비트송신 kb_do=1; delay(tdl); kb_cko=0; delay(tdl*2); kb_cko=1; DDRD.3=0; DDRD.4=0; // 클럭입력설정 // 데이타입력설정 // 키보드클럭핀인터럽트설정 //GICR=0x80; // 인터럽트인에이블래지스터 // 컴퓨터에서데이타받기 void host_key() // 키보드클럭핀인터럽트금지 //GICR=0x00; // 인터럽트인에이블래지스터 DDRD.3=0; DDRD.4=0; // 클럭입력설정 // 데이타입력설정 delay(30); rx_time=20; while(kb_di>0 && rx_time>0) ; rx_time=5; delay(10); // 초기신호가맞으면데이타수신 - 클락은 0상태데이터는 1이면 if(kb_cki==0)// && kb_di>0) rx_time=20; while(kb_cki==0 && rx_time>0); DDRD.3=1; // 클럭출력으로설정- 클럭을주기위하여 kb_cko=1; // 클럭을 1로설정 delay(tdl*2); // 스타트비트가 0 이면데이타수신 if(kb_di==0) rx_imsi=0; pty=0; //kb_cko=0; delay(tdl*2); // 데이타수신 0xed - 허가코드 for(j=0;j<8;j++) kb_cko=0; delay(tdl*2); kb_cko=1; rx_imsi =kb_di<<j; if(kb_di) pty++; delay(tdl*2); // 패리티수신 kb_cko=0; delay(tdl*2); kb_cko=1;

28 rx_pty=kb_di; delay(tdl*2); // 송, 수신전환틀럭 //ack 신호출력 DDRD.4=1; // 데이타출력설정 kb_do=1; delay(tdl*2); kb_cko=0; delay(tdl*2); kb_cko=1; //delay(tdl*2); //ack 신호출력 kb_do=0; delay(tdl*2); kb_cko=0; delay(tdl*2); kb_do=1; kb_cko=1; delay(tdl*2); DDRD.3=0; DDRD.4=0; // 클럭입력설정 // 데이타입력설정 // 키보드클럭핀인터럽트설정 //GICR=0x80; // 인터럽트인에이블래지스터 // External Interrupt 1 service routine // 키보드수신루틴 interrupt [EXT_INT1] void ext_int1_isr(void) ; // Timer 1 overflow interrupt service routine interrupt [TIM1_OVF] void timer1_ovf_isr(void) // Reinitialize Timer 1 value // Reinitialize Timer 1 value TCNT1=64150; //1,000 count //if(tp>0) tp=0; tp=1; clk++; if(clk>30) clk=0; sec++; // 키보드버튼스캔타임초당 200 회 if(scan_time>0) scan_time--; // 컴퓨터에서데이타수신에러타임 if(rx_time>0) rx_time--; // 조이스틱입력타임 if(joy_time>0) joy_time--; // 마우스버튼입력시간 if(mouse_time>0) mouse_time--; #define ADC_VREF_TYPE 0x00 // Read the AD conversion result unsigned int read_adc(unsigned char adc_input) ADMUX=adc_input ADC_VREF_TYPE; // Start the AD conversion ADCSRA =0x40;

29 // Wait for the AD conversion to complete while ((ADCSRA & 0x10)==0); ADCSRA =0x10; return ADCW; void mega16_init() // Input/Output Ports initialization // Port A initialization // Func0=In Func1=In Func2=In Func3=In Func4=out Func5=Out Func6=Out Func7=Out // State0=T State1=T State2=T State3=T State4=T State5=0 State6=0 State7=0 PORTA=0x00; DDRA=0xF0; // Port B initialization // Func0=In Func1=In Func2=In Func3=In Func4=In Func5=In Func6=In Func7=In // State0=T State1=T State2=T State3=T State4=T State5=T State6=T State7=T PORTB=0x00; DDRB=0x00; // Port C initialization // Func0=Out Func1=Out Func2=Out Func3=Out Func4=Out Func5=Out Func6=Out Func7=Out // State0=0 State1=0 State2=0 State3=0 State4=0 State5=0 State6=0 State7=0 PORTC=0x00; DDRC=0xFF; // Port D initialization // Func0=Out Func1=Out Func2=Out Func3=In Func4=In Func5=Out Func6=Out Func7=Out // State0=0 State1=0 State2=0 State3=T State4=T State5=0 State6=0 State7=0 PORTD=0x00; DDRD=0xE7; mouse_data=0; io_port=mouse_data; ltm=1; ltm=0; // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: khz // Mode: Normal top=ffh // OC0 output: Disconnected TCCR0=0x05; TCNT0=0x00; OCR0=0x00; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: khz // Mode: Normal top=ffffh // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: On // Input Capture on Falling Edge TCCR1A=0x00; TCCR1B=0x82; TCNT1H=0x10; TCNT1L=0x10; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00;

30 // Timer/Counter 2 initialization // Clock source: System Clock // Clock value: khz // Mode: Normal top=ffh // OC2 output: Disconnected ASSR=0x00; TCCR2=0x07; TCNT2=0x00; OCR2=0x00; // External Interrupt(s) initialization // INT0: Off // INT1: On // INT1 Mode: Falling Edge // INT2: Off GICR=0x80; // 인터럽트인에이블래지스터 MCUCR=0x08; // 인터럽트모드설정 MCUCSR=0x00; GIFR=0x80; // 인터럽트플래그래지스터 // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x04; // USART initialization // Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: Off // USART Transmitter: On // USART Mode: Asynchronous // USART Baud rate: UCSRA=0x00; UCSRB=0x08; UCSRC=0x86; UBRRL=0x11; UBRRH=0x00; // USART Baud rate: //UCSRA=0x00; //UCSRB=0x08; //UCSRC=0x86; //UBRRL=0x0a; //UBRRH=0x00; // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off // Analog Comparator Output: Off ACSR=0x80; SFIOR=0x00; // ADC initialization // ADC Clock frequency: khz // ADC Voltage Reference: AREF pin // ADC High Speed Mode: On // ADC Auto Trigger Source: None ADMUX=ADC_VREF_TYPE; ADCSRA=0x86; SFIOR=0x10; // Declare your global variables here //rs-232 송신루틴

31 void tx_232(char _txd) while(!(ucsra & 0x20)); UDR=_txd; void foot_key_in() foot_key=foot_port; //port_b foot_key &= 0x1f; // 한영전환키코드출력 void code_he_tx() if(key!=old_key) if(old_key==0 && key>0) key_host(key_code%256); out_delay=0; old_key=key; // 키코드가 1 개일때데이타출력 void code1_tx() if(sft_sta>0) if(key!=old_key) // 버튼을눌렀다띠면 if(old_key>0 && key==0) key_host(0xf0); delay(5000); key_host(key_code%256); delay(5000); key_host(0xf0); delay(5000); key_host(0x12); // 최초의버튼이눌려지면 if(old_key==0 && key>0) key_host(0x12); delay(5000); key_host(key_code%256); out_delay=0; old_key=key; if(key==old_key && key>0) // 키를연속으로누르면 - 일정시간지연후신호출력 if(out_delay<15) out_delay++; key_host(key_code%256); if(key!=old_key) // 버튼을눌렀다띠면 if(old_key>0 && key==0) key_host(0xf0); delay(5000); key_host(key_code%256); // 최초의버튼이눌려지면 if(old_key==0 && key>0) key_host(key_code%256); out_delay=0; old_key=key; if(key==old_key && key>0)

32 // 키를연속으로누르면 - 일정시간지연후신호출력 if(out_delay<15) out_delay++; key_host(key_code%256); // 키코드가 2 개일때데이타출력 void code2_tx() if(key!=old_key) // 버튼을눌렀다띠면 if(old_key>0 && key==0) key_host(key_code/256); delay(5000); key_host(0xf0); delay(5000); key_host(key_code%256); // 최초의버튼이눌려지면 if(old_key==0 && key>0) key_host(key_code/256); delay(5000); key_host(key_code%256); out_delay=0; old_key=key; if(key==old_key && key>0) // 키를연속으로누르면 - 일정시간지연후신호출력 if(out_delay<15) out_delay++; key_host(key_code/256); delay(5000); key_host(key_code%256); // 엘이디송수신루틴 void code_led_tx() if(key!=old_key) // 버튼을눌렀다띠면 if(old_key>0 && key==0) key_host(0xf0); delay(5000); key_host(key_code%256); // 최초의버튼이눌려지면 if(old_key==0 && key>0) key_host(key_code%256); out_delay=0; // 데이타수신 host_key(); delay(300); if(rx_imsi==0xed) rx_data1=rx_imsi; tx_time=5; while(kb_cki==0 && tx_time>0); delay(tdl*2); key_host(0xfa); // 데이타수신 host_key(); led_data=rx_data2=rx_imsi; delay(300); while(kb_cki==0 && tx_time>0); delay(tdl*2); key_host(0xfa);

33 old_key=key; void code_sheft_tx() if(sft_key!=sft_old_key) // 버튼을눌렀다띠면 if(sft_old_key>0 && sft_key==0) key_host(0xf0); delay(5000); key_host(0x12); // 최초의버튼이눌려지면 if(sft_old_key==0 && sft_key>0) key_host(0x12); out_delay=0; sft_old_key=sft_key; if(sft_key==sft_old_key && sft_key>0) // 키를연속으로누르면 - 일정시간지연후신호출력 if(out_delay<15) out_delay++; key_host(0x12); void joy_stic_input() ADMUX=0; //adc_input ADC_VREF_TYPE; // Start the AD conversion ADCSRA =0x40; // Wait for the AD conversion to complete while ((ADCSRA & 0x10)==0); ADCSRA =0x10; ad_imsi=adcw; y_adc=ad_imsi/4; //y값증가시 if(y_adc>(yc+10) && ky<5) // 다음실행시간설정 joy_time=255-y_adc; joy_time*=2; if(ky==1) switch(kx) case 0: ky++; kx=1; break; default: ky++; if(ky==2) switch(kx) case 13: ky++; kx=12; break; case 14: ky+=2; break; case 15: ky+=3; break; case 16: ky+=2; break; case 17: ky+=3; break; case 21: ky+=2; break;

34 default: ky++; if(ky==3) ky++; if(kx==12) kx=11; if(ky==4) ky++; if(kx==21) kx=20; if(kx==18) kx=19; if(kx>3 && kx<9) kx=9; ky++; //y 값감소시 if(y_adc<(yc-10) && ky>0) // 다음실행시간설정 joy_time=y_adc; joy_time*=2; if(ky==1) switch(kx) case 1: ky--; kx=2; break; case 6: ky--; kx=7; break; case 10: ky--; kx=11; break; default: if(kx<18) ky--; if(ky==4) switch(kx) case 14: ky-=2; break; case 16: ky-=2; break; case 21: ky-=2; break; default: ky--; if(ky==5) switch(kx) case 0: ky--; kx=1; break; case 12: ky--; kx=11; break; case 13: ky--; kx=14; break; case 15: ky-=3; break; case 17: ky-=3; break; default: ky--;

35 ky--; // 다음실행시간설정 joy_time=255;//255-yc; ADMUX=1; //adc_input ADC_VREF_TYPE; // Start the AD conversion ADCSRA =0x40; // Wait for the AD conversion to complete while ((ADCSRA & 0x10)==0); ADCSRA =0x10; ad_imsi=adcw; x_adc=ad_imsi/4; //x값증가시처리루틴 if(x_adc>(xc+10) && kx<21) // 다음실행시간설정 joy_time=255-x_adc; joy_time*=2; if(ky==0) switch(kx) case 0: kx+=2; break; case 5: kx+=2; break; // case 17: kx+=2; break; default: if(kx<17) kx++; break; if(ky==3) switch(kx) case 12: kx+=6; break; default: if(kx<20) kx++; break; if(ky==4) switch(kx) case 11: kx+=3; break; case 14: kx+=2; break; case 16: kx+=2; break; default: if(kx<21) kx++; break; if(ky==5) switch(kx) case 3: kx+=6; break; case 17: kx+=2; break; default: if(kx<20) kx++; break;

36 kx++; //x값감소시처리루틴 if(x_adc<(xc-10)&& kx>0) // 다음실행시간설정 joy_time=x_adc; joy_time*=2; if(ky==0) switch(kx) case 2: kx-=2; break; case 7: kx-=2; break; case 19: kx-=2; break; default: kx--; break; if(ky==2) if(kx>1) kx--; if(ky==3) switch(kx) case 18: kx-=6; break; default: if(kx>1) kx--; break; if(ky==4) switch(kx) case 14: kx-=3; break; case 16: kx-=2; break; case 18: kx-=2; break; default: if(kx>1) kx--; break; if(ky==5) switch(kx) case 9: kx-=6; break; case 19: kx-=2; break; default: kx--; break; kx--; // kx--; // 다음실행시간설정

37 joy_time=255;//255-yc; void led_disp() // 키보드엘이디전체지우기 led_com&=0b ; io_port=0x00; lt1=1; lt1=0; lt2=1; lt2=0; lt3=1; lt3=0; if(disp_count==0) //led 표시 io_port=0; lt1=1; lt1=0; io_port=0; lt2=1; lt2=0; io_port=0; if((led_data & 0x04)==0x04) io_port =0x10; //caps_lock if((led_data & 0x02)==0x02) io_port =0x08; //num_lock if((led_data & 0x01)==0x01) io_port =0x20; lt3=1; lt3=0; led_com =0b ; disp_count++; if(disp_count==1) io_port=0; if(sft_sta>0) io_port =0x02; io_port&=0b ; lt1=1; lt1=0; io_port=0; lt2=1; lt2=0; io_port=0; lt3=1; lt3=0; led_com =0b ; disp_count++; if(disp_count==2) // 첫째줄표시 io_port=led_db[kx][0]; lt1=1; lt1=0; io_port=led_db[kx][1]; lt2=1; lt2=0; io_port=led_db[kx][2]; lt3=1; lt3=0; //ky 값에따라 238 코먼드라이브변경출력 switch(ky) case 0: led_com =0b ; break; case 1: led_com =0b ; break; case 2: led_com =0b ; break; case 3: led_com =0b ; break; case 4: led_com =0b ; break; case 5: led_com =0b ; break; disp_count=0;

38 // 키코드출력루틴 void tx_keycode() if(ky==0) switch(kx) case 0: tx_mode=one_ch; key_code=0x76; break; //code1_tx(); break; //esc case 2: tx_mode=one_ch; key_code=0x05; break; //code1_tx(); break; //f1 case 3: tx_mode=one_ch; key_code=0x06; break; //code1_tx(); break; //f2 case 4: tx_mode=one_ch; key_code=0x04; break; //code1_tx(); break; //f3 case 5: tx_mode=one_ch; key_code=0x0c; break; //code1_tx(); break; //f4 case 7: tx_mode=one_ch; key_code=0x03; break; //code1_tx(); break; //f5 case 8: tx_mode=one_ch; key_code=0x0b; break; //code1_tx(); break; //f6 case 9: tx_mode=one_ch; key_code=0x83; break; //code1_tx(); break; //f7 case 10: tx_mode=one_ch; key_code=0x0a; break; //code1_tx(); break; //f8 case 11: tx_mode=one_ch; key_code=0x01; break; //code1_tx(); break; //f9 case 12: tx_mode=one_ch; key_code=0x09; break; //code1_tx(); break; //f10 case 13: tx_mode=one_ch; key_code=0x78; break; //code1_tx(); break; //f11 case 14: tx_mode=one_ch; key_code=0x07; break; //code1_tx(); break; //f12 // case 15: key_code=0x76; break; //prt case 16: tx_mode=led; key_code=0x7e; break; //code1_tx(); break; //s lock // case 17: key_code=0x76; break; //break if(ky==1) switch(kx) case 0: tx_mode=one_ch; key_code=0x0e; break; //code1_tx(); break; //~ case 1: tx_mode=one_ch; key_code=0x16; break; //code1_tx(); break; //1 case 2: tx_mode=one_ch; key_code=0x1e; break; //code1_tx(); break; //2 case 3: tx_mode=one_ch; key_code=0x26; break; //code1_tx(); break; //3 case 4: tx_mode=one_ch; key_code=0x25; break; //code1_tx(); break; //4 case 5: tx_mode=one_ch; key_code=0x2e; break; //code1_tx(); break; //5 case 6: tx_mode=one_ch; key_code=0x36; break; //code1_tx(); break; //6 case 7: tx_mode=one_ch; key_code=0x3d; break; //code1_tx(); break; //7 case 8: tx_mode=one_ch; key_code=0x3e; break; //code1_tx(); break; //8 case 9: tx_mode=one_ch; key_code=0x46; break; //code1_tx(); break; //9 case 10: tx_mode=one_ch; key_code=0x45; break; //code1_tx(); break; //0 case 11: tx_mode=one_ch; key_code=0x4e; break; //code1_tx(); break; //- case 12: tx_mode=one_ch; key_code=0x55; break; //code1_tx(); break; //= case 13: tx_mode=one_ch; key_code=0x5d; break; //code1_tx(); break; //\ case 14: tx_mode=one_ch; key_code=0x66; break; //code1_tx(); break; //back space up case 15: tx_mode=two_ch; key_code=0xe070; break; //code2_tx(); break; //ins case 16: tx_mode=two_ch; key_code=0xe06c; break; //code2_tx(); break; //home case 17: tx_mode=two_ch; key_code=0xe07d; break; //code2_tx(); break; //page case 18: tx_mode=led; key_code=0x77; break; //code_led_tx(); break; //num case 19: tx_mode=two_ch; key_code=0x4a; break; //code2_tx(); break; /// case 20: tx_mode=one_ch; key_code=0x7c; break; //code1_tx(); break; //* case 21: tx_mode=one_ch; key_code=0x7b; break; //code1_tx(); break; //

39 if(ky==2) switch(kx) case 1: tx_mode=one_ch; key_code=0x0d; break; //code1_tx(); break; //tab case 2: tx_mode=one_ch; key_code=0x15; break; //code1_tx(); break; //q case 3: tx_mode=one_ch; key_code=0x1d; break; //code1_tx(); break; //w case 4: tx_mode=one_ch; key_code=0x24; break; //code1_tx(); break; //e case 5: tx_mode=one_ch; key_code=0x2d; break; //code1_tx(); break; //r case 6: tx_mode=one_ch; key_code=0x2c; break; //code1_tx(); break; //t case 7: tx_mode=one_ch; key_code=0x35; break; //code1_tx(); break; //y case 8: tx_mode=one_ch; key_code=0x3c; break; //code1_tx(); break; //u case 9: tx_mode=one_ch; key_code=0x43; break; //code1_tx(); break; //i case 10: tx_mode=one_ch; key_code=0x44; break; //code1_tx(); break; //o case 11: tx_mode=one_ch; key_code=0x4d; break; //code1_tx(); break; //p case 12: tx_mode=one_ch; key_code=0x54; break; //code1_tx(); break; //[ case 13: tx_mode=one_ch; key_code=0x5b; break; //code1_tx(); break; //] case 14: tx_mode=one_ch; key_code=0x5a; break; //code1_tx(); break; //enter down case 15: tx_mode=two_ch; key_code=0xe071; break; //code2_tx(); break; //del case 16: tx_mode=two_ch; key_code=0xe069; break; //code2_tx(); break; //end case 17: tx_mode=two_ch; key_code=0xe07a; break; //code2_tx(); break; //pg case 18: tx_mode=one_ch; key_code=0x6c; break; //code1_tx(); break; //7 case 19: tx_mode=one_ch; key_code=0x75; break; //code1_tx(); break; //8 case 20: tx_mode=one_ch; key_code=0x7d; break; //code1_tx(); break; //9 case 21: tx_mode=one_ch; key_code=0x79; break; //code1_tx(); break; //+ if(ky==3) switch(kx) case 1: tx_mode=led; key_code=0x58; break; //code_led_tx(); break; //caps case 2: tx_mode=one_ch; key_code=0x1c; break; //code1_tx(); break; //a case 3: tx_mode=one_ch; key_code=0x1b; break; //code1_tx(); break; //s case 4: tx_mode=one_ch; key_code=0x23; break; //code1_tx(); break; //d case 5: tx_mode=one_ch; key_code=0x2b; break; //code1_tx(); break; //f case 6: tx_mode=one_ch; key_code=0x34; break; //code1_tx(); break; //g case 7: tx_mode=one_ch; key_code=0x33; break; //code1_tx(); break; //h case 8: tx_mode=one_ch; key_code=0x3b; break; //code1_tx(); break; //j case 9: tx_mode=one_ch; key_code=0x42; break; //code1_tx(); break; //k case 10: tx_mode=one_ch; key_code=0x4b; break; //code1_tx(); break; //l case 11: tx_mode=one_ch; key_code=0x4c; break; //code1_tx(); break; //; case 12: tx_mode=one_ch; key_code=0x52; break; //code1_tx(); break; //' case 18: tx_mode=one_ch; key_code=0x6b; break; //code1_tx(); break; //4 case 19: tx_mode=one_ch; key_code=0x73; break; //code1_tx(); break; //5 case 20: tx_mode=one_ch; key_code=0x74; break; //code1_tx(); break; //6 if(ky==4) switch(kx) case 1: tx_mode=one_ch; key_code=0x12; break; //code1_tx(); break; //shift case 2: tx_mode=one_ch; key_code=0x1a; break; //code1_tx(); break; //z case 3: tx_mode=one_ch; key_code=0x22; break; //code1_tx(); break; //x case 4: tx_mode=one_ch; key_code=0x21; break; //code1_tx(); break; //c

40 case 5: tx_mode=one_ch; key_code=0x2a; break; //code1_tx(); break; //v case 6: tx_mode=one_ch; key_code=0x32; break; //code1_tx(); break; //b case 7: tx_mode=one_ch; key_code=0x31; break; //code1_tx(); break; //n case 8: tx_mode=one_ch; key_code=0x3a; break; //code1_tx(); break; //m case 9: tx_mode=one_ch; key_code=0x41; break; //code1_tx(); break; //, case 10: tx_mode=one_ch; key_code=0x49; break; //code1_tx(); break; //. case 11: tx_mode=one_ch; key_code=0x4a; break; //code1_tx(); break; /// case 14: tx_mode=one_ch; key_code=0x59; break; //code1_tx(); break; //shift case 16: tx_mode=two_ch; key_code=0xe075; break; //code2_tx(); break; // case 18: tx_mode=one_ch; key_code=0x69; break; //code1_tx(); break; // case 19: tx_mode=one_ch; key_code=0x72; break; //code1_tx(); break; // case 20: tx_mode=one_ch; key_code=0x7a; break; //code1_tx(); break; // case 21: tx_mode=two_ch; key_code=0xe05a; break; //code2_tx(); break; // if(ky==5) switch(kx) case 0: tx_mode=one_ch; key_code=0x14; break; //code1_tx(); break; //ctrl case 1: tx_mode=two_ch; key_code=0xe01f; break; //code1_tx(); break; //window // case 2: key_code=0x11; code1_tx(); break; //alt // case 3: key_code=0x76; code1_tx(); break; //hanja case 9: tx_mode=one_ch; key_code=0x29; break; //code1_tx(); break; //space case 10: tx_mode=h_e; key_code=0xf2; break; //code1_tx(); break; //h/e case 11: tx_mode=two_ch; key_code=0x11; break; //code2_tx(); break; //alt case 12: tx_mode=two_ch; key_code=0xe027; break; //code1_tx(); break; //window // case 12: key_code=0x76; code1_tx(); break; //window // case 13: key_code=0x76; code1_tx(); break; //write case 14: tx_mode=two_ch; key_code=0x14; break; //code2_tx(); break; //ctrl case 15: tx_mode=two_ch; key_code=0xe06b; break; //code2_tx(); break; // case 16: tx_mode=two_ch; key_code=0xe072; break; //code2_tx(); break; // case 17: tx_mode=two_ch; key_code=0xe074; break; //code2_tx(); break; // case 19: tx_mode=one_ch; key_code=0x70; break; //code1_tx(); break; // case 20: tx_mode=one_ch; key_code=0x71; break; //code1_tx(); break; // void mouse_tx(char f) if(f==up) ltm=1; mouse_data&=0b ; mouse_data =0x02; io_port=mouse_data; delay(100); mouse_data =0x01; io_port=mouse_data; delay(100); mouse_data&=0b ; io_port=mouse_data; delay(100); mouse_data&=0b ; io_port=mouse_data; delay(100); ltm=0; if(f==down)

41 ltm=1; mouse_data&=0b ; mouse_data =0x01; io_port=mouse_data; delay(100); mouse_data =0x02; io_port=mouse_data; delay(100); mouse_data&=0b ; io_port=mouse_data; delay(100); mouse_data&=0b ; io_port=mouse_data; delay(100); ltm=0; if(f==left) ltm=1; mouse_data&=0b ; mouse_data =0x04; io_port=mouse_data; delay(100); mouse_data =0x08; io_port=mouse_data; delay(100); mouse_data&=0b ; io_port=mouse_data; delay(100); mouse_data&=0b ; io_port=mouse_data; delay(100); ltm=0; if(f==right) ltm=1; mouse_data&=0b ; mouse_data =0x08; io_port=mouse_data; delay(100); mouse_data =0x04; io_port=mouse_data; delay(100); mouse_data&=0b ; io_port=mouse_data; delay(100); mouse_data&=0b ; io_port=mouse_data; delay(100); ltm=0; if(f==celick) ltm=1; // mouse_data&=0b ; mouse_data =0x40; io_port=mouse_data; ltm=0; if(f==nocelick) ltm=1; // mouse_data&=0b ; mouse_data&=0b ; io_port=mouse_data; ltm=0; if(f==celick2) ltm=1; mouse_data&=0b ; mouse_data =0x40; io_port=mouse_data; delay(20000); mouse_data&=0b ; io_port=mouse_data; delay(50000); mouse_data =0x40; io_port=mouse_data; delay(20000); mouse_data&=0b ; io_port=mouse_data; delay(20000); ltm=0; void mouse_input()

42 ADMUX=0; //adc_input ADC_VREF_TYPE; // Start the AD conversion ADCSRA =0x40; // Wait for the AD conversion to complete while ((ADCSRA & 0x10)==0); ADCSRA =0x10; ad_imsi=adcw; my=ad_imsi/4; //y 값증가시 if(my>(yc+10)) mouse_tx(up); mouse_time=255-my; if(my<(yc-10)) mouse_tx(down); mouse_time=my; mouse_tx(stop); ADMUX=1; //adc_input ADC_VREF_TYPE; // Start the AD conversion ADCSRA =0x40; // Wait for the AD conversion to complete while ((ADCSRA & 0x10)==0); ADCSRA =0x10; ad_imsi=adcw; mx=ad_imsi/4; //x 값증가시 if(mx>(xc+10)) mouse_tx(left); mouse_time=255-mx; if(mx<(xc-10)) mouse_tx(right); mouse_time=mx; mouse_tx(stop); // 초기시작시조이스틱볼륨값읽어오기 void joystic_init() ADMUX=0; //adc_input ADC_VREF_TYPE; // Start the AD conversion ADCSRA =0x40; // Wait for the AD conversion to complete while ((ADCSRA & 0x10)==0); ADCSRA =0x10; ad_imsi=adcw; yc=ad_imsi/4; ADMUX=1; //adc_input ADC_VREF_TYPE; // Start the AD conversion ADCSRA =0x40; // Wait for the AD conversion to complete while ((ADCSRA & 0x10)==0); ADCSRA =0x10; ad_imsi=adcw; xc=ad_imsi/4; void main(void) mega16_init(); // Global enable interrupts #asm("sei") delay(60000);

43 joystic_init(); while (1) if(km_mode==keyboard) // 조이스틱입력 if(joy_time==0) joy_stic_input(); if(km_mode==mouse) // 마우스입력 if(mouse_time==0) mouse_input(); // 쉬프트발버튼상태읽어오기 sft_sta=sft_pin; // code_sheft_tx(); led_disp(); // 외부 ( 발 ) 버튼입력 if(scan_time==0) foot_key_in(); scan_time=100; if(foot_key>0) //key_host(0x77); delay(6000); //key_host(0xf0); delay(5000); //key_host(0x77); delay(5000); // tx_sta=2; tx_count=3; d1=0x77; d2=0xf0; d3=0x77; tx_time=0; // 마우스 1클릭버튼 if((foot_key & 0x08)==0x08 && mck_sta==0) mouse_tx(celick); mck_sta=1; // 발입력버튼이눌려지면키코드대입 switch(foot_key) case 0x01: key=1; tx_keycode(); break; case 0x02: joystic_init(); break; case 0x04: mouse_tx(celick2); break; key=0; // 마우스노 1클릭 if((foot_key & 0x08)==0 && mck_sta>0) mouse_tx(nocelick); mck_sta=0; // 각상태별키코드송신 if(tx_mode==one_ch) //1키코드송신 code1_tx(); if(tx_mode==two_ch) //2키코드송신

44 code2_tx(); if(tx_mode==led) // 엘이디코드송수신 code_led_tx(); if(tx_mode==sheft) // 쉬프트키가눌린경우의송신 code_sheft_tx(); if(tx_mode==h_e) // 한영전환키 code_he_tx(); tx_232(0x10); tx_232((x_adc/100)+0x30); tx_232(((x_adc%100)/10)+0x30); tx_232((x_adc%10)+0x30); tx_232(' '); tx_232((y_adc/100)+0x30); tx_232(((y_adc%100)/10)+0x30); tx_232((y_adc%10)+0x30); tx_232(' '); tx_232(0x11); tx_232((kx/10)+0x30); tx_232((kx%10)+0x30); tx_232(' '); tx_232((ky/10)+0x30); tx_232((ky%10)+0x30); tx_232(' '); tx_232((foot_key/10)+0x30); tx_232((foot_key%10)+0x30); tx_232(' '); tx_232(hex[led_data/16]); tx_232(hex[led_data%16]); tx_232(' '); ;

ATmega128

ATmega128 ATmega128 외부인터럽트실습 Prof. Jae Young Choi ( 최재영교수 ) (2015 Spring) Prof. Jae Young Choi 외부인터럽트실험 외부인터럽트를사용하기위해관렦레지스터를설정 일반적으로 I/O 포트에대한설정이끝난후에외부인터럽트나타이머 / 카운터설정 PE4~7 번까지 4 개의외부인터럽트 INT4~INT7 까지사용 외부인터럽트사용법요약

More information

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729> 8주차중간고사 ( 인터럽트및 A/D 변환기문제및풀이 ) Next-Generation Networks Lab. 외부입력인터럽트예제 문제 1 포트 A 의 7-segment 에초시계를구현한다. Tact 스위치 SW3 을 CPU 보드의 PE4 에연결한다. 그리고, SW3 을누르면하강 에지에서초시계가 00 으로초기화된다. 동시에 Tact 스위치 SW4 를 CPU 보드의

More information

Smart Home 1. Embeded UART 2. GoAhead Web Server 3. JQuery, JQTouch 4. AJAX 5. JK-FF Switch 강의명 : 담당교수 : 임베디드소프트웨어및실습 고진석교수님 전공 : 전자공학과 실습조 : 학번 / 성명

Smart Home 1. Embeded UART 2. GoAhead Web Server 3. JQuery, JQTouch 4. AJAX 5. JK-FF Switch 강의명 : 담당교수 : 임베디드소프트웨어및실습 고진석교수님 전공 : 전자공학과 실습조 : 학번 / 성명 Smart Home 1. Embeded UART 2. GoAhead Web Server 3. JQuery, JQTouch 4. AJAX 5. JK-FF Switch 강의명 : 담당교수 : 임베디드소프트웨어및실습 고진석교수님 전공 : 전자공학과 실습조 : 학번 / 성명 : 5 조 2009160184 하성주 2010161002 전익현 제출일 : 2013. 12.

More information

(Asynchronous Mode) ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 -

(Asynchronous Mode) ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 - (Asynchronous Mode) - - - ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 - UART (Univ ers al As y nchronous Receiver / T rans mitter) 8250A 8250A { COM1(3F8H). - Line Control Register

More information

[8051] 강의자료.PDF

[8051] 강의자료.PDF CY AC F0 RS1 RS0 OV - P 0xFF 0x80 0x7F 0x30 0x2F 0x20 0x1F 0x18 0x17 0x10 0x0F 0x08 0x07 0x00 0x0000 0x0FFF 0x1000 0xFFFF 0x0000 0xFFFF RAM SFR SMOD - - - GF1 GF0 PD IDL 31 19 18 9 12 13 14 15 1 2 3 4

More information

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729> 7주차 AVR의 A/D 변환기제어레지스터및관련실습 Next-Generation Networks Lab. 3. 관련레지스터 표 9-4 레지스터 ADMUX ADCSRA ADCH ADCL 설명 ADC Multiplexer Selection Register ADC 의입력채널선택및기준전압선택외 ADC Control and Status Register A ADC 의동작을설정하거나동작상태를표시함

More information

M16_32KIT_Manual.hwp

M16_32KIT_Manual.hwp M16/32KIT Mega 16/32 KIT Technical Manual AVRMALL http://www.avrmall.com/ September 20, 2004 Copyright (c) 2003,2004 AVRMALL All Rights Reserved. M16/32KIT Technical Manual September 20, 2004 Page 2 of

More information

슬라이드 1

슬라이드 1 마이크로컨트롤러 2 (MicroController2) 2 강 ATmega128 의 external interrupt 이귀형교수님 학습목표 interrupt 란무엇인가? 기본개념을알아본다. interrupt 중에서가장사용하기쉬운 external interrupt 의사용방법을학습한다. 1. Interrupt 는왜필요할까? 함수동작을추가하여실행시키려면? //***

More information

정보보안 개론과 실습:네트워크

정보보안 개론과 실습:네트워크 ` 마이크로프로세서설계및실습 12-13 주차강의자료 학습목표 A/D 변환기의제어방법을이해한다 능숙하게 A/D 변환기를제어할수있도록반복실습한다 2/28 아날로그 - 디지털변환회로 아날로그 - 디지털변환회로 (A/D 변환회로 ) 는, 아날로그전기신호를디지털전기신호로변환하는전자회로이다 A/D 컨버터 (ADC: Analog-to-digital converter) 라고도불린다

More information

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A634C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A634C0CFC2F72E BC8A3C8AF20B8F0B5E55D> 뻔뻔한 AVR 프로그래밍 The 4 th Lecture 유명환 ( yoo@netplug.co.kr) 1 시간 (Time) 에대한정의 INDEX 2 왜타이머 (Timer) 와카운터 (Counter) 인가? 3 ATmega128 타이머 / 카운터동작구조 4 ATmega128 타이머 / 카운터관련레지스터 5 뻔뻔한노하우 : 레지스터비트설정방법 6 ATmega128

More information

MAX232 MAXIM사에서생산되는 RS-232통신을가능토록해주는송수신 IC이다. 송수신드라이브를각각 2개씩가지고있다. AVR과컴퓨터가인식하는 0과 1의값이다르기때문에.. 마이컴컴퓨터 이차이를해결해주는것이다. 0 0V -10V 1 5V 10V TTL IC 의전원단자와다

MAX232 MAXIM사에서생산되는 RS-232통신을가능토록해주는송수신 IC이다. 송수신드라이브를각각 2개씩가지고있다. AVR과컴퓨터가인식하는 0과 1의값이다르기때문에.. 마이컴컴퓨터 이차이를해결해주는것이다. 0 0V -10V 1 5V 10V TTL IC 의전원단자와다 Code Vison AVR C ATmega 8535 RS232 시리얼통신 컨넥터와신호선 RS232 통신을위한컨넥터는 9핀과 25핀컨넥터가있으나, 최근에는 9핀컨넥터를많이사용한다. 실제데이터가송수신되는핀은 TXD(3) 와 RXD(2) 이고기능은다음과같다. 9 핀컨넥터의모습 TXD - Transmit Data 비동기식직렬통신장치가외부장치로데이터를보낼때, 직렬통신데이터가나오는신호선

More information

UART.h #ifndef _UART_H_ #define _UART_H_ #define DIR_TXD #define DIR_RXD sbi(portd,4) cbi(portd,4) #define CPU_CLOCK_HZ UL UART PORT1 void UAR

UART.h #ifndef _UART_H_ #define _UART_H_ #define DIR_TXD #define DIR_RXD sbi(portd,4) cbi(portd,4) #define CPU_CLOCK_HZ UL UART PORT1 void UAR IMC-V0.1 예제소스파일 1. UART 소스코드 (page 1-3) 2. Encoder 소스코드 (page 4-7) 3. ADC 소스코드 (page 8-10) UART.h #ifndef _UART_H_ #define _UART_H_ #define DIR_TXD #define DIR_RXD sbi(portd,4) cbi(portd,4) #define CPU_CLOCK_HZ

More information

T100MD+

T100MD+ User s Manual 100% ) ( x b a a + 1 RX+ TX+ DTR GND TX+ RX+ DTR GND RX+ TX+ DTR GND DSR RX+ TX+ DTR GND DSR [ DCE TYPE ] [ DCE TYPE ] RS232 Format Baud 1 T100MD+

More information

2주차: 입출력 제어 복습

2주차: 입출력 제어 복습 마이크로프로세서 응용및실습 ` 13-14 주차 : 직렬통신 (2) 한철수 전자공학과 2/35 직렬통신과병렬통신 직렬통신 한가닥의선으로송수신할데이터를차례대로전송하는방식 장점 : 통신선로가적기때문에경제적임 단점 : 전송속도가느림. 송수신약속이복잡해짐 병렬통신 여러가닥의선으로동시에여러개의데이터를전송하는방식 장점 : 전송속도가빠름 단점 : 직렬통신보다비쌈 3/35

More information

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A636C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A636C0CFC2F72E BC8A3C8AF20B8F0B5E55D> 뻔뻔한 AVR 프로그래밍 The 6 th Lecture 유명환 ( yoo@netplug.co.kr) 1 2 통신 관련이야기 시리얼통신 관련이야기 INDEX 3 ATmega128 시리얼통신회로도분석 4 ATmega128 시리얼통신컨트롤러 (USART) 분석 5 ATmega128 시리얼통신관련레지스터분석 6 ATmega128 시리얼통신실습 1 통신 관련이야기 동기

More information

lecture4(6.범용IO).hwp

lecture4(6.범용IO).hwp 제 2 부 C-언어를 사용한 마이크로컨트롤러 활용기초 66 C-언어는 수학계산을 위해 개발된 FORTRAN 같은 고급언어들과는 달 리 Unix 운영체제를 개발하면서 같이 개발된 고급언어이다. 운영체제의 특성상 C-언어는 다른 고급언어에 비해 컴퓨터의 하드웨어를 직접 제어할 수 있는 능력이 탁월하여 마이크로프로세서의 프로그램에 있어서 어셈블 리와 더불어 가장

More information

Microsoft PowerPoint - polling.pptx

Microsoft PowerPoint - polling.pptx 지현석 (binish@home.cnu.ac.kr) http://binish.or.kr Index 이슈화된키보드해킹 최근키보드해킹이슈의배경지식 Interrupt VS polling What is polling? Polling pseudo code Polling 을이용한키로거분석 방어기법연구 이슈화된키보드해킹 키보드해킹은연일상한가! 주식, 펀드투자의시기?! 최근키보드해킹이슈의배경지식

More information

K&R2 Reference Manual 번역본

K&R2 Reference Manual 번역본 typewriter structunion struct union if-else if if else if if else if if if if else else ; auto register static extern typedef void char short int long float double signed unsigned const volatile { } struct

More information

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D> 뻔뻔한 AVR 프로그래밍 The Last(8 th ) Lecture 유명환 ( yoo@netplug.co.kr) INDEX 1 I 2 C 통신이야기 2 ATmega128 TWI(I 2 C) 구조분석 4 ATmega128 TWI(I 2 C) 실습 : AT24C16 1 I 2 C 통신이야기 I 2 C Inter IC Bus 어떤 IC들간에도공통적으로통할수있는 ex)

More information

<4D F736F F D20BDBAC5D7C7CE20B6F3C0CEC6AEB7B9C0CCBCADB0ADC1C2202D203420C7C1B7CEB1D7B7A1B9D62E646F63>

<4D F736F F D20BDBAC5D7C7CE20B6F3C0CEC6AEB7B9C0CCBCADB0ADC1C2202D203420C7C1B7CEB1D7B7A1B9D62E646F63> 라인트레이서강좌 4. 프로그래밍 2005년 8월 1일류대우 (davidryu@newtc.co.kr) 1. 라인트레이서란? 라인트레이서는정해진주행선을따라움직이는자율이동로봇이다. 현재공장자동화부분에서이용되고있는무인반송차가라인트레이서이다. 라인트레이서의기본적인원리는주어진주행선을센서로검출하여이것에따라목적위치까지이동하는것이다. 라인트레이서는크게 3부분 - 컨트롤러부,

More information

1. 제품소개 그림. 1.1 이란? DC 모터구동시하드웨어제작에소요되는시간을단축시켜프로그래밍연구개발및학습효과를극대화시켜주는 입니다. 또한당사 DEV 보드와 1P 점퍼클립케이블을이용하여연동이가능하며, 산업용 DC 모터의정회전, 역회전구동및속도제어시유용하게사용되는 입니다.

1. 제품소개 그림. 1.1 이란? DC 모터구동시하드웨어제작에소요되는시간을단축시켜프로그래밍연구개발및학습효과를극대화시켜주는 입니다. 또한당사 DEV 보드와 1P 점퍼클립케이블을이용하여연동이가능하며, 산업용 DC 모터의정회전, 역회전구동및속도제어시유용하게사용되는 입니다. 매뉴얼 (Model: ET-DCM) 이경남 L K 임베디드 서울북부기술인재학원 2013 LK EMBEDDED ET-DCM version 1.0 페이지 1 1. 제품소개 그림. 1.1 이란? DC 모터구동시하드웨어제작에소요되는시간을단축시켜프로그래밍연구개발및학습효과를극대화시켜주는 입니다. 또한당사 DEV 보드와 1P 점퍼클립케이블을이용하여연동이가능하며, 산업용

More information

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F > 10주차 문자 LCD 의인터페이스회로및구동함수 Next-Generation Networks Lab. 5. 16x2 CLCD 모듈 (HY-1602H-803) 그림 11-18 19 핀설명표 11-11 번호 분류 핀이름 레벨 (V) 기능 1 V SS or GND 0 GND 전원 2 V Power DD or V CC +5 CLCD 구동전원 3 V 0 - CLCD 명암조절

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Web server porting 2 Jo, Heeseung Web 을이용한 LED 제어 Web 을이용한 LED 제어프로그램 web 에서데이터를전송받아타겟보드의 LED 를조작하는프로그램을작성하기위해다음과같은소스파일을생성 2 Web 을이용한 LED 제어 LED 제어프로그램작성 8bitled.html 파일을작성 root@ubuntu:/working/web# vi

More information

MAX+plus II Getting Started - 무작정따라하기

MAX+plus II Getting Started - 무작정따라하기 무작정 따라하기 2001 10 4 / Version 20-2 0 MAX+plus II Digital, Schematic Capture MAX+plus II, IC, CPLD FPGA (Logic) ALTERA PLD FLEX10K Series EPF10K10QC208-4 MAX+plus II Project, Schematic, Design Compilation,

More information

2. GCC Assembler와 AVR Assembler의차이 A. GCC Assembler 를사용하는경우 i. Assembly Language Program은.S Extension 을갖는다. ii. C Language Program은.c Extension 을갖는다.

2. GCC Assembler와 AVR Assembler의차이 A. GCC Assembler 를사용하는경우 i. Assembly Language Program은.S Extension 을갖는다. ii. C Language Program은.c Extension 을갖는다. C 언어와 Assembly Language 을사용한 Programming 20011.9 경희대학교조원경 1. AVR Studio 에서사용하는 Assembler AVR Studio에서는 GCC Assembler와 AVR Assmbler를사용한다. A. GCC Assembler : GCC를사용하는경우 (WinAVR 등을사용하는경우 ) 사용할수있다. New Project

More information

CANTUS Evaluation Board Ap. Note

CANTUS Evaluation Board Ap. Note Preliminary CANTUS - UART - 32bits EISC Microprocessor CANTUS Ver 1. October 8, 29 Advanced Digital Chips Inc. Ver 1. PRELIMINARY CANTUS Application Note( EVM B d ) History 29-1-8 Created Preliminary Specification

More information

Chapter. 14 DAC 를이용한 LED 밝기제어 HBE-MCU-Multi AVR Jaeheung, Lee

Chapter. 14 DAC 를이용한 LED 밝기제어 HBE-MCU-Multi AVR Jaeheung, Lee Chapter. 14 DAC 를이용한 LED 밝기제어 HBE-MCU-Multi AVR Jaeheung, Lee 목차 1. D/A 변환기 2. 병렬 D/A 변환기로 LED 밝기제어하기 3. 직렬 D/A 변환기로 LED 밝기제어하기 D/A 변환기 D/A 변환기 (Digital to Analog Converter) 디지털데이터를아날로그전압으로변환하는소자 A/D변환기와함께마이크로프로세서응용회로에서널리사용됨.

More information

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어 개나리 연구소 C 언어 노트 (tyback.egloos.com) 프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어먹고 하더라구요. 그래서,

More information

인터럽트 * 인터럽트처리메커니즘 ATmega128 인터럽트 2

인터럽트 * 인터럽트처리메커니즘 ATmega128 인터럽트 2 ATmega128 인터럽트 1 제 04 강 인터럽트 (Interrupt) 인터럽트개요외부인터럽트참고 ) FND 회로실습및과제 인터럽트 * 인터럽트처리메커니즘 ATmega128 인터럽트 2 인터럽트 ( 계속 ) ATmega128 인터럽트 3 * 인터럽트벡터 (P.104 표 7.1 참조 ) : 35 개 인터럽트 ( 계속 ) * 인터럽트허용 / 금지메커니즘 ATmega128

More information

한글사용설명서

한글사용설명서 ph 2-Point (Probe) ph (Probe) ON/OFF ON ph ph ( BUFFER ) CAL CLEAR 1PT ph SELECT BUFFER ENTER, (Probe) CAL 1PT2PT (identify) SELECT BUFFER ENTER, (Probe), (Probe), ph (7pH)30 2 1 2 ph ph, ph 3, (,, ) ON

More information

untitled

untitled Step Motor Device Driver Embedded System Lab. II Step Motor Step Motor Step Motor source Embedded System Lab. II 2 open loop, : : Pulse, 1 Pulse,, -, 1 +5%, step Step Motor (2),, Embedded System Lab. II

More information

untitled

untitled 1... 2 System... 3... 3.1... 3.2... 3.3... 4... 4.1... 5... 5.1... 5.2... 5.2.1... 5.3... 5.3.1 Modbus-TCP... 5.3.2 Modbus-RTU... 5.3.3 LS485... 5.4... 5.5... 5.5.1... 5.5.2... 5.6... 5.6.1... 5.6.2...

More information

KEY 디바이스 드라이버

KEY 디바이스 드라이버 KEY 디바이스드라이버 임베디드시스템소프트웨어 I (http://et.smu.ac.kr et.smu.ac.kr) 차례 GPIO 및 Control Registers KEY 하드웨어구성 KEY Driver 프로그램 key-driver.c 시험응용프로그램 key-app.c KEY 디바이스드라이버 11-2 GPIO(General-Purpose Purpose I/O)

More information

2009년2학기 임베디드시스템 응용

2009년2학기 임베디드시스템 응용 임베디드시스템기초 (#514115 ) #2. GPIO & Matrix Keypad 한림대학교전자공학과이선우 Short Review #1 General Purpose Input Output (GPIO) Output port Input port Switch 사용방법 2 General Purpose Input Output(GPIO) port 모든 MCU의가장기본적이고중요한주변장치

More information

도 1 명세서 도면의 간단한 설명 도 1은 본 발명의 바람직한 실시예에 따른 데이터 송수신 장치의 회로도이다. 도 2는 도 1에 도시된 등화기의 일 실시예를 보여주는 회로도이다. 도 3은 도 1에 도시된 프리엠퍼시스 회로의 일 실시예를 보여주는 회로도이다. 도 4는 본

도 1 명세서 도면의 간단한 설명 도 1은 본 발명의 바람직한 실시예에 따른 데이터 송수신 장치의 회로도이다. 도 2는 도 1에 도시된 등화기의 일 실시예를 보여주는 회로도이다. 도 3은 도 1에 도시된 프리엠퍼시스 회로의 일 실시예를 보여주는 회로도이다. 도 4는 본 (51) Int. Cl. 7 H04B 3/04 (19)대한민국특허청(KR) (12) 등록특허공보(B1) (45) 공고일자 (11) 등록번호 (24) 등록일자 2005년08월24일 10-0509949 2005년08월17일 (21) 출원번호 10-2003-0082348 (65) 공개번호 10-2005-0048423 (22) 출원일자 2003년11월19일 (43)

More information

<4D F736F F F696E74202D2037C0E55FC0CEC5CDB7B4C6AEC0C720B5BFC0DB2E707074>

<4D F736F F F696E74202D2037C0E55FC0CEC5CDB7B4C6AEC0C720B5BFC0DB2E707074> 7 장. 인터럽트의동작 한국산업기술대학교 이응혁교수 WWW.ROBOTICSLAB.CO.KR 1 7.1 인터럽트 (Interrupt) 개요 인터럽트개념 프로그램이수행되고있는동안에어떤조건이발생하여수행중인프로그램을일시적으로중지시키게만드는조건이나사건의발생 비동기적으로처리 다른프로그램이수행되는동안여러개의사건을처리할수있는메커니즘 인터럽트가발생하면마이크로컨트롤러는현재수행중인프로그램을일시중단하고,

More information

목차 1. 개요... 3 2. USB 드라이버 설치 (FTDI DRIVER)... 4 2-1. FTDI DRIVER 실행파일... 4 2-2. USB 드라이버 확인방법... 5 3. DEVICE-PROGRAMMER 설치... 7 3-1. DEVICE-PROGRAMMER

목차 1. 개요... 3 2. USB 드라이버 설치 (FTDI DRIVER)... 4 2-1. FTDI DRIVER 실행파일... 4 2-2. USB 드라이버 확인방법... 5 3. DEVICE-PROGRAMMER 설치... 7 3-1. DEVICE-PROGRAMMER < Tool s Guide > 목차 1. 개요... 3 2. USB 드라이버 설치 (FTDI DRIVER)... 4 2-1. FTDI DRIVER 실행파일... 4 2-2. USB 드라이버 확인방법... 5 3. DEVICE-PROGRAMMER 설치... 7 3-1. DEVICE-PROGRAMMER 실행파일... 7 4. DEVICE-PROGRAMMER 사용하기...

More information

ez-md+_manual01

ez-md+_manual01 ez-md+ HDMI/SDI Cross Converter with Audio Mux/Demux Operation manual REVISION NUMBER: 1.0.0 DISTRIBUTION DATE: NOVEMBER. 2018 저작권 알림 Copyright 2006~2018 LUMANTEK Co., Ltd. All Rights Reserved 루먼텍 사에서

More information

API 매뉴얼

API 매뉴얼 PCI-TC03 API Programming (Rev 1.0) Windows, Windows2000, Windows NT, Windows XP and Windows 7 are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations

More information

목차 1. 키패드 (KeyPAD) 2. KeyPAD 를이용한비밀번호입력기

목차 1. 키패드 (KeyPAD) 2. KeyPAD 를이용한비밀번호입력기 Chapter. 13 KeyPAD 를이용한비밀번호입력기 HBE-MCU-Multi AVR Jaeheung, Lee 목차 1. 키패드 (KeyPAD) 2. KeyPAD 를이용한비밀번호입력기 키패드 (KeyPAD) 키패드 (KeyPAD) 마이크로컨트롤러활용에서사용자의입력을받아들이기위한장치 전화기, 컴퓨터, 핸드폰, 냉장고등거의모든가전제품에서사용 키패드인터페이스방식

More information

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202831C1D6C2F72C2032C1D6C2F729>

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202831C1D6C2F72C2032C1D6C2F729> 1주차 ATmega128의구조와메모리 Next-Generation Networks Lab. 1. ATmega128의특징 고성능, 저전력의 8 비트마이크로컨트롤러 진보된 RISC 구조 대부분단일클럭에서실행되는강력한 133개의명령어구조 16MHz에서거의 16MIPS로동작 32개의 8 bit 범용작업레지스터와추가된주변장치제어레지스터 2 사이클내에서수행되는강력한곱셈기내장

More information

Chapter #01 Subject

Chapter #01  Subject Device Driver March 24, 2004 Kim, ki-hyeon 목차 1. 인터럽트처리복습 1. 인터럽트복습 입력검출방법 인터럽트방식, 폴링 (polling) 방식 인터럽트서비스등록함수 ( 커널에등록 ) int request_irq(unsigned int irq, void(*handler)(int,void*,struct pt_regs*), unsigned

More information

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070> #include "stdafx.h" #include "Huffman.h" 1 /* 비트의부분을뽑아내는함수 */ unsigned HF::bits(unsigned x, int k, int j) return (x >> k) & ~(~0

More information

Microsoft PowerPoint - es-arduino-lecture-03

Microsoft PowerPoint - es-arduino-lecture-03 임베디드시스템개론 : Arduino 활용 Lecture #3: Button Input & FND Control 2012. 3. 25 by 김영주 강의목차 디지털입력 Button switch 입력 Button Debounce 7-Segment FND : 직접제어 7-Segment FND : IC 제어 2 디지털입력 : Switch 입력 (1) 실습목표 아두이노디지털입력처리실습

More information

슬라이드 1

슬라이드 1 사용 전에 사용자 주의 사항을 반드시 읽고 정확하게 지켜주시기 바랍니다. 사용설명서의 구성품 형상과 색상은 실제와 다를 수 있습니다. 사용설명서의 내용은 제품의 소프트웨어 버전이나 통신 사업자의 사정에 따라 다를 수 있습니다. 본 사용설명서는 저작권법에 의해 보호를 받고 있습니다. 본 사용설명서는 주식회사 블루버드소프트에서 제작한 것으로 편집 오류, 정보 누락

More information

hd1300_k_v1r2_Final_.PDF

hd1300_k_v1r2_Final_.PDF Starter's Kit for HelloDevice 1300 Version 11 1 2 1 2 3 31 32 33 34 35 36 4 41 42 43 5 51 52 6 61 62 Appendix A (cross-over) IP 3 Starter's Kit for HelloDevice 1300 1 HelloDevice 1300 Starter's Kit HelloDevice

More information

MicrocontrollerAcademy_Lab_ST_040709

MicrocontrollerAcademy_Lab_ST_040709 Micro-Controller Academy Program Lab Materials STMicroelectronics ST72F324J6B5 Seung Jun Sang Sa Ltd. Seung Jun Sang Sa Ltd. Seung Jun Sang Sa Ltd. Seung Jun Sang Sa Ltd. Seung Jun Sang Sa Ltd. Seung Jun

More information

Section 03 인터럽트활성화와인터럽트서비스루틴연결 34/82 장치에대한인터럽트설정과활성화 내부장치에대한특수레지스터존재 장치의특성을반영한동작설정용또는상태관찰용비트로구성 인터럽트사건의발생패턴을설정해야함 인터럽트활성화비트를 1 로셋하여, 인터럽트발생을허락» 전제, 전역

Section 03 인터럽트활성화와인터럽트서비스루틴연결 34/82 장치에대한인터럽트설정과활성화 내부장치에대한특수레지스터존재 장치의특성을반영한동작설정용또는상태관찰용비트로구성 인터럽트사건의발생패턴을설정해야함 인터럽트활성화비트를 1 로셋하여, 인터럽트발생을허락» 전제, 전역 Section 03 인터럽트활성화와인터럽트서비스루틴연결 33/82 Section 03 인터럽트활성화와인터럽트서비스루틴연결 34/82 장치에대한인터럽트설정과활성화 내부장치에대한특수레지스터존재 장치의특성을반영한동작설정용또는상태관찰용비트로구성 인터럽트사건의발생패턴을설정해야함 인터럽트활성화비트를 1 로셋하여, 인터럽트발생을허락» 전제, 전역인터럽트활성화비트가 1 로셋되었을때

More information

Microsoft PowerPoint - Chapter 8_USART Serial Communication

Microsoft PowerPoint - Chapter 8_USART Serial Communication MEC382 마이크로프로세서응용및실습 USART Serial Communication Jee-Hwan Ryu School of Mechanical Engineering 통신방법 병렬통신 고속데이터전송이필요한곳에서이루어짐 여러개의라인에서동시에이루어짐 직렬통신 한라인에서이루어짐 데이터의송수신속도가느리다 라인수적고멀리까지통신 동기식, 비동기식있음 동기식 : 기준클럭인동기클럭라인과데이터송

More information

Slide 1

Slide 1 Clock Jitter Effect for Testing Data Converters Jin-Soo Ko Teradyne 2007. 6. 29. 1 Contents Noise Sources of Testing Converter Calculation of SNR with Clock Jitter Minimum Clock Jitter for Testing N bit

More information

Microsoft Word doc

Microsoft Word doc 2. 디바이스드라이버 [ DIO ] 2.1. 개요 타겟보드의데이터버스를이용하여 LED 및스위치동작을제어하는방법을설명하겠다. 2.2. 회로도 2.3. 준비조건 ARM 용크로스컴파일러가설치되어있어야한다. 하드웨어적인점검을하여정상적인동작을한다고가정한다. NFS(Network File System) 를사용할경우에는 NFS가마운트되어있어야한다. 여기서는소스전문을포함하지않았다.

More information

MPLAB C18 C

MPLAB C18 C MPLAB C18 C MPLAB C18 MPLAB C18 C MPLAB C18 C #define START, c:\mcc18 errorlevel{0 1} char isascii(char ch); list[list_optioin,list_option] OK, Cancel , MPLAB IDE User s Guide MPLAB C18 C

More information

제품 특징 PC에서 마우스/키보드로 사용 Motion Ring은 사용자의 동작을 인식하는 3D 공간 인식 센서 가 장착되어 있어 정해진 제스처를 사용하여 마우스나 키보드 로 사용할 수 있습니다. - 일반적인 마우스와 키보드 없이 인터넷 웹 페이지를 사용하 거나 프레젠테

제품 특징 PC에서 마우스/키보드로 사용 Motion Ring은 사용자의 동작을 인식하는 3D 공간 인식 센서 가 장착되어 있어 정해진 제스처를 사용하여 마우스나 키보드 로 사용할 수 있습니다. - 일반적인 마우스와 키보드 없이 인터넷 웹 페이지를 사용하 거나 프레젠테 Motion Ring 사용 설명서 본 사용 설명서의 주의사항은 사용자의 안전을 지키고, 재산상의 손해 등을 막기 위한 내용입니다. 반드시 읽고 올바르게 사용하여 주십시오. UZ-R001 제품 특징 PC에서 마우스/키보드로 사용 Motion Ring은 사용자의 동작을 인식하는 3D 공간 인식 센서 가 장착되어 있어 정해진 제스처를 사용하여 마우스나 키보드 로

More information

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074> Chap #2 펌웨어작성을위한 C 언어 I http://www.smartdisplay.co.kr 강의계획 Chap1. 강의계획및디지털논리이론 Chap2. 펌웨어작성을위한 C 언어 I Chap3. 펌웨어작성을위한 C 언어 II Chap4. AT89S52 메모리구조 Chap5. SD-52 보드구성과코드메모리프로그래밍방법 Chap6. 어드레스디코딩 ( 매핑 ) 과어셈블리어코딩방법

More information

HX - Operation Manual MC / TC / CUT / QT HX Series(V2.x) Operation Manual for MC / TC / CUT / QT CSCAM

HX - Operation Manual MC / TC / CUT / QT HX Series(V2.x) Operation Manual for MC / TC / CUT / QT CSCAM HX - Operation Manual MC / TC / CUT / QT HX Series(V2.x) Operation Manual for MC / TC / CUT / QT CSCAM HX - Operation Manual MC / TC / CUT / QT 1. MDI I/O 1.1 MDI unit 1.2 (SOFT KEY) 1.3 (RESET KEY) 1.4

More information

untitled

untitled if( ) ; if( sales > 2000 ) bonus = 200; if( score >= 60 ) printf(".\n"); if( height >= 130 && age >= 10 ) printf(".\n"); if ( temperature < 0 ) printf(".\n"); // printf(" %.\n \n", temperature); // if(

More information

고급 프로그래밍 설계

고급 프로그래밍 설계 UNIT 13 라즈베리파이블루투스 광운대학교로봇 SW 교육원 최상훈 Bluetooth Module 2 Bluetooth Slave UART Board UART 인터페이스용블루투스모듈 slave/device mode 라즈베리파이 GPIO 3 < 라즈베리파이 B+ 의 P1 헤더핀 GPIO 배치도 > wiringpi 라이브러리 4 라즈베리파이 GPIO 라이브러리

More information

인터럽트 (Interrupt) 범용입출력포트에서입출력의내용을처리하기위해매번입출력을요구하는플래그를검사하는일 (Pollong) 에대하여마이크로컨트롤러에게는상당한시간을소비하게만든다. 인터럽트란 CPU가현재처리하고있는일보다급하게처리해야할사건이발생했을때, 현재수행중인일을중단하고

인터럽트 (Interrupt) 범용입출력포트에서입출력의내용을처리하기위해매번입출력을요구하는플래그를검사하는일 (Pollong) 에대하여마이크로컨트롤러에게는상당한시간을소비하게만든다. 인터럽트란 CPU가현재처리하고있는일보다급하게처리해야할사건이발생했을때, 현재수행중인일을중단하고 CHAPTER 7 인터럽트 가. 레지스터구조이해하기 나. 엔코더제어하기 인터럽트 (Interrupt) 범용입출력포트에서입출력의내용을처리하기위해매번입출력을요구하는플래그를검사하는일 (Pollong) 에대하여마이크로컨트롤러에게는상당한시간을소비하게만든다. 인터럽트란 CPU가현재처리하고있는일보다급하게처리해야할사건이발생했을때, 현재수행중인일을중단하고급한일을처리한후에본래의일을다시수행하는것을말한다.

More information

Microsoft PowerPoint - 9.Serial.pptx

Microsoft PowerPoint - 9.Serial.pptx 8051 Serial 통신 Mode 0 : 동기통신 Mode 123 1,2,3 : 비동기통신 dolicom@naver.com http://blog.naver.com/dolicom /d li 통신시동시에보내는데이터비트수 패럴럴통신 (Parallel) 두지점간데이터시데이터연결수가많다. 8비트를많이사용 LPT(Printer), SCSI(HDD), ATAPI(HDD)

More information

Microsoft Word - FS_ZigBee_Manual_V1.3.docx

Microsoft Word - FS_ZigBee_Manual_V1.3.docx FirmSYS Zigbee etworks Kit User Manual FS-ZK500 Rev. 2008/05 Page 1 of 26 Version 1.3 목 차 1. 제품구성... 3 2. 개요... 4 3. 네트워크 설명... 5 4. 호스트/노드 설명... 6 네트워크 구성... 6 5. 모바일 태그 설명... 8 6. 프로토콜 설명... 9 프로토콜 목록...

More information

À̵¿·Îº¿ÀÇ ÀÎÅͳݱâ¹Ý ¿ø°ÝÁ¦¾î½Ã ½Ã°£Áö¿¬¿¡_.hwp

À̵¿·Îº¿ÀÇ ÀÎÅͳݱâ¹Ý ¿ø°ÝÁ¦¾î½Ã ½Ã°£Áö¿¬¿¡_.hwp l Y ( X g, Y g ) r v L v v R L θ X ( X c, Yc) W (a) (b) DC 12V 9A Battery 전원부 DC-DC Converter +12V, -12V DC-DC Converter 5V DC-AC Inverter AC 220V DC-DC Converter 3.3V Motor Driver 80196kc,PWM Main

More information

1

1 - - - Data Sheet Copyright2002, SystemBase Co, Ltd - 1 - A0 A1 A2 CS0#, CS1# CS2#, CS3# CTS0#, CTS1# CTS2, CTS3# D7~D3, D2~D0 DCD0#, DCD1# DCD2#, DCD3# DSR0#, DSR1# DSR2#, DSR3# DTR0#, DTR1# DTR2#, DTR3#

More information

Microsoft PowerPoint - 08-MP-4-interrupt

Microsoft PowerPoint - 08-MP-4-interrupt 순천향대학교컴퓨터학부이상정 1 학습내용 인터럽트기본 ATmega128 인터럽트벡터외부인터럽트인터페이스외부인터럽트프로그램예 순천향대학교컴퓨터학부이상정 2 인터럽트기본 순천향대학교컴퓨터학부이상정 3 인터럽트개념 CPU 내부또는외부의요구에의해서정상적인프로그램의실행순서를변경하여보다시급한작업 ( 인터럽트서비스루틴 ) 을먼저수행한후에다시원래의프로그램으로복귀하는것 인터럽트는주변장치의서비스요청에

More information

Microsoft PowerPoint - 08-MP-8-ADC

Microsoft PowerPoint - 08-MP-8-ADC 8. A/D 변환기 순천향대학교 컴퓨터학부 이 상 정 학습 내용 ATmega28 ADC ADC 개요 ADC 레지스터 ADC 프로그램 온도센서 프로그램 순천향대학교 컴퓨터학부 이 상 정 2 ATmega28 ADC 순천향대학교 컴퓨터학부 이 상 정 3 A/D 변환기 개요 물리적인 현상(전압, 전류,온도,속도,조도,습도,압력,속,,습,압력 )들은 아날로그 값이므로

More information

<4D F736F F D20C0DBC7B0C6ED5FBDBAC5D7C7CE20B6F3C0CEC6AEB7B9C0CCBCAD20B0B3B9DF2E646F63>

<4D F736F F D20C0DBC7B0C6ED5FBDBAC5D7C7CE20B6F3C0CEC6AEB7B9C0CCBCAD20B0B3B9DF2E646F63> 테핑라인트레이서개발하기 류대우 (davidryu@newtc.co.kr) 1. 센서보드 적외선센서 1. 적외선센서 (Photo Sensor) 라인트레이서나마이크로마우혹은다른마이크로로봇에서센서로사용하는것중가장많이사용하는것이 photo sensor입니다. 거리의측정에도사용되지만원거리는잘사용하지않고근거리를측정하고자할때사용되기도하며물체의유 / 무등많은곳에서사용되고있습니다.

More information

슬라이드 1

슬라이드 1 AVR(Atmega128) Interrupt 1 Interrupt Polling 사용자가명령어를사용하여입력핀의값을계속읽어서변화를알아냄 모든경우의입력또는값의변화에대응하여처리가가능 Interrupt MCU 자체가하드웨어적으로그변화를체크하여변화시에만일정한동작 하드웨어적으로지원되는몇개의입력또는값의변화에만대응처리가가능 처리속도는일반적인경우인터럽트가빠름 인터럽트발생시

More information

R50_51_kor_ch1

R50_51_kor_ch1 S/N : 1234567890123 Boot Device Priority NumLock [Off] Enable Keypad [By NumLock] Summary screen [Disabled] Boor-time Diagnostic Screen [Disabled] PXE OPROM [Only with F12]

More information

BC6HP Korean.ai

BC6HP Korean.ai 제품설명서 BC6HP Microprocessor controlled highperformance rapid charger/discharger with integrated balancer, 250watts of charging power USB PC link and Firmware upgrade, Temperature sensor Charge current up

More information

슬라이드 1

슬라이드 1 / 유닉스시스템개요 / 파일 / 프로세스 01 File Descriptor file file descriptor file type unix 에서의파일은단지바이트들의나열임 operating system 은파일에어떤포맷도부과하지않음 파일의내용은바이트단위로주소를줄수있음 file descriptor 는 0 이나양수임 file 은 open 이나 creat 로 file

More information

<4D F736F F F696E74202D2037C0E55FC0CCC0C0C7F55FBFCFBCBA205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D2037C0E55FC0CCC0C0C7F55FBFCFBCBA205BC8A3C8AF20B8F0B5E55D> 7 장. 인터럽트의동작 한국산업기술대학교 이응혁 ehlee@kpu.ac.kr WWW.ROBOTICSLAB.CO.KR 1 7.1 인터럽트 (Interrupt) 개요 인터럽트개념 프로그램이수행되고있는동안에어떤조건이발생하여수행중인프로그램을일시적으로중지시키게만드는조건이나사건의발생 비동기적으로처리 다른프로그램이수행되는동안여러개의사건을처리할수있는메커니즘 인터럽트가발생하면마이크로컨트롤러는현재수행중인프로그램을일시중단하고,

More information

2009년2학기 임베디드시스템 응용

2009년2학기 임베디드시스템 응용 임베디드시스템기초 (#514115 ) #5. Timer A 한림대학교전자공학과이선우 MSP430x4xx 타이머종류 MSP430x4xx series 는다음과같은 3 종의타이머내장 Basic Timer1 Two independent, cascadable 8-bit timers Selectable clock source Interrupt capability LCD

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 7-Segment Device Control - Device driver Jo, Heeseung HBE-SM5-S4210 의 M3 Module 에는 6 자리를가지는 7-Segment 모듈이아래그림처럼실장 6 Digit 7-Segment 2 6-Digit 7-Segment LED controller 16비트로구성된 2개의레지스터에의해제어 SEG_Sel_Reg(Segment

More information

untitled

untitled while do-while for break continue while( ) ; #include 0 i int main(void) int meter; int i = 0; while(i < 3) meter = i * 1609; printf("%d %d \n", i, meter); i++; return 0; i i< 3 () 0 (1)

More information

(SW3704) Gingerbread Source Build & Working Guide

(SW3704) Gingerbread Source Build & Working Guide (Mango-M32F4) Test Guide http://www.mangoboard.com/ http://cafe.naver.com/embeddedcrazyboys Crazy Embedded Laboratory www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 1 Document History

More information

목차 006/ 008/ 009/ 011/ 012/ 013/ 014/ Part 1_ 컴퓨터가 제대로 작동하지 않을 때 문제00_ 윈도우7 복구(초기화) 방법 안내 문제01_ 컴퓨터의 전원 버튼을 눌러도 아무 반응이 없어요. 문제02_ 전원을 누르면 팬(쿨러)이 돌아가는

목차 006/ 008/ 009/ 011/ 012/ 013/ 014/ Part 1_ 컴퓨터가 제대로 작동하지 않을 때 문제00_ 윈도우7 복구(초기화) 방법 안내 문제01_ 컴퓨터의 전원 버튼을 눌러도 아무 반응이 없어요. 문제02_ 전원을 누르면 팬(쿨러)이 돌아가는 컴퓨터 유지관리 Q&A www.npoit.kr 이 www.fb.com/npoitcenter 책은 컴퓨터를 사용하며 자주 발생하는 문제에 대한 설명 npoit@npoit.kr 및 해결 방법을 담고 있습니다. 컴퓨터를 070-4241-8883 관리할 때 필요한 기초 상식들도 함께 있습니다. 목차 006/ 008/ 009/ 011/ 012/ 013/ 014/ Part

More information

SRC PLUS 제어기 MANUAL

SRC PLUS 제어기 MANUAL ,,,, DE FIN E I N T R E A L L O C E N D SU B E N D S U B M O TIO

More information

슬라이드 1

슬라이드 1 핚국산업기술대학교 제 14 강 GUI (III) 이대현교수 학습안내 학습목표 CEGUI 라이브러리를이용하여, 게임메뉴 UI 를구현해본다. 학습내용 CEGUI 레이아웃의로딩및렌더링. OIS 와 CEGUI 의연결. CEGUI 위젯과이벤트의연동. UI 구현 : 하드코딩방식 C++ 코드를이용하여, 코드내에서직접위젯들을생성및설정 CEGUI::PushButton* resumebutton

More information

슬라이드 제목 없음

슬라이드 제목 없음 ETOS-DPS-X Guide AC&T SYSTEM 1 ETOS-DPS-X 개요 ETOS-DPS-X Field Bus Network 중 Profibus-DP Network 에연결되는장비. ProfiBus-DP Network 시스템에 DP 통신을지원하지않는현장장비에대한통신서버기능구현. Profibus-DP Slave 동작하기때문에반드시 DP-Master 모듈이있는시스템에서적용가능.

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 A 반 T2 - 김우빈 (201011321) 임국현 (201011358) 박대규 (201011329) Robot Vacuum Cleaner 1 Motor Sensor RVC Control Cleaner Robot Vaccum Cleaner 2 / Event Format/ Type Front Sensor RVC 앞의장애물의유무를감지한다. True / False,

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 KeyPad Device Control - Device driver Jo, Heeseung HBE-SM5-S4210 에는 16 개의 Tack Switch 를사용하여 4 행 4 열의 Keypad 가장착 4x4 Keypad 2 KeyPad 를제어하기위하여 FPGA 내부에 KeyPad controller 가구현 KeyPad controller 16bit 로구성된

More information

Microsoft Word - JAVS_UDT-1_상세_메뉴얼.doc

Microsoft Word - JAVS_UDT-1_상세_메뉴얼.doc UDT-1 TRANSPORTER 한글 상세 제품 설명서 SoundPrime. 저작권 본 저작권은 Soundprime 이 소유하고 있습니다. Soundprime 의 허가 없이 정보 검색 시스템상에서 복사, 수정, 전달, 번역, 저장을 금지하며, 컴퓨터언어나 다른 어떠한 언어로도 수정될 수 없습니다. 또한 다른 형식이나 전기적, 기계적, 자기적, 광학적, 화학적,

More information

Microsoft PowerPoint - 제5장 인터럽트 (HBE-MCU-Multi AVR).ppt [호환 모드]

Microsoft PowerPoint - 제5장 인터럽트 (HBE-MCU-Multi AVR).ppt [호환 모드] Chapter. 5 인터럽트 HBE-MCU-Multi AVR Jaeheung, Lee 목차 1. 폴링과인터럽트그리고인터럽트서비스루틴 2. ATMega128 인터럽트 3. 인터럽트로 LED 점멸시키기 4. 인터럽트로스톱워치만들기 인터럽트 1. 폴링과인터럽트그리고인터럽트서비스루틴 2. ATMega128 인터럽트 3. 인터럽트로 LED 점멸시키기 4. 인터럽트로스톱워치만들기

More information

2009년2학기 임베디드시스템 응용

2009년2학기 임베디드시스템 응용 마이크로컨트롤러기초 (#514112 ) #.7 Basic Timer1 기초 핚림대학교젂자공학과이선우 Contents Digital Counter Basics MSP430x4xx Timers Overview Basic Timer 1 Example program Digital Counter & Timer Counter Basics Digital counter (

More information

untitled

untitled Huvitz Digital Microscope HDS-5800 Dimensions unit : mm Huvitz Digital Microscope HDS-5800 HDS-MC HDS-SS50 HDS-TS50 SUPERIORITY Smart Optical Solutions for You! Huvitz Digital Microscope HDS-5800 Contents

More information

USB3-FRM13 API 매뉴얼

USB3-FRM13 API 매뉴얼 USB3-FRM13 API Programming (Rev 1.2) Windows, Windows2000, Windows NT and Windows XP are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations mentioned

More information

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202831C1D6C2F72C2032C1D6C2F729>

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202831C1D6C2F72C2032C1D6C2F729> 2주차 ATmega128의내부구조및퓨즈비트설정 Next-Generation Networks Lab. 4. ATmega128의클럭시스템과배분 시스템클럭 마이크로컨트롤러동작의기준이되는클럭의주파수 AVR은시스템클럭을내부모듈별로독립적으로배분하여제어 슬립 (Sleep) 모드를활용하여내부모듈별로클럭차단이가능하여전력소모관리 퓨즈비트를통해다양한클럭소스선택가능 클럭배분 (

More information

UI TASK & KEY EVENT

UI TASK & KEY EVENT 2007. 2. 5 PLATFORM TEAM 정용학 차례 CONTAINER & WIDGET SPECIAL WIDGET 질의응답및토의 2 Container LCD에보여지는화면한개 1개이상의 Widget을가짐 3 Container 초기화과정 ui_init UMP_F_CONTAINERMGR_Initialize UMP_H_CONTAINERMGR_Initialize

More information

EM300_Manual.indd

EM300_Manual.indd 보증서 재중 (WITH WARRANTY CARD) EM30020100702 준 비(안전을 위한 주의사항) 안전을 위한 주의사항 샤프 전자사전을 구입해 주셔서 대단히 감사합니다. 안전하게 기기를 사용하기 위해 안전을 위한 주의사항을 반드시 읽어 주십시오. TFT 컬러LCD에 관하여 TFT 컬러 LCD는 매우 정밀한 기술로 만들어졌습니다. 화면에서 밝거나 어두운

More information

Nordic Chipset BLE Test Application Note

Nordic Chipset BLE Test Application Note Nordic Chipset BLE Test Application Note 20151218 차례 차례........................................................................... ii 1. Nordic nrf52 Series 제품테스트방법...............................................

More information

歯DCS.PDF

歯DCS.PDF DCS 1 DCS - DCS Hardware Software System Software & Application 1) - DCS System All-Mighty, Module, ( 5 Mbps ) Data Hardware : System Console : MMI(Man-Machine Interface), DCS Controller :, (Transmitter

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 7-Segment Device Control - Device driver Jo, Heeseung HBE-SM5-S4210 의 M3 Module 에는 6 자리를가지는 7-Segment 모듈이아래그림처럼실장 6 Digit 7-Segment 2 6-Digit 7-Segment LED Controller 16비트로구성된 2개의레지스터에의해제어 SEG_Sel_Reg(Segment

More information

API 매뉴얼

API 매뉴얼 PCI-DIO12 API Programming (Rev 1.0) Windows, Windows2000, Windows NT and Windows XP are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations mentioned

More information

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate ALTIBASE HDB 6.1.1.5.6 Patch Notes 목차 BUG-39240 offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG-41443 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate 한뒤, hash partition

More information

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

Microsoft PowerPoint - chap13-입출력라이브러리.pptx #include int main(void) int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; 1 학습목표 스트림의 기본 개념을 알아보고,

More information

,,,,,, (41) ( e f f e c t ), ( c u r r e n t ) ( p o t e n t i a l difference),, ( r e s i s t a n c e ) 2,,,,,,,, (41), (42) (42) ( 41) (Ohm s law),

,,,,,, (41) ( e f f e c t ), ( c u r r e n t ) ( p o t e n t i a l difference),, ( r e s i s t a n c e ) 2,,,,,,,, (41), (42) (42) ( 41) (Ohm s law), 1, 2, 3, 4, 5, 6 7 8 PSpice EWB,, ,,,,,, (41) ( e f f e c t ), ( c u r r e n t ) ( p o t e n t i a l difference),, ( r e s i s t a n c e ) 2,,,,,,,, (41), (42) (42) ( 41) (Ohm s law), ( ),,,, (43) 94 (44)

More information

전자실습교육 프로그램

전자실습교육 프로그램 제 5 장 신호의 검출 측정하고자 하는 신호원에서 발생하는 신호를 검출(detect)하는 것은 물리측정의 시작이자 가장 중요한 일이라고 할 수가 있습니다. 그 이유로는 신호의 검출여부가 측정의 성패와 동의어가 될 정도로 밀접한 관계가 있기 때문입니다. 물론 신호를 검출한 경우라도 제대로 검출을 해야만 바른 측정을 할 수가 있습니다. 여기서 신호의 검출을 제대로

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 7-SEGMENT DEVICE CONTROL - DEVICE DRIVER Jo, Heeseung 디바이스드라이버구현 : 7-SEGMENT HBE-SM5-S4210 의 M3 Module 에는 6 자리를가지는 7-Segment 모듈이아래그림처럼실장 6 Digit 7-Segment 2 디바이스드라이버구현 : 7-SEGMENT 6-Digit 7-Segment LED

More information

키트전자 KE-RC-B 코드비젼

키트전자  KE-RC-B 코드비젼 -------------------------------------------------------- 키트전자 www.i8051.co.kr KE-RC-B01 2013.08-13 코드비젼 -------------------------------------------------------- 1. LED 점등 --------------------------------------------------------

More information

Microsoft PowerPoint - AVR 시리얼 통신.ppt [호환 모드]

Microsoft PowerPoint - AVR 시리얼 통신.ppt [호환 모드] AVR UART 통신 류대우 davidryu@newtc.co.kr 시리얼 (Serial) 통신이란? Serial 통신은하나의신호선을이용해서데이터를비트단위로보내는방식 8 비트비동기식통신콘트롤러 (UART : Universal Asynchronous Receiver Transmitter) 데이터는 LSB 부터 MSB 순으로데이터전송 Serial interface

More information

Siemens

Siemens SIEMENS () 2004 7 Updated 2004 DEC 09 1. 4 1.1 4 1.2 4 2. 5 2.1 5 2.2 6 2.3 6 2.4 7 3. 8 3.1 50/60 Hz DIP 8 4. 9 4.1 420 9 4.2 420 9 4.3 (CB) 10 5. / () 11 5.1 11 5.2 : P0003 12 6. 13 6.1 13 6.2 15 6.2.1

More information