关于定时器问题 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4046|回复: 1
打印 上一主题 下一主题

关于定时器问题

[复制链接]

32

主题

54

帖子

1263

积分

金牌会员

Rank: 6Rank: 6

积分
1263
跳转到指定楼层
楼主
发表于 2016-11-15 15:17:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
您好:
# k) X6 x4 @; T" S       omapl138光盘demo中的ad7606_dsp程序函数void ad7606_start(ad7606 *ad, unsigned int rate) 做了如下修改,即用TIMER2取代clock, 但是却产生不了 ad7606_on_ticked中断。为什么?6 q, c* u1 u0 I2 h

, E+ p9 S/ E( w$ `/ q9 X5 F
) |  i5 v* A  x6 L$ S& V. f# f
: @6 x6 |/ T/ @; T5 `8 o+ D
: a7 |1 l+ m' F- N. I) e# V, L9 w' L8 B/ e- W5 X8 o) h
void ad7606_start(ad7606 *ad, unsigned int rate) {
* }+ W8 m4 H* A& h//    ASSERT(ad);8 |- Q0 y2 w  E6 A- E: z  X$ {
//    if (rate > 1000000 / TICK_PERIOD) {
9 m, q4 }6 F0 S' ^0 O//        LOG_WARN("unstatisfied sample rate, set as max %d", 1000000 / TICK_PERIOD);
: N7 p* g* n' A0 n8 J9 ^//        rate = 1000000 / TICK_PERIOD;' U  y* d2 x" V" u$ d/ x9 D( O& `
//    }
0 `# U# E. ^- j//$ `0 Y3 B3 Q3 [5 k# b
//) R5 T" \4 p) z% [: f
//    int period = 1000000 / TICK_PERIOD / rate;
7 d: X; p! i; s6 [( p& I: T//7 j' |- L# n9 ?5 o$ {+ M2 ^0 A
//    if (! ad->is_running) {$ L( M; H0 V+ i
//        Error_Block eb;
- b0 A; d$ z2 o$ x//        Error_init(&eb);( l5 \/ Y3 |1 N; u
//, a1 v$ R, h  c
//        Clock_Params params;
# M, T4 I) Q) s4 ^' Q0 O1 x% @//        Clock_Params_init(&params);
7 C- @7 H$ A5 c; I# _3 A//        params.period = period;9 h0 }0 I5 g! N1 o
//        params.arg = (unsigned int)ad;
) a6 }: ]* K, H7 a4 ^- L1 y0 W' f//        params.startFlag = TRUE;. B3 n1 y6 ?, `+ I# j! L+ a( t
//        ad->clock = Clock_create(ad7606_on_ticked, period, &params, &eb);# P) s& D  X( L4 u' h
//        if (ad->clock == NULL)- O4 S: B' ]: I1 W
//            LOG_FATAL("failed to create clock");/ k! ^1 U, S% s
//# W' N) @- s* I) S+ }6 x5 [( t4 E$ ?+ D
//        Clock_start(ad->clock);; V0 `8 F8 k/ Q( b- Y
//    }( J1 ^( O* x! O2 v6 k* k7 R9 r$ c
//    else {
7 _/ M7 s- ~' G  B+ u: y) G//        Clock_stop(ad->clock);
/ v) q$ S! q2 m$ c4 d//        Clock_setPeriod(ad->clock, period);
% h) \8 S* d$ b' Y* W: T% t//        Clock_start(ad->clock);' z( J, ~" H* \4 P1 g& ]
//    }
8 A! M7 X9 g% Q8 g$ N0 R
; h) W* S/ b" h; g2 ~( E) I         // 创建定时器
, e- g" n$ V4 J9 Y, N4 x8 _: F+ }            Timer_Params timerParams;) c1 F  j: a6 k
            Error_Block eb;
0 Y4 U- }: W% F- d' d
& R  w; s$ U+ x  p/ Y$ q            // 初始化错误块
) ?& A5 M8 }5 O2 z, m# r9 ^2 q            Error_init(&eb);
; U" s! f8 I( p" p* o8 ]& [            // 初始化参数
! \8 p' l2 `, i, [( S; ~& d) q            Timer_Params_init(&timerParams);5 f. w& S' S, {3 c0 [! y# n3 Q
0 f0 z( N' {, p' g
            // 配置周期
% m* e+ q3 h. T% d; u+ w% i  q            timerParams.period = Period;% }+ d( t% W4 I( `& F
            timerParams.periodType = Timer_PeriodType_MICROSECS;7 X7 k! j' p. x2 D2 Z

+ ~0 j2 F+ P5 i            // 实例化定时器
9 d9 M: X* X9 m* r            Timer2 = Timer_create(2, ad7606_on_ticked, &timerParams, &eb);8 B7 G# H' b; O# B1 Y% w: S: e
            if(Timer2 == NULL)
- I" }' U! c8 n            {
$ e6 y" M0 A3 q, A- v; `                    LOG_INFO("Timer2  not start。。。。");' {4 r# u# Q* Z8 [) v4 O
            }
5 J* o5 i1 ^! ]& j. G" A
' K9 I: q/ X9 k% n( I8 b$ I( S            Timer_start(Timer2);! ?+ B. X1 F& a) f7 f

, J7 v, b0 o, J3 h/ L5 y& x            LOG_INFO("Timer2 start。。。。");
: M% ?/ P7 ^+ E3 B5 E% x/ h6 C2 e$ g* g
    ad->is_running = true;
( h& q/ P7 n! m/ y- E+ f2 g}
- x$ J1 g) @; X0 I4 M' B9 `) k& B9 v
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

3

主题

852

帖子

3538

积分

创龙

Rank: 8Rank: 8

积分
3538
沙发
发表于 2016-11-16 20:13:46 | 只看该作者
您调试看了是卡在什么地方?是不是进中断的条件没满足?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

点击跳转“创龙科技服务通”

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2026-3-17 09:50 , Processed in 0.039452 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表