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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

关于定时器问题

[复制链接]

32

主题

54

帖子

1263

积分

金牌会员

Rank: 6Rank: 6

积分
1263
跳转到指定楼层
楼主
发表于 2016-11-15 15:17:04 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
您好:
4 [3 d' q' u5 C: P5 \# W: @4 I. V       omapl138光盘demo中的ad7606_dsp程序函数void ad7606_start(ad7606 *ad, unsigned int rate) 做了如下修改,即用TIMER2取代clock, 但是却产生不了 ad7606_on_ticked中断。为什么?
& L3 s# A1 x  d( D5 [
) W7 t( j7 o3 o% D$ s0 e% `# B3 z
. P9 J/ B$ r. g3 m$ o( p$ ~8 x+ |5 r5 o! c) n# C, `

6 z( ]# Y: [9 r; r$ T4 l7 P
* y$ o2 i. I5 Kvoid ad7606_start(ad7606 *ad, unsigned int rate) {6 _  d& W* R- Q7 {" G" W
//    ASSERT(ad);
3 d- w5 h, e/ N3 T6 R, R//    if (rate > 1000000 / TICK_PERIOD) {
0 n/ @" I! f: h//        LOG_WARN("unstatisfied sample rate, set as max %d", 1000000 / TICK_PERIOD);" D# ]$ Q  b& x
//        rate = 1000000 / TICK_PERIOD;+ a! X7 c$ k, `3 P) O+ _- I
//    }( C% o9 S; C' C4 ]' F
//% `& N( z: N& y
//
& Y  m) J7 }3 b0 p3 F# ^//    int period = 1000000 / TICK_PERIOD / rate;
. z7 `7 Y3 H4 e. N5 `2 q//
: x# a3 Y. N3 ^% S# c& L4 }0 C//    if (! ad->is_running) {
/ D0 i, R$ q& d4 {//        Error_Block eb;
2 [7 b' l5 G) e" h3 n9 x, F//        Error_init(&eb);# |! p" ]* r# `$ Z
//
+ v  n' C# F: |! ?9 m! x# @# ]//        Clock_Params params;" o* z0 A) _# [
//        Clock_Params_init(&params);; K8 j5 Z& q/ l% ^- n" L& R
//        params.period = period;
3 B: a0 u) y2 \) F+ \//        params.arg = (unsigned int)ad;
  l4 V3 W) N" ^$ a//        params.startFlag = TRUE;* \8 ?  Q; H0 k
//        ad->clock = Clock_create(ad7606_on_ticked, period, &params, &eb);' w8 a# e* d' C3 z" C
//        if (ad->clock == NULL)
9 t! c5 \/ P* a8 _6 z0 j  ?//            LOG_FATAL("failed to create clock");
( `& d( z! r' X//
$ g# J' f" X+ A( p+ L( J//        Clock_start(ad->clock);, P- @) w9 H" `7 P0 E
//    }
# J5 N, G- a9 [9 u+ a1 Y" U//    else {
+ J  P. I$ ?% |) U//        Clock_stop(ad->clock);& {* y+ K9 q- i% R
//        Clock_setPeriod(ad->clock, period);
# s8 [: x" c3 M! p$ ]//        Clock_start(ad->clock);
6 X1 }: U2 B6 q% X1 K//    }" u( m7 b' a4 Z# H
7 j' F7 B; _* D: z1 U" O
         // 创建定时器
7 |1 w8 _3 \: ^  M/ j& j$ _) c* h            Timer_Params timerParams;
4 X. ?: }3 s: w1 F- x+ X6 j8 ~$ {! G8 s            Error_Block eb;
7 c/ v5 a* o  T# W5 n9 j( u/ `
6 }. p4 o; n* i: M* R' q+ s' i            // 初始化错误块
% V5 m- y& e/ p8 k' o; q            Error_init(&eb);" m% F2 K4 h8 `% R! `* `' ~
            // 初始化参数
& n+ H& |& E5 r5 q# L            Timer_Params_init(&timerParams);
2 H: y$ ~& D2 Z: |1 m( `4 j/ C: p
7 C8 o* J( Z2 F$ w            // 配置周期
" U: p/ K- |8 ^; e( k# K2 O& q6 \/ O            timerParams.period = Period;
2 h6 O; V$ h8 c& d/ J0 T            timerParams.periodType = Timer_PeriodType_MICROSECS;
( {8 F' T: a& q
3 m/ G( U0 [7 N9 j            // 实例化定时器
% b8 K  {/ g- T. q            Timer2 = Timer_create(2, ad7606_on_ticked, &timerParams, &eb);
' a4 c# b' Q  n, {            if(Timer2 == NULL)
! `' V- j  L9 g! m! n# o5 \            {
6 W- X( ^9 S# H- l( {                    LOG_INFO("Timer2  not start。。。。");
) k$ U: l9 N3 _) |" O- B            }
7 J% b3 l7 m' _# I7 C, v
* x- f3 h2 T) i( U4 w" d            Timer_start(Timer2);! ?+ P* X3 J/ B" B" ?0 C8 f

+ h! s& m6 D6 [5 J  o            LOG_INFO("Timer2 start。。。。");9 G( U& B+ D" P, K

0 j* b0 v" @3 y  o8 P. c: Q4 C    ad->is_running = true;5 a, S2 S0 k% o# U
}. G6 g' h9 Y# o$ c" z6 L& m
; E! P4 q  h& }+ d) y' d
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

3

主题

852

帖子

3538

积分

创龙

Rank: 8Rank: 8

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

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-31 08:13 , Processed in 0.040684 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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