嵌入式开发者社区

标题: omapl138 ecap问题 [打印本页]

作者: vtinf    时间: 2016-8-9 13:37
标题: omapl138 ecap问题
您好, tl-notify-ecap-test.zip 中   void ECAPIsr(void* param)程序中:  value = value / 156; 其中156是怎么确定的?
: h6 T) Z2 c4 v' l! K
! e, H! U, ^3 f$ a1 k( c6 u( H. c1 ]
void ECAPIsr(void* param)5 t4 R; i% u9 Q+ ~; r+ b( X! i3 b3 v
{
* Q  H" L; V. y; u    unsigned int intFlag;
3 U, R% A. M8 z    int valueUpdated = 0;
5 u: h" C7 t5 c
" Z4 T7 D1 T9 n& T8 ^    intFlag = ECAPIntStatus(SOC_ECAP_REGS, ECAP_CNTOVF_INT
) [  h: u8 x2 x  Y                                         | ECAP_CEVT1_INT
7 u4 q8 p( X; G" Y* v: T" z3 x+ a% c+ c                                         | ECAP_CEVT2_INT( W& ]5 i" x( f, p' c5 M" w# w% B4 d
                                         | ECAP_CEVT3_INT
8 }+ P$ E4 M5 s6 F" l# N2 j                                         | ECAP_CEVT4_INT);
5 o& @& P! A3 Y- d/ X
2 t& o( b3 h! |    ECAPIntStatusClear(SOC_ECAP_REGS, intFlag);) s9 G: q* I" N0 f# ?! t
    //IntEventClear(SYS_INT_ECAP_CHANNEL);  T9 F( t, X% z
9 T2 {' i# ~: _, v7 J2 p" |7 [
    if(intFlag & ECAP_CEVT1_INT)3 ~, x' w2 z0 W0 W6 G
    {
7 d' Z8 n6 O! `6 l. {//        value = ECAPTimeStampRead(SOC_ECAP_REGS, ECAP_CAPTURE_EVENT_1);  {. B9 ~) l! x
//        valueUpdated = 1;
8 U  v, E/ v- m4 Y' {2 C- N7 w    }2 R/ f* v+ i9 q5 m
    if(intFlag & ECAP_CEVT2_INT)8 J3 p' t8 `+ k* x& C
    {1 Q4 w5 d; V* Q" s9 c
        value = ECAPTimeStampRead(SOC_ECAP_REGS, ECAP_CAPTURE_EVENT_2);6 g% x% _1 x& v" d+ P
        valueUpdated = 1;" }. n- V# i4 e6 k8 e
    }
4 A, b. z' K0 K" r    if(intFlag & ECAP_CEVT3_INT)5 }( R. _: Q# g
    {- c" a, C3 X  v& n% x
//        value = ECAPTimeStampRead(SOC_ECAP_REGS, ECAP_CAPTURE_EVENT_3);
2 G7 C% n  j1 W) b) X" s, q! w' o' s+ A//        valueUpdated = 1;' I+ X; G& t& V9 D7 t- S9 ?
    }
7 ^$ U& k# _! I( s7 b% F# g    if(intFlag & ECAP_CEVT4_INT)1 X- y0 c' {& ?+ Z
    {/ `  {9 k, f0 C/ O& T) {
        value = ECAPTimeStampRead(SOC_ECAP_REGS, ECAP_CAPTURE_EVENT_4);
8 }3 h; M! T! u) d) ?        valueUpdated = 1;1 d* v5 Q5 o- r! w
    }
% t' g& W4 _! i5 N" d* A3 ?5 T: {    if(intFlag & ECAP_CNTOVF_INT); e8 c2 ]3 X; n" ]5 c5 m9 I- {) j& Q! q4 z
    {
& P3 m( k  u, @6 u/ }0 H        ECAPCounterConfig(SOC_ECAP_REGS, 0xffffffff - 228000000);
3 O) v0 ?( W* Z% }; F. Y  j    }" U3 X0 r+ E+ Y' j
    ECAPIntStatusClear(SOC_ECAP_REGS, ECAP_GLOBAL_INT);
# y; Z% t* }9 [: W1 u
$ M. i  n- Y. }6 @/ S    if (valueUpdated)- R3 r0 o& u( Z+ ~. N
        value = value / 156;/ H4 S. B- K% ]) z% N+ g& F
}
( o/ j* }' Z5 m# t0 G% C7 U
作者: Jackindata    时间: 2016-8-12 09:50
hi,0 e& S& x5 T2 @( f6 n* G
5 E$ E; z& @7 _
156 这个值和 PLL 配置有关。; L1 G; o: a2 B: Y3 m# c% U
5 ^8 \8 {3 p  q" `0 J: ^. H
PLL 配置为 312 MHz,312 / 2 = 156。
6 j5 U1 ]5 V% X- f
作者: vtinf    时间: 2016-8-12 10:13
这是哪个头文件定义的?
作者: Lewis    时间: 2016-8-12 14:58
Linux 内核里配置的
作者: jinyi7016    时间: 2019-9-27 09:48
Lewis 发表于 2016-8-12 14:58
( L: Z7 l( F* A& Z0 QLinux 内核里配置的
  X0 Q: s+ j1 g: v
内核里哪个文件?




欢迎光临 嵌入式开发者社区 (https://www.51ele.net/) Powered by Discuz! X3.4