智能车制作

 找回密码
 注册

扫一扫,访问微社区

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

想用汇编语言实现定时器的标志位清零,请会汇编的指点下!

[复制链接]

27

主题

194

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2049
威望
1155
贡献
600
兑换币
333
注册时间
2012-3-14
在线时间
147 小时
跳转到指定楼层
1#
发表于 2012-12-14 21:32:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
因为看了http://www.znczz.com/forum.php?m ... p;extra=#pid665196l这贴子(我在用K60的定时器,也出现问题了),不知道在k60里面如何实现asm(MOVB #$01,PITTF);这条语句,已经纠结很长时间了,请懂汇编的帮我看看。
k60的PIT0的标志位寄存器为:PIT_TFLG0  TIF是最低位。

53

主题

2469

帖子

0

精华

跨届大侠

狙击手

Rank: 10Rank: 10Rank: 10

积分
11290

优秀会员奖章活跃会员奖章论坛元老奖章在线王奖章论坛骨干奖章资源大师奖章

威望
4701
贡献
3671
兑换币
2368
注册时间
2012-3-12
在线时间
1459 小时
2#
发表于 2012-12-14 21:38:51 | 只看该作者
回复 支持 反对

使用道具 举报

27

主题

615

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3822

优秀会员奖章活跃会员奖章在线王奖章

威望
1583
贡献
697
兑换币
394
注册时间
2011-11-25
在线时间
771 小时
3#
发表于 2012-12-14 22:09:31 | 只看该作者
K60没这个必要吧,和你那个帖子是不同的单片机,对着TIF位写1就行,你也可以考虑利用位带(BIT_BAND)操作
回复 支持 反对

使用道具 举报

59

主题

1029

帖子

0

精华

版主

有什么需帮助的?

Rank: 9Rank: 9Rank: 9

积分
15163

热心会员奖章论坛元老奖章优秀会员奖章在线王奖章

威望
11088
贡献
1415
兑换币
1728
注册时间
2011-12-18
在线时间
1330 小时
4#
发表于 2012-12-14 22:41:01 | 只看该作者
PIT例程以及驱动函数在拉普兰德K60底层库中写得很清楚,用汇编反而更麻烦。
http://www.znczz.com/thread-112632-1-1.html
回复 支持 反对

使用道具 举报

27

主题

194

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2049
威望
1155
贡献
600
兑换币
333
注册时间
2012-3-14
在线时间
147 小时
5#
 楼主| 发表于 2012-12-15 09:46:01 | 只看该作者
我写的两个定时器代码是这样的://都初始化都为1ms时两个中断是难以进去又难以出来,pit0 为0.5ms,pit1为1ms时正常,但我在corepit1里再添加些代码后又不行了。我用IAR仿真后,发现中断标志位清零后,立刻又为1了,我试了进入中断就关闭中断,执行完代码后再打开中断,也不行;当我只用一个定时器时,发现没有问题,所以是两个定时器共同导致了这样一个结果。这个问题是根源在哪里呢??
pit_init_ms(PIT0, 1);    //1ms
pit_init_ms(PIT1, 1);   //1ms

void PIT0_IRQHandler(void)  //执行时间200us
{
    PIT_Flag_Clear(PIT0);       //清中断标志位
    corepit0();
}
void PIT1_IRQHandler(void) //执行时间100us
{
     PIT_Flag_Clear(PIT1);       //清中断标志位
     corepit1();      
}
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-6 00:30 , Processed in 0.052703 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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