1. (참고로 말씀드리면) void Disp_operation(void) 에서 if(icounter == 3)이 실행되었다고 해서 void Disp_suboperation(void) 에서 if(icounter == 3) 이 꼭 실행된다고 보장할수 없습니다. Disp_operation(void) 에서 icount==3이 되었지만.. Disp_suboperation(void) 에서 LED_timer >0 때문에 실행이 안될수도 있습니다. 이럴 경우에는 아래처럼 각각의 함수와 변수를 만들어야 사용해야 합니다.
함수1 DIGM = 0 DIGM = 1 DIGM = 2 FND 3개
함수2 DIGM = 3 LED 첫번째 그룹(LED 8개)
함수3 DIGM = 4 DIGM = 5 DIGM = 6 나머지 FND 3개
함수4 DIGM = 7 LED 두번째 그룹(LED 5개)로 회로적으로 맵핑되어 있다는 것입니다
void LED_oper(void) { // main에서 이 함수 호출. // 여기서는 다른 함수에서 뭘 하던 말던. 이 두 변수로만 일을 하게 됩니다. // g_byteLED12Blink = 1; // g_byteLEDNowStatus= 0; if(LED_timer>0) return; LED_timer =1000;
main(){ if(SwInput()==4)// LedDisp(12,2); { // 여기서는 LED_oper()에서 사용할 변수와 플래그만 셋팅해 줍니다. // 다른 함수가 출력을 하던 말던 여기서는 상관을 하지 않는거죠.... g_byteLED12Blink = 1; g_byteLEDNowStatus= 0; } } // 원하는 결과가 나온다면 고정된 bit12말고 변수를 적절히 사용하여 모든비트에 적용하면 될겁니다.
3. 만약 2번도 안된다면 다 주석처리하고 각각의 기능을 따로따로 해보고 합치는 방법이 있습니다. 정말로 다른 방법이 없고 단지 이 방법뿐이 없습니다.
회사 업무하면서 잠깐잠깐 보니 정신이 하나도 없네요.
1.
(참고로 말씀드리면)
void Disp_operation(void) 에서 if(icounter == 3)이 실행되었다고 해서
void Disp_suboperation(void) 에서 if(icounter == 3) 이 꼭 실행된다고 보장할수 없습니다.
Disp_operation(void) 에서 icount==3이 되었지만.. Disp_suboperation(void) 에서 LED_timer >0 때문에 실행이 안될수도 있습니다. 이럴 경우에는 아래처럼 각각의 함수와 변수를 만들어야 사용해야 합니다.
함수1
DIGM = 0
DIGM = 1
DIGM = 2 FND 3개
함수2
DIGM = 3 LED 첫번째 그룹(LED 8개)
함수3
DIGM = 4
DIGM = 5
DIGM = 6 나머지 FND 3개
함수4
DIGM = 7 LED 두번째 그룹(LED 5개)로 회로적으로 맵핑되어 있다는 것입니다
2.
(일단은) 12bit만 blink를 한다고 가정을 한다면.
void LedDisp(unsigned char Lnum, unsigned char Ldata) 함수까지 만들었으면 다 된거 같은데요.
BYTE g_byteLED12Blink;
BYTE g_byteLEDNowStatus;
void LED_oper(void) { // main에서 이 함수 호출.
// 여기서는 다른 함수에서 뭘 하던 말던. 이 두 변수로만 일을 하게 됩니다.
// g_byteLED12Blink = 1;
// g_byteLEDNowStatus= 0;
if(LED_timer>0) return;
LED_timer =1000;
if(1 == g_byteLED12Blink){
if(켜짐 == g_byteLEDNowStatus){
LedDisp(12, 0); off해라
g_byteLEDNowStatus = 꺼짐;
}else {
LedDisp(12,1); ON해라
g_byteLEDNowStatus = 켜짐;
}
}else{
// blink 가 아니라면.
LedDisp(12, xxxxx);// ON이던 OFF 이던...
}
}
main(){
if(SwInput()==4)// LedDisp(12,2);
{ // 여기서는 LED_oper()에서 사용할 변수와 플래그만 셋팅해 줍니다.
// 다른 함수가 출력을 하던 말던 여기서는 상관을 하지 않는거죠....
g_byteLED12Blink = 1;
g_byteLEDNowStatus= 0;
}
}
// 원하는 결과가 나온다면 고정된 bit12말고 변수를 적절히 사용하여 모든비트에 적용하면 될겁니다.
3. 만약 2번도 안된다면 다 주석처리하고 각각의 기능을 따로따로 해보고 합치는 방법이 있습니다.
정말로 다른 방법이 없고 단지 이 방법뿐이 없습니다.