메뉴 바로가기

서브메뉴 바로가기

본문 바로가기

logo

묻고 답하기
WhiteAT2008.01.10 15:18
이제 어느정도 이해가 됩니다 ㅡㅡ;
회사 업무하면서 잠깐잠깐 보니 정신이 하나도 없네요.

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번도 안된다면 다 주석처리하고 각각의 기능을 따로따로 해보고 합치는 방법이 있습니다.
    정말로 다른 방법이 없고 단지 이 방법뿐이 없습니다.



사진 및 파일 첨부

여기에 파일을 끌어 놓거나 왼쪽의 버튼을 클릭하세요.

파일 용량 제한 : 0MB (허용 확장자 : *.*)

0개 첨부 됨 ( / )