我在使用MC68HC908获取tcs3200感光传感器上的值,其需要用到输入捕获,但是我配置的捕获有问题,但是不知道问题在哪,配置如下
void TCS3200_Init(void)
{
DDRA |= 0x30; // PA4(S2)、PA5(S3)设为输出
PTA &= ~0x30; // 初始状态:红色滤波器
}
void InputCapture_Init(void)
{
// DDRA_DDRA1 = 0; // PA1设为输入
TSC_TSTOP=1; //关闭定时器
TSC_TRST=1; //reset T1,counter归0
TSC1 =0x44; //开启中断
TSC = 0x02;
}
interrupt void T1_OverFlow_ISR(void)
{
TSC_TOIE=0;
TSC_TOF=0;
count++;
TSC_TOIE=1;
}
void main(void)
{
EnableInterrupts;
TCS3200_Init();
InputCapture_Init();
while(1){
TCS3200_SetFilter(TCS_FILTER_RED);
Delay_ms(FILTER_DELAY); //10ms
g_rgb.r = Measure_Frequency();
TCS3200_SetFilter(TCS_FILTER_GREEN);
Delay_ms(FILTER_DELAY);
g_rgb.g = Measure_Frequency();
TCS3200_SetFilter(TCS_FILTER_BLUE);
Delay_ms(FILTER_DELAY);
g_rgb.b = Measure_Frequency();
}
}
|