
#<함수형>****************************************************
void _Timer_동작_(unsigned char  *r타이머,
                 unsigned char   p동작유무);
               
#define  _Timer_OnOff_    _Timer_동작_

#<인수>
'r타이머'
타이머 [생성자](반드시 <unsigned char [6]> 의 배열로 선언해야함).
'p동작유무'
지정 타이머를 동작시키거나 동작중지시킵니다.
1 : 타이머 동작.
0 : 타이머 중지.

#<반환값>

#***********************************************************

#<적용구분>

"맷돌 전용"

#<선언문서>

"_Timer_동작_.h"

#<설명>

지정 타이머를 동작시키거나 동작중지시킵니다.

타이머동작을 중지시키는 경우는 더이상 해당 [타이머 이벤트] 가 발생하지 않게 됩니다.

#<예제>

// ...

//[내부정의]
//{
    #define  bool     unsigned char

    #define  true     1
    #define  false    0
    
//}

//[VAR]
//{
    //<알리문저장소> 를 제공합니다(크기는 사용자 조정가능).
    unsigned char  알림문저장소[256];
    
    //타이머0 생성자(이름은 사용자 마음대로).
    unsigned char  타이머0[6];
    
//} 

void event(void)
{
  //[이벤트] 발생시 여기서 처리합니다.

  //[VAR]
  //{
      unsigned char  알림문;
  
  //}
  
  //[<알림문> 한개 꺼내기]
  //{
      //<알림문저장소> 에서 가장 처음의 <알림문> 을 하나 꺼낸다.
      알림문 = _MsgQ_읽기_();        
  
  //}
  
  //<알림문> 에 따른 처리를 수행한다.
  switch(알림문)
  {
    case  d_EvtMsg_Timer0 :
    {
      //타이머0 발생이벤트는 여기서 직접처리하거나 처리 함수를 호출하여 처리합니다.
     
      // ...  
     
                   
    } break;
    
    //다른 [이벤트] 는 여기서 처리합니다.
    
  }  
  
}

void main(void) 
{
  //[<알림문저장소> 설정]
  //{
      //<알림문저장소> 공간을 사용자 정의 크기로 생성합니다(선언된 공간크기와 같은 크기로 지정).
      //저장소선언된크기와동일----v
      _MsgQ_생성_(알림문저장소, 256);
      
  //}
  
  //[타이머 설정]
  //{
      //타이머를 0번 타이머, 20ms 주기로 생성합니다. 
  
      //타이머0 를 생성합니다.
      //타이머 시간주기는 20ms--v
      //타이머 번호---------v
      _Timer_생성_(타이머0, 0, 2); 
      
      //다른 시간주기값을 설정하는 경우는 해당 API 로 다시 시간값을 설정가능합니다.
      //이 API 로 다시 주기를 다른 값으로 재설정 가능합니다.
      //주기를 1000ms(1초) 로 재설정 하는 경우. 
      _Timer_시간주기값_(타이머0, 100); 
      
      //타이머0 를 동작 시킵니다.
      _Timer_동작_(타이머0, true); 
     
  //}
  
  //[전체 이벤트 허용]
  //{    
      //전체이벤트를 허용합니다.
      _Event_전체_(true);
      
  //}    
  
  //여기서부터 타이머0 이벤트가 정해진 시간 주기로 발생하게 됩니다.
  
  
  //사용자 다른 처리.
  

}  

