
#<함수형>**********************************
void _Pwm_생성_(unsigned char  p장치번호,
               unsigned char  p동작종류);
               
#<인수>
'p장치번호'
PWM 장치 번호(0 - 2 사이값).
'p동작종류'
해당 PWM 장치 동작종류(1 - 3).
1 : PWM 발생기로 동작(4개의 독립적인 PWM 생성).
2 : RC서보제어기로 동작(4개의 서보를 동시 제어).
3 : 멜로디발생기로 동작(1 개의 멜로디 발생).

#<반환값>

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

#<적용구분>

"맷돌 전용"

#<선언문서>

"_Pwm_생성_.h"

#<설명>

PWM 장치를 한개 생성합니다. 
맷돌(G.MTDL.A) 는 총 3개의 PWM 장치를 가지고 있으며 각각은 모두 독립적으로 생성/삭제 가능합니다.

PWM 장치는 각각 3 개의 동작종류(PWM 발생기/RC 서보 제어기/멜로디 발생기)중 하나로 설정가능합니다.
PWM 장치당 전부 개별적으로 동작되므로 각 PWM 장치를 한개는 <PWM 발생기> 로, 
다른 것은 <RC 서보 제어기> 로, 다른 것은 <멜로디 발생기> 로 동시에 운영 가능합니다.


["PWM 발생기"]
기본 PWM 장치 설정값으로 4개의 PWM 출력 채널을 지원하며 주기는 동일하나 듀티비는 전부 개별설정 가능합니다.
주기를 변경가능하고, 각 채널당 듀티비는 개별 설정가능합니다.
주기나 듀티비는 사용자가 세밀하게 조장할수 있습니다.


["RC 서보 제어기"]
총 4 개의 RC 서보를 완전히 독립적으로(각도/속도) 제어할수 있습니다.
이는 기계닉스의 G.M.RC.BASiC 의 강력하고 부드러운 기능을 맷돌에 내장한 것입니다.
각도는 0 - 255 도 까지 1도 단위로 정밀하게 제어할수 있으며 0도 위치와 180도위치의 영점조정으로
정밀 제어가 가능합니다. 
각 위치의 영점은 별도의 관련 API 로 각 서보당 개별적으로 간단하게 설정가능합니다.
속도는 등속, 가감속, 가속, 감속 4 종류를 지정 가능합니다.
가감속 제어를 위하여 <가감속 분할상수> 를 관련 API 로 설정할수 있습니다.
서보의 동작 속도는 완전히 개별적으로 지정가능하고, 속도자체를 늘리거나 줄일수 있는 속도제어기능을 제공합니다. 
따라서, 현존하는 모든 서보를 제어 가능합니다.
<완료보고> 기능을 내장하고 있으며, 완료보고위치를 <%비율> 로 0 - 100% 로 전용 API 로 지정가능합니다.
또한, 각 서보당 개별적으로 <완료보고이벤트> 의 사용 유/무를 지정 가능하므로 지정된 각도에 서보가 위치했는지
<이벤트> 로 간단하게 알수 있습니다. 또한, 개별적으로 각 서보의 완료상태를 직접 확인할수 있는 API 도 지원합니다.
개별적인 완료보고와 별도로 모든 서보가 동시에 움직이는 경우 사용할수 있도록 <전체완료보고> 기능도 지원합니다.
이는 동작중인 서보들이 모두 해당 위치에 도착한 경우 <전체완료보고이벤트> 를 발생시켜줍니다.
맷돌은 G.M.RC.BASiC 보다 보다 개선되고 발전된 RC 서보 제어를 수행 가능합니다.


["멜로디 발생기"]
PWM 장치당 1개의 멜로디를 생성가능합니다.
12 개의 음계(#포함)와 1 - 8 옥타브를 모두 지원합니다.
동일한 멜로디를 해당하는 4개의 채널에 동시에 출력하거나 4개중 한개의 채널에만 출력할수도 있습니다.
사용자는 단지 해당 API 를 사용하여 옥타브와 음계에 해당하는 상수값을 집어 넣기만 하면 자동으로 
해당 멜로디가 출력됩니다.
멜로디가 출력되는 채널에 스피커나 피에조부저 등을 연결하면 경쾌한 멜로디음을 들을수 있습니다.
이어폰에 연결해도 역시 소리를 들을수 있습니다.


위의 3개 기능은 PWM 장치당 개별적으로 지원되는 기능으로 가각의 PWM 장치는 이를 전부 개별적으로 
설정하여 동시에 모두 개별적인 기능으로 동작시킬수 있습니다.

PWM 장치는 생성뒤 바로 PWM 이 출력되지 않으며, PWM 출력은 해당 API 로 해당 채널을 연결하고 해당 채널의 핀에 
연결해 주어야 합니다(<API:_Pwm_채널_> 과 <API:_Pwm_핀_> 함수 사용).

#<예제>

  // ...
  
  //PWM장치 0번을 [PWM 발생기] 로 생성합니다.
  _Pwm_생성_(0, 1);
  
  //분주비 78 과 주기 20000 으로 설정합니다(RC 서보제어용 설정값).
  //이 경우 20ms 주기를 갖는 PWM 파형이 발생합니다.
  _Pwm_설정_(0, 78, 20000);
  
  //2번 채널을 열어줍니다.
  _Pwm_채널_(0, 2, 1);
  
  //2번 채널이 사용하는 핀을 열어줍니다.
  _Pwm_핀_(0, 2, 1);
 
  //1.5ms 정도의 듀티로 설정합니다(RC 서보 중립위치).
  _Pwm_비율_(0, 2, 1500);   
  
  // ...
  
  //PWM장치 0번을 삭제합니다.
  _Pwm_삭제_(0); 
  
  //2번 채널이 사용하는 핀을 닫아줍니다.
  _Pwm_핀_(0, 2, 0);
  
  // ...

