智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 2234|回复: 1
打印 上一主题 下一主题

大家看看我这个PIT加PA脉冲累加器测速咋不管用呢?

[复制链接]

2

主题

39

帖子

0

精华

高级会员

Rank: 4

积分
532
威望
340
贡献
94
兑换币
6
注册时间
2012-3-3
在线时间
49 小时
毕业学校
西南石油大学
跳转到指定楼层
1#
发表于 2012-3-10 16:34:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
实现的功能是当脉冲累加器计数值大于1000以上就让八个二极管点亮,每个一段时间进入一次定时中断。我用的是500线的光,电编码器,接到S12XS芯片的PT7管脚上,我用手去转动编码器。但是二极管就是没有反应,测了哈,编码器输出确实是方波。烦劳哪位大侠帮我看看程序,不胜感激!
#include <hidef.h>      /* common defines and macros */
#include "derivative.h"      /* derivative-specific definitions */
#include <delay.h>//延时程序
#include <pit.h>//pit初始化,这个没有问题,我试过来的
#define uint unsigned int
uint k=0,M_PACNT;
void pac_init(void)
{
PACTL=0X40;//脉冲累加器使能,事件计数方式,下降沿触发
PACNT=0X00;
}


void main(void) {
  /* put your own code here */

        EnableInterrupts;
        pit_init();
        pac_init();
         for(;;) {
  DDRB=0XFF;
//  PORTB=k;
   if(M_PACNT>=1000) {
    PORTB=0X0F;
   M_PACNT=0;
   }
  }

}
#pragma CODE_SEG __NEAR_SEG NON_BANKED
interrupt VectorNumber_Vpit0 void PIT_ISR(void) {
PITTF=0X0F;//清除中断标志位
M_PACNT=PACNT;
PACNT=0;
}
#pragma CODE_SEG DEFAULT

2

主题

39

帖子

0

精华

高级会员

Rank: 4

积分
532
威望
340
贡献
94
兑换币
6
注册时间
2012-3-3
在线时间
49 小时
毕业学校
西南石油大学
2#
 楼主| 发表于 2012-3-11 09:40:18 | 只看该作者
先顶一下
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-26 04:26 , Processed in 0.048888 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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