智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 3253|回复: 4
打印 上一主题 下一主题

[软件类] 用野火的程序得到us的PIT中断

[复制链接]

6

主题

74

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
458
威望
246
贡献
122
兑换币
144
注册时间
2013-9-12
在线时间
45 小时
跳转到指定楼层
1#
发表于 2014-2-17 21:04:34 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
因为超声波测障碍用到的时间都是us级的,而野火里的PIT中断都是ms级的,所以我自己在底层加了一点东西来得到us的中断,但不知道是不是对的,求大神指导,希望指出哪里错了


/**************************为了得到us的PIT定时中断,加了一下东西**************************/
/**sysinit.c****/
加了:u32 bus_clk_mhz;
         bus_clk_mhz=bus_clk_khz/1000;   //不知道这里有没有什么问题bus_clk_khz是整型的,不知道可不可以直接除1000

/*****sysinit.h**/
加了:extern u32 bus_clk_mhz;


/****PIT.h****/
加了:#define     pit_init_us(PITn,us)          pit_init(PITn,us * bus_clk_mhz);         //初始化PITn,并设置定时时间(单位为 us)

回复

使用道具 举报

6

主题

74

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
458
威望
246
贡献
122
兑换币
144
注册时间
2013-9-12
在线时间
45 小时
5#
 楼主| 发表于 2014-2-18 12:02:55 | 只看该作者
飞思迷 发表于 2014-2-17 23:58
新版代码有us级中断的

可以给个新代码么,我不知道哪里找
邮箱534130404@qq.com
回复 支持 反对

使用道具 举报

1

主题

117

帖子

0

精华

高级会员

Rank: 4

积分
899
威望
409
贡献
220
兑换币
277
注册时间
2012-11-23
在线时间
135 小时
毕业学校
gd
4#
发表于 2014-2-17 23:58:46 | 只看该作者
这些警告信息,可以不管它
回复 支持 反对

使用道具 举报

1

主题

117

帖子

0

精华

高级会员

Rank: 4

积分
899
威望
409
贡献
220
兑换币
277
注册时间
2012-11-23
在线时间
135 小时
毕业学校
gd
3#
发表于 2014-2-17 23:58:00 | 只看该作者
新版代码有us级中断的
回复 支持 反对

使用道具 举报

6

主题

74

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
458
威望
246
贡献
122
兑换币
144
注册时间
2013-9-12
在线时间
45 小时
2#
 楼主| 发表于 2014-2-17 21:32:07 | 只看该作者
编译时出了以下问题
Warning[Pa084]: pointless integer comparison, the result is always true F:\可以跑得程序\2.16 - 超声波\src\drivers\mcg\mcg.c 121
Warning[Pa084]: pointless integer comparison, the result is always true F:\可以跑得程序\2.16 - 超声波\src\drivers\mcg\mcg.c 122
Warning[Pa084]: pointless integer comparison, the result is always true F:\可以跑得程序\2.16 - 超声波\src\drivers\mcg\mcg.c 136
Warning[Pa084]: pointless integer comparison, the result is always true F:\可以跑得程序\2.16 - 超声波\src\drivers\mcg\mcg.c 137


  /* 这里提示警告,但是安全的,是为了安全才故意添加进去 */
        if     (opt <= 1 * MAX_BUS_CLK)   mcg_div.bus_div = 0;    // bus  = MCG
        else if(opt <= 2 * MAX_BUS_CLK)   mcg_div.bus_div = 1;    // bus  = MCG/2
这一行有问题       else if(opt <= 3 * MAX_BUS_CLK)   mcg_div.bus_div = 2;    // bus  = MCG/3
这一行有问题      else if(opt <= 4 * MAX_BUS_CLK)   mcg_div.bus_div = 3;    // bus  = MCG/4    这里提示警告,不过没关系

/* 这里提示警告,但是安全的,是为了安全才故意添加进去 */
        if     (opt <= 1 * MAX_FLASH_CLK)   mcg_div.flash_div = 0; // flash  = MCG
        else if(opt <= 2 * MAX_FLASH_CLK)   mcg_div.flash_div = 1; // flash  = MCG/2
        else if(opt <= 3 * MAX_FLASH_CLK)   mcg_div.flash_div = 2; // flash  = MCG/3
        else if(opt <= 4 * MAX_FLASH_CLK)   mcg_div.flash_div = 3; // flash  = MCG/4
        else if(opt <= 5 * MAX_FLASH_CLK)   mcg_div.flash_div = 4; // flash  = MCG/5
        else if(opt <= 6 * MAX_FLASH_CLK)   mcg_div.flash_div = 5; // flash  = MCG/6
        else if(opt <= 7 * MAX_FLASH_CLK)   mcg_div.flash_div = 6; // flash  = MCG/7
        else if(opt <= 8 * MAX_FLASH_CLK)   mcg_div.flash_div = 7; // flash  = MCG/8
这一行有问题        else if(opt <= 9 * MAX_FLASH_CLK)   mcg_div.flash_div = 8; // flash  = MCG/9     
这一行有问题        else if(opt <= 10 * MAX_FLASH_CLK)  mcg_div.flash_div = 9; // flash  = MCG/10
        else                              mcg_div.flash_div = 15; // flash  = MCG/16
回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|亿加合和智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-4-27 04:27 , Processed in 0.061320 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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