
도와주세요!!
글 수 15,339
2005.08.12 22:57:22 (*.244.144.181)
6909
kelp에서 스탭 모터와 관련된 예제 소스를 구했는데요..소스 해석하다가 궁금한것이 있어서 질문드립니다.
일단 소스의 일부를 보시면
#define TEN_USEC_CLK 36.864
#define TIMER_TICK_100uSEC 10
:
:
void MOTOR_TimerReload( unsigned long tick )
{
if ( 0 == tick ) {
SATIMER_OFF;
} else {
SATIMER_ON;
OSMR1 = OSCR + TEN_USEC_CLK*tick;
}
}
:
:
MOTER_TimerReload(TIMER_TICK_100uSEC);
이렇게 함수가 정의 되어 있습니다..
그런데 OSMR1과 OSCR에 대해서 궁금합니다. pxa-regs.h 헤더파일을 보면
OSCR은 OS Timer Counter Register 로 나와 있고 OSMR1에 대해서는 설명이 안되어 있습니다.
이 두개의 레지스터의 용도를 이해하지 못하고 있습니다. 아시는 분 계시면 설명 부탁 드립니다.
그리고 MOTER_TimerReload(TIMER_TICK_100uSEC)를 계산해보면 OSMR1 = OSCR + 36.864*10
의미하는데 OSMR1에 대입되는 값이 레지스터에 어떻게 설정되는지도 궁금합니다..
일단 소스의 일부를 보시면
#define TEN_USEC_CLK 36.864
#define TIMER_TICK_100uSEC 10
:
:
void MOTOR_TimerReload( unsigned long tick )
{
if ( 0 == tick ) {
SATIMER_OFF;
} else {
SATIMER_ON;
OSMR1 = OSCR + TEN_USEC_CLK*tick;
}
}
:
:
MOTER_TimerReload(TIMER_TICK_100uSEC);
이렇게 함수가 정의 되어 있습니다..
그런데 OSMR1과 OSCR에 대해서 궁금합니다. pxa-regs.h 헤더파일을 보면
OSCR은 OS Timer Counter Register 로 나와 있고 OSMR1에 대해서는 설명이 안되어 있습니다.
이 두개의 레지스터의 용도를 이해하지 못하고 있습니다. 아시는 분 계시면 설명 부탁 드립니다.
그리고 MOTER_TimerReload(TIMER_TICK_100uSEC)를 계산해보면 OSMR1 = OSCR + 36.864*10
의미하는데 OSMR1에 대입되는 값이 레지스터에 어떻게 설정되는지도 궁금합니다..