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

[내장형]심재원_2011년09월08일

by 알 수 없는 사용자 2011. 9. 8.
728x90
반응형
수만이 형!! ARM 쪽에 제가 적은거 틀린거 있나 검증 좀 해 주세요. ^_^

1. ARM
●1초 = 1000ms
●1ms = 1000us
●소리는 1초당 340m를 간다.(이는 수업시간에 들은 것이나 검증된 사실은 아니다.) 다음은 소리가 1cm 가는데 걸리는 시간을 이를 이용하여 구하여 본 것이다.

●분주비를 128로 수정한다.카운터는 23으로 설정한다. 0부터 23까지 세알려지면 그 시간이 초음파가 1cm 전진하는데 걸린 시간,  즉 29.4us 이다. 다음의 소스는 설정을 하는 해당함수와 그 부분만을 나타낸 것이다.

void TimerInit(void)
{
  TC0_CMR = (1 << CPCTRG) | (3 << TCCLKS); //MCK/128
  TC0_RC=23
}
●위의 TimerInit()함수는 main()함수에서 불러다 쓰면 항상 일정한 분주비에, 카운터값과 함수를 호출하

게 된다. TimerInit()함수에 인자를 넣어 주고 그 인자들을 이용하여 레지스터들을 세팅을 한다면 main()

함수에서 얼마든지 다양한 분주비, 카운터 값과 카운터 기준점까지 다 세알리고 호출하는 함수를 결정할수

가 있게 된다. 소스 작성은 다음과 같이 한다.

인자들을 차례대로 설명한다. 'uiRat'는 디파인 되어진 'TCCLKS'만큼 왼쪽으로 쉬프트 되어서 분주비를 결정짓는 비트의 값이다. 
'uiRc'는 카운터의 기준점 이다. 'handler'는 카운터를 기준점까지 다 세알린뒤 실행될 함수의 주소를 가진다. 
1000분의 1초 마다 while문의 비교문에 쓰이는 변수의 값을 1씩 증가 시켜 1초 동안 딜레이를 주는 방법을 위에 그 함수가 존재하
는 파일명을 주석처리하여 표시하고, 아래에 함수를 적었다.

  ●초음파 센서를 사용할 것이므로, 'ultra.h'파일을 만들고 디파인들을 한다. 디파인은 초음파 센서 핀이 무슨 기능을
 하는지 보고 해야 한다.

'SRF05'의 5V Supply를 ARM의 VCC5에 연결한다. 'Echo Output'과 'Trigger Input'을 ARM의 각각의 핀에 연결
한다. 여기서 SRF05의 'Trigger Input'은 입력이므로, 대응되어 연결되어지는 ARM의 핀은 출력이어야 한다. SRF05의
'Echo Output'은 초음파가 벽에 맞고 반사되어 돌아온 것을 ARM칩에 알려 주는 것이다.


2. win32 api
●색상값을 표현하기 위한 데이터 형은 'COLORREF' 이다.
●'COLORREF'는 다음과 같이 디파인 되어 있다.
typedef  DWORD  COLORREF;
●'COLORREF'는 부호없는 32비트 정수형이다. 상위 8비트는 사용되지 않고, 최하위 부터 8비트씩 빨간색, 초록색, 파란색을 나타내는데 사용된다. 각각 0~255 까지의 값을 가질수 있으며 이 값들의 조합으로 다양한 색들을 표현해 낸다.


728x90