注册 登录
查看: 817|回复: 8

[K60] 请问一个关于PIT中断的问题。

[复制链接]
发表于 2013-6-29 00:24:37 | 显示全部楼层 |阅读模式
PIT中断能不能设置成us级别的?
回复

使用道具 举报

 楼主| 发表于 2013-6-29 00:26:46 | 显示全部楼层
或者能不能用其他方法定时us级别的中断?
回复 支持 反对

使用道具 举报

发表于 2013-6-29 11:54:27 | 显示全部楼层
参禅、不说话 发表于 2013-6-29 00:26
或者能不能用其他方法定时us级别的中断?

这个是之前山外哥给的代码,在pit.h 头文件里加一下就好了
  1. void        pit_init(PITn, uint32 cnt);                                               //初始化PITn,并设置定时时间(单位为bus时钟周期)
  2. #define     pit_init_ms(PITn,ms)          pit_init(PITn,ms * bus_clk_khz);         //初始化PITn,并设置定时时间(单位为 ms)
  3. #define     pit_init_us(PITn,us)          pit_init(PITn,us * bus_clk_khz/1000);    //初始化PITn,并设置定时时间(单位为 us)
  4. #define     pit_init_ns(PITn,ns)          pit_init(PITn,ns * bus_clk_khz/1000000); //初始化PITn,并设置定时时间(单位为 ns)
注意一点的时,必须保证第二个形参大于0等于1
回复 支持 反对

使用道具 举报

发表于 2013-6-29 12:01:12 | 显示全部楼层
参禅、不说话 发表于 2013-6-29 00:26
或者能不能用其他方法定时us级别的中断?

例如:
  1. ns * bus_clk_khz/1000000 >= 1
  2. //如果 bus为50MHz,即 bus_clk_khz = 50000
  3. //那么:ns >= 20
  4. //换句话说
  5. pit_init_ns(PITn,ns);
  6. //必须保证 ns >= 20





回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-30 10:49:43 | 显示全部楼层
onlyfly 发表于 2013-6-29 11:54
这个是之前山外哥给的代码,在pit.h 头文件里加一下就好了
注意一点的时,必须保证第二个形参大于0等于1

谢谢,我知道怎么搞了,好巧妙的方法。
回复 支持 反对

使用道具 举报

发表于 2013-6-30 18:39:02 | 显示全部楼层
onlyfly 发表于 2013-6-29 11:54
这个是之前山外哥给的代码,在pit.h 头文件里加一下就好了
注意一点的时,必须保证第二个形参大于0等于1

漂亮~
回复 支持 反对

使用道具 举报

发表于 2013-7-15 21:15:33 | 显示全部楼层
巧妙的方法
回复 支持 反对

使用道具 举报

发表于 2014-5-1 14:59:43 | 显示全部楼层
onlyfly 发表于 2013-6-29 12:01
例如:

请问下如何确定  bus 的时钟呀   是不是在mcg里调整过,不是直接的外部50Mhz的晶振频率吧   求指导一下哈
回复 支持 反对

使用道具 举报

发表于 2014-5-1 16:28:35 | 显示全部楼层
LTREE 发表于 2014-5-1 14:59
请问下如何确定  bus 的时钟呀   是不是在mcg里调整过,不是直接的外部50Mhz的晶振频率吧   求指导一下哈

bus频率是从MCG里输出里产生的,不过不能直接测bus频率,可以测 flexbus频率啊,也是从mcg分频出来的
回复 支持 反对

使用道具 举报

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

本版积分规则

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