====== AN41007 - Tact(Push) 스위치를 이용한 출력on/off 유지 ====== Tact 스위치는 단순히 버튼을 누렸을 때만 high상태가 유지됩니다. 반복적으로 버튼을 눌렸다 땠을 때 출력 상태가 on/off 유지 되는 방법을 살펴보겠습니다.\\ {{ :cublocapp:an41008:스위치_타이밍도.png |}} 즉, 한번 눌렀을 때 on 두번 눌렀을 때 off 이런 식으로 반복적으로 상태를 읽는 방법입니다. TV 리모콘의 전원 스위치동작이라고 생각하시면 됩니다. \\ {{ :cublocapp:an41008:1.tack스위치_onoff유지영상.mp4?700x350 |}} \\ #include "moacon500.h" void cmain(void) { #include "moacon500.h" void cmain(void) { unsigned char now_sw, old_sw, sw_value=0; portInit(1,1); while(1) { portInit(1, 0); now_sw = portIn(0); if((now_sw == 1)&&(old_sw == 0)){ sw_value = !sw_value; } old_sw = now_sw; portOut(10, sw_value); } } 아래는 위프로그램의 결선도 입니다. {{ :cublocapp:an41008:결선도.png |}} [[cublocapp:index|한단계 뒤로]]