如何使用"CRL0" & "CFL0"這兩個register讀取出的timer counter數值, 判斷是否為"start", logic "0" or logic "1" 是否是從"CFL0"每次讀取數值間的差值去做判斷??? 但是目前程式run出來的數值,感覺跟紅外線的protocal的時間間隔對不太起來 以下是由紅外線遙控器按Button ”1”所得到的訊息 : L=0us PWM Capture start H=22966us L=2118us H=65356us L=63848us H=44034us L=39550us 是否是從每個Falling edge擷取到的counter值去做判斷 ???
Clock source : 32 MHz if ((u32CapIntFlag & PWM_RISING_LATCH_INT_FLAG) && token == 0) { cap_rising_time = PWM_GET_CAPTURE_RISING_DATA(PWM0, 2); printf("L=%dus\n", cap_rising_time); cap_index++; // printf("Lindex=%d\n", cap_index); token = 1; }
if ((u32CapIntFlag & PWM_FALLING_LATCH_INT_FLAG) && token == 1) { cap_falling_time = PWM_GET_CAPTURE_FALLING_DATA(PWM0, 2); printf("H=%dus\n", cap_falling_time); cap_index++; // printf("Hindex=%d\n", cap_index); token = 0; }
|