본문 바로가기
코스웨어/11년 내장형하드웨어

[내장형]이영진_2011년 9월 22일 일일보고서

by 알 수 없는 사용자 2011. 9. 22.
728x90
반응형
PWM

<PWM 톱니파>


톱니파 주기를 구하는 공식



톱니파를 구형파로 나타내보면 아래그림과 같다 

<톱니파 -> 구형파>



기준선(CDTY)를 조절하면 펄스 폭을 조절 할 수있다.


<PWM 삼각파>



삼각파 주기 구하는 공식


아래는 삼각파를 구형파로 나타낸 그림이다.

<삼각파 -> 구형파>



이제 PWM 설정순서를 살펴보자. 

<PWM_INIT>

void PWM3_INIT()
{
  //전원 공급
  PMC_PCER=1<<PWMC;
  //풀업저항 OFF
  PIO_PUDR = 1<<PWM3;
  //Peripheral B 선택
  PIO_BSR = PWM3;
  //I/O_PIN OFF
  PIO_PDR = 1<<PWM3;

  //MODE 레지스터
  PWM_MR = (3<<PREA) |(30<<DIVA) | (3<<PREB) |(30<<DIVB);
 
  return;
}



<PWM 레지스터>


사용 할 레지스터를 찾아 디파인 해준다.

<PWM Mode Register>




주파수를 200KHZ로 설정해보자.

분주비는 MCK/8을 선택하고 DIVA | DIVB에 30을 주면

=> 48,000,000HZ / 8 / 30  =  200,000HZ => 200KHZ이다.

<AT91SAM7S256의 PIO에 의한 외부핀>


표에서 PWM을 찾아 사용할 핀 번호를 선택한다.

스태틱

스태틱 컨트롤은 사용자로부터 입력을 받아들이는 기능은 없고 오로지 문자열을 보여주는 것이 기능의 전부이다. 주 역할은 에디트나 다른 컨트롤 옆에 위치하면서 컨트롤의 용도를 설명하는 역할을 한다. 버튼은 표면에 제목을 붙일 수 있지만 리스트 박스나 스크롤 바 등의 컨트롤은 그 자체에 제목을 붙일만한 곳이 없으므로 스태틱 컨트롤을 제목 표시용으로 사용한다. 

<예제>

LRESULT OnCreate(HWND hWnd, WPARAM wParam, LPARAM lParam)
{
  CreateWindow(TEXT("static"), TEXT("Only Text"), WS_CHILD | WS_VISIBLE,
     202010025, hWnd, (HMENU)-1, g_hInst, NULL);
  return 0;
}



OnCreate에서 스태틱 컨트롤을 만들기만 할 뿐 그 외에 코드는 작성할 필요가 없다.

스태틱 컨트롤은 실행중에 부모 윈도우로 통지 메시지를 보낼 필요가 없기 때문에 ID를 -1로 지정하며 여러개의 스태틱 컨트롤이 있을 경우 모두 -1의 같은 ID를 사용해도 상관없다.
ID-1은 ID를 주지 않는다는 뜻이며 더 이상 이 컨트롤을 프로그래밍할 필요가 없을 때 사용한다. 


<출력>
 



 
728x90