智能车制作

 找回密码
 注册

扫一扫,访问微社区

12
返回列表 发新帖
楼主: wys398d
打印 上一主题 下一主题

[编程类] 增强型捕捉定时器中断问题

  [复制链接]

4

主题

89

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
381
QQ
威望
309
贡献
44
兑换币
0
注册时间
2010-3-11
在线时间
14 小时
11#
发表于 2010-4-3 11:04:30 | 只看该作者
学习    都很厉害啊
回复

使用道具 举报

0

主题

4

帖子

0

精华

注册会员

Rank: 2

积分
124
威望
174
贡献
20
兑换币
0
注册时间
2010-4-3
在线时间
0 小时
12#
发表于 2010-4-3 23:51:56 | 只看该作者
输出比较也能触发中断
回复

使用道具 举报

0

主题

49

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
284
QQ
威望
230
贡献
46
兑换币
4
注册时间
2010-4-6
在线时间
4 小时
13#
发表于 2010-4-8 00:19:49 | 只看该作者
都可以,但是在一个时刻,端口只能工作在输入捕捉或是输出比较模式下
回复

使用道具 举报

4

主题

207

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1993
QQ
威望
1255
贡献
688
兑换币
0
注册时间
2009-11-12
在线时间
25 小时
14#
发表于 2010-4-19 20:11:28 | 只看该作者
[调试类] 定时器中计数器计数问题
计数器, 定时器
main里面
for(;;)
{
   PORTB=0X00;
   if(count==300)
      {
         count=0;
         PORTB=0xfa;
         while(count<400);count=0;

       }
}
其中count为定时器0的中断函数中的计数变量每中断一次自加1,PB口已定义为输出
但是程序执行到while(count<400);count=0;这步就一直在中断里运行,PORTB口接出的小灯在显示0x00值之后只有显示的一直显示0xfa的值,请问为什么会这样?
while(count<400);count=0;这条语句不是当count大于400后退出吗?但是在if语句里面就不行了?
我知道是   if(count==300)这句语句中的count==300的原因,但是想不明白,各位大虾帮小弟解解惑吧!谢谢了!


收藏 分享  
让车子飞起来!
孙晨曦 开通了自己的个人主页
回复 引用 报告 使用道具

  

justing88 发短消息
加为好友
justing88 当前离线

UID11197 帖子66 精华0 积分304 阅读权限30 来自浙江 在线时间20 小时 注册时间2009-11-4 最后登录2010-4-19   
中级会员



帖子66 积分304 威望109  金钱4  贡献35  学校浙江理工大学 注册时间2009-11-4
2#
发表于 4 天前 22:26 | 只看该作者
你if 语句进入之后,count变为0,之后while()语句一直是成立的,成立了之后,一直在做分号,就做不下去了

your mind matters
回复 引用 报告 使用道具 TOP

  

时代还怪 发短消息
加为好友
时代还怪 当前离线

UID14074 帖子131 精华0 积分703 阅读权限50 在线时间28 小时 注册时间2010-1-11 最后登录2010-4-19   
高级会员



帖子131 积分703 威望208  金钱10  贡献89  学校广东海洋大学 注册时间2010-1-11
3#
发表于 3 天前 11:21 | 只看该作者
你if 语句进入之后,count变为0,之后while()语句一直是成立的,成立了之后,一直在做分号,就做不下去了
justing88 发表于 2010-4-15 22:26



    但是不是在中断里count一直在计数加1,当加到400后不是就退出while()了吗?但是就退不出去,想不明白这里!

让车子飞起来!
回复 引用 报告 使用道具 TOP

  

justing88 发短消息
加为好友
justing88 当前离线

UID11197 帖子66 精华0 积分304 阅读权限30 来自浙江 在线时间20 小时 注册时间2009-11-4 最后登录2010-4-19   
中级会员



帖子66 积分304 威望109  金钱4  贡献35  学校浙江理工大学 注册时间2009-11-4
4#
发表于 3 天前 14:12 | 只看该作者
回复 3# 时代还怪


    你永远也无法加到400的,因为当你加到300的时候,你就进入IF语句,然后执行count=0;把count变为0了,之后在中断里加,加到300后又重复相同的动作,所以while语句一直是成立的,因此就一直在做分号

your mind matters
回复 引用 报告 使用道具 TOP

  

huachou 发短消息
加为好友
huachou 当前离线

UID17406 帖子250 精华0 积分510 阅读权限50 在线时间11 小时 注册时间2010-3-19 最后登录2010-4-19   
高级会员



帖子250 积分510 威望250  金钱4  贡献48  学校重庆理工大学 注册时间2010-3-19
5#
发表于 昨天 19:35 | 只看该作者
楼上的说的对


回复 引用 报告 使用道具 TOP

  

锦芫 发短消息
加为好友
锦芫 当前在线

UID11523 帖子119 精华0 积分215 阅读权限30 来自哈尔滨 在线时间9 小时 注册时间2009-11-12 最后登录2010-4-19   
中级会员



帖子119 积分215 威望180  金钱4  贡献3  学校华北电力 注册时间2009-11-12
6#
发表于 5 分钟前 | 只看该作者
学习
回复

使用道具 举报

2

主题

8

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
327
威望
256
贡献
55
兑换币
14
注册时间
2010-8-4
在线时间
8 小时
15#
发表于 2010-8-6 16:56:23 | 只看该作者
回复 10# nigel1946


   ddddddddd
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-7 07:13 , Processed in 0.047269 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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