智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 3626|回复: 5
打印 上一主题 下一主题

跪求一定时中断程序

[复制链接]

0

主题

13

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
209
威望
187
贡献
22
兑换币
0
注册时间
2007-9-23
在线时间
0 小时
跳转到指定楼层
1#
发表于 2008-5-26 07:09:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
<>我写了几个定时中断程序,但都不能实现功能,希望那位大虾能帮忙写个0.5s的定时中断程序参考一下,谢谢!</P>

0

主题

11

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
259
QQ
威望
211
贡献
42
兑换币
18
注册时间
2008-3-3
在线时间
3 小时
2#
发表于 2008-5-27 18:05:03 | 只看该作者

Re:跪求一定时中断程序

<>用主定时器,好像用定时器的通道不行!</P><P>跳不出中断程序,主定时器就可以。以下是定时启动,定时停止,和测速程序段。</P><P>unsigned int main_cnt=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //主定时器延时0.6s</P><P>/***********主定时器中断服务程序(实现0.6s的延时,测速)********/<BR>#pragma CODE_SEG NON_BANKED<BR>void interrupt&nbsp; int_timeroverflow(void){<BR>&nbsp; if(main_cnt%100==0)<BR>&nbsp; {<BR>&nbsp;&nbsp;&nbsp; //main_cnt=0;<BR>&nbsp;&nbsp;&nbsp; //speed_data0=speed_data1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //保存最近两次速度值(原来有问题)<BR>&nbsp;&nbsp;&nbsp; //speed_data1=speed_cnt;<BR>&nbsp;&nbsp;&nbsp; speed_data0=speed_cnt;<BR>&nbsp;&nbsp;&nbsp; speed_cnt=0;<BR>&nbsp;&nbsp;&nbsp; PORTB=0x00;<BR>&nbsp;&nbsp; }<BR>&nbsp;&nbsp; <BR>&nbsp;if(main_cnt==610)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //610*65535=8M*5 实现5秒定时<BR>&nbsp;{<BR>&nbsp; speed(45);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //速度太慢不能行走<BR>&nbsp; PWMDTY01=motor_middle;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //给通道0,1设置duty值(舵机正中)<BR>&nbsp; go=1; <BR>&nbsp;}<BR>&nbsp;if(main_cnt==6100)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //610*65535=8M*50 实现50秒定时<BR>&nbsp;{<BR>&nbsp; speed(0);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //速度太慢不能行走<BR>&nbsp; PWMDTY01=motor_middle;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //给通道0,1设置duty值(舵机正中)<BR>&nbsp; go=0; <BR>&nbsp;}<BR>&nbsp; main_cnt++;<BR>&nbsp; TFLG2_TOF&nbsp; = 1;&nbsp; //clear timer overflow flag<BR>} </P><P>/**********通道5捕捉中断(测速)*******************************/<BR>#pragma CODE_SEG NON_BANKED<BR>interrupt void timerinput5(void){<BR>&nbsp; speed_cnt++;<BR>&nbsp; TFLG1_C5F=1; <BR>}<BR>/************************************************************/</P><P>&nbsp;</P><P>&nbsp;</P>
回复 支持 反对

使用道具 举报

0

主题

13

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
209
威望
187
贡献
22
兑换币
0
注册时间
2007-9-23
在线时间
0 小时
3#
 楼主| 发表于 2008-5-27 18:29:16 | 只看该作者

Re:跪求一定时中断程序

<>哦,谢谢!</P><P>还有一个问题,</P><P>为啥用ECT里面的递减计数溢出中断不行呢?</P>
回复 支持 反对

使用道具 举报

0

主题

16

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
235
威望
213
贡献
22
兑换币
0
注册时间
2008-7-29
在线时间
0 小时
4#
发表于 2008-8-20 16:52:48 | 只看该作者

Re:跪求一定时中断程序

肯定是你的设置没有弄好,继续修改。好多寄存器的设置是想冲突或者相关的。祝你成功。
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
280
威望
222
贡献
44
兑换币
22
注册时间
2010-1-9
在线时间
7 小时
5#
发表于 2010-1-9 14:42:28 | 只看该作者
3围绕
回复 支持 反对

使用道具 举报

9

主题

199

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
8268

论坛元老奖章

QQ
威望
529
贡献
7627
兑换币
0
注册时间
2010-1-10
在线时间
56 小时
6#
发表于 2010-3-19 20:45:24 | 只看该作者
等待中
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-27 17:52 , Processed in 0.049782 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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