智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 6319|回复: 6
打印 上一主题 下一主题

使用定时器的输出比较产生定时中断代码

[复制链接]

489

主题

1691

帖子

1

精华

管理员

网站创始人&站长

Rank: 11Rank: 11Rank: 11Rank: 11

积分
85927

特殊贡献奖章资源大师奖章论坛骨干奖章推广达人奖章优秀版主奖章热心会员奖章论坛元老奖章在线王奖章活跃会员奖章优秀会员奖章

QQ
威望
56985
贡献
17372
兑换币
13142
注册时间
2007-6-8
在线时间
5785 小时
跳转到指定楼层
1#
发表于 2008-3-13 05:37:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
<><FONT color=#2b6fd5 size=3></FONT>&nbsp;</P><P><FONT color=#2b6fd5 size=3>#include &lt;hidef.h&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* common defines and macros */<BR>#include &lt;mc9s12dg128.h&gt;&nbsp;&nbsp;&nbsp;&nbsp; /* derivative information */<BR>#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"</FONT></P><P><FONT color=#2b6fd5 size=3></FONT>&nbsp;</P><P><FONT color=#2b6fd5 size=3>void main(void) {<BR>&nbsp; <BR>&nbsp; <BR>&nbsp;DDRB=0XFF;//PORTB设定为输出<BR>&nbsp;PORTB=0XFF;//PORTB初始化为全高<BR>&nbsp; </FONT></P><P><FONT color=#2b6fd5 size=3>&nbsp;TSCR1=0x90;//定时器使能且TFLG1能被自动清除</FONT></P><P><FONT color=#2b6fd5 size=3>&nbsp;</FONT><FONT color=#2b6fd5 size=3>TSCR2=0x07;//定时器预分频系数设定&nbsp; Prescale Factor=128<BR>&nbsp;TIE=0x01;//定时器通道0使能<BR>&nbsp;TIOS_IOS0=1;//定时器通道0设定为输出比较</FONT></P><P><FONT color=#2b6fd5 size=3>&nbsp; EnableInterrupts;//开中断</FONT></P><P><FONT color=#2b6fd5 size=3>&nbsp; for(;;) {} /* wait forever */<BR>&nbsp; /* please make sure that you never leave this function */<BR>}</FONT></P><P><FONT color=#2b6fd5 size=3></FONT>&nbsp;</P><P><BR><FONT color=#2b6fd5 size=3>/*<BR>*************************************************************************** <BR>*语法格式:interrupt void Timer(void)<BR>*实现功能ORTB小灯的闪烁<BR>*程序描述:<BR>**************************************************************************/<BR>void interrupt 8 Timer(void) //8为定时器通道0的中断标号<BR>{<BR>&nbsp;DisableInterrupts;&nbsp;&nbsp;//关中断 <BR>&nbsp;TC0=TCNT+19360;//F = Fosc / (TC*128) 中断频率设定<BR>&nbsp;PORTB++;//PORTB自增<BR>}&nbsp;&nbsp;<BR></FONT></P><P><FONT color=#2b6fd5 size=3>&nbsp;</P></FONT>

0

主题

16

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
211
QQ
威望
189
贡献
22
兑换币
0
注册时间
2008-1-9
在线时间
0 小时
2#
发表于 2008-3-13 06:06:14 | 只看该作者

Re:使用定时器的输出比较产生定时中断代码

<><FONT color=#2b6fd5 size=3>void interrupt 8 Timer0(void)</FONT></P><P><FONT color=#2b6fd5 size=3>我的程序里直接加这个编译不通过,为什么?在哪里还要设置什么吗?</FONT></P>
回复 支持 反对

使用道具 举报

489

主题

1691

帖子

1

精华

管理员

网站创始人&站长

Rank: 11Rank: 11Rank: 11Rank: 11

积分
85927

特殊贡献奖章资源大师奖章论坛骨干奖章推广达人奖章优秀版主奖章热心会员奖章论坛元老奖章在线王奖章活跃会员奖章优秀会员奖章

QQ
威望
56985
贡献
17372
兑换币
13142
注册时间
2007-6-8
在线时间
5785 小时
3#
 楼主| 发表于 2008-3-13 06:09:06 | 只看该作者

Re:使用定时器的输出比较产生定时中断代码

没有问题&nbsp; 不用加别的&nbsp; 可以通过
回复 支持 反对

使用道具 举报

0

主题

17

帖子

0

精华

禁止发言

积分
-1029
QQ
威望
-1063
贡献
28
兑换币
6
注册时间
2008-3-23
在线时间
3 小时
4#
发表于 2008-4-5 18:26:39 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

0

主题

38

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
459
威望
333
贡献
100
兑换币
78
注册时间
2008-4-21
在线时间
13 小时
5#
发表于 2008-4-22 00:55:44 | 只看该作者

Re:使用定时器的输出比较产生定时中断代码

谢谢楼主,帮我解决了这个几天都没弄好的问题!!!非常感谢!!!!<IMG src="http://www.intelligentcar.cn/images/Emotions/13.gif">
回复 支持 反对

使用道具 举报

0

主题

11

帖子

0

精华

中级会员

Rank: 3Rank: 3

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

Re:使用定时器的输出比较产生定时中断代码

<>中断程序前缺少以下语句</P><P><FONT face=宋体 color=#e6421a size=7>#pragma CODE_SEG NON_BANKED</FONT></P>
回复 支持 反对

使用道具 举报

21

主题

1019

帖子

0

精华

常驻嘉宾

我爱雯婕

Rank: 8Rank: 8

积分
4657
威望
2223
贡献
1682
兑换币
4
注册时间
2009-3-4
在线时间
376 小时
7#
发表于 2009-4-20 18:28:33 | 只看该作者
void interrupt 8 Timer(void) //8为定时器通道0的中断标号
{
DisableInterrupts;  //关中断
TC0=TCNT+19360;//F = Fosc / (TC*128) 中断频率设定
ORTB++;//PORTB自增
}  

1.“F = Fosc / (TC*128) 中断频率设定”中的Fosc是什么意思?2.中断频率是指每个一段时间它就中断,然后跳到中断函数那里执行是么?3.为什么是TC0=TCNT+19360,19360是怎么算出来的?
望高手解答
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-26 02:01 , Processed in 0.072111 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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