嵌入式开发者社区

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

作者: vtinf    时间: 2016-8-9 13:37
标题: omapl138 ecap问题
您好, tl-notify-ecap-test.zip 中   void ECAPIsr(void* param)程序中:  value = value / 156; 其中156是怎么确定的?
9 U/ A; \$ Z, n8 S6 f( ~& I8 m8 ?6 z( O/ X8 `
  o1 @( Q1 }' M; P- a
void ECAPIsr(void* param)
( D/ {) Y+ @* N{
0 z+ x$ l+ S6 d7 f    unsigned int intFlag;( Z0 z4 A0 |# ]) t3 k& j1 B' x; H8 n, @  w
    int valueUpdated = 0;: N4 g1 F+ j: D

* [; N9 u) V* E$ R    intFlag = ECAPIntStatus(SOC_ECAP_REGS, ECAP_CNTOVF_INT! N% d3 [6 R$ C5 n0 X: b. a
                                         | ECAP_CEVT1_INT
9 l' Q7 B6 Z, S7 ]$ N; Q                                         | ECAP_CEVT2_INT* L+ M9 e& J1 h/ T# w' z: J
                                         | ECAP_CEVT3_INT
* @! }: I7 s& q5 M2 v! a                                         | ECAP_CEVT4_INT);
$ c# d( K$ g! }. Q. c- I4 K$ v" P* Q6 y
    ECAPIntStatusClear(SOC_ECAP_REGS, intFlag);
; @/ K4 c4 |8 t' J    //IntEventClear(SYS_INT_ECAP_CHANNEL);
  {: A) N. K7 O  n4 e7 b" G7 T4 E/ C& Q8 D% T+ B
    if(intFlag & ECAP_CEVT1_INT)8 G9 Y( i9 U7 `; \: Z+ C' A. m2 b
    {5 x3 ?' l* C: m
//        value = ECAPTimeStampRead(SOC_ECAP_REGS, ECAP_CAPTURE_EVENT_1);9 t5 _4 Q2 a2 N/ C! ~( P
//        valueUpdated = 1;6 I/ e$ Z) G8 o7 a
    }
/ Y; w7 Q& B. q/ A: v    if(intFlag & ECAP_CEVT2_INT)- v" k+ s1 \: |- P* N9 e4 \
    {0 Z7 f3 E  h. t- U$ y2 `! X
        value = ECAPTimeStampRead(SOC_ECAP_REGS, ECAP_CAPTURE_EVENT_2);
" G3 f6 p, X% f+ y        valueUpdated = 1;
" f1 r7 j3 ]. [; X    }- M, m6 T0 m# R
    if(intFlag & ECAP_CEVT3_INT)$ z  g4 |: t! I% i& d& [
    {
6 P3 Z$ v, C0 Z% U3 h4 k6 \' ~$ c5 M: O//        value = ECAPTimeStampRead(SOC_ECAP_REGS, ECAP_CAPTURE_EVENT_3);
1 d3 X) ^. L. f4 U7 B  V//        valueUpdated = 1;
( ^: Q) u. t- [    }
2 @  b, N0 @' M1 F3 a2 z    if(intFlag & ECAP_CEVT4_INT)0 O. a/ W  ?- ]
    {" I5 L' `$ d1 Y* U: \
        value = ECAPTimeStampRead(SOC_ECAP_REGS, ECAP_CAPTURE_EVENT_4);; h  {* B; V$ M& c6 ^2 V
        valueUpdated = 1;
) {3 z6 k) m2 I/ F" K    }
( F7 q! `! x9 H    if(intFlag & ECAP_CNTOVF_INT)
3 g, }: Z6 L3 d0 h- V    {4 `& I: L$ m7 k1 q3 H, N& s' R3 `" K
        ECAPCounterConfig(SOC_ECAP_REGS, 0xffffffff - 228000000);
0 f6 f1 R* C1 [8 [    }
$ l8 }! N$ n( `* J( ?( K    ECAPIntStatusClear(SOC_ECAP_REGS, ECAP_GLOBAL_INT);( b% R+ I6 H) Y
. L; i% p) [2 D( x1 m# i$ g
    if (valueUpdated)  u; g# H* ~* w3 _6 n( G
        value = value / 156;* \# e* X! Y. q. B1 P, E+ _+ k
}
# n& v* b0 F# @) ^
作者: Jackindata    时间: 2016-8-12 09:50
hi,
( _8 f: ~4 Y3 {) c0 t6 K/ ?/ ^
2 I* l' [7 m' ]156 这个值和 PLL 配置有关。8 k- N+ I( s: A& C1 v1 a  v3 [

* E* v9 W+ I" E& ?/ |& A  `5 Y* ]" OPLL 配置为 312 MHz,312 / 2 = 156。) V& C! m5 f" i& ]1 y/ O

作者: 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: _$ R* E  H& S2 ^
Linux 内核里配置的
) m7 l2 T# V1 `- e- B$ M9 b; p( ^6 a
内核里哪个文件?




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