智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1037|回复: 0
打印 上一主题 下一主题

128 ECT

[复制链接]

1

主题

17

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
216
威望
120
贡献
62
兑换币
78
注册时间
2013-9-5
在线时间
17 小时
跳转到指定楼层
1#
发表于 2013-11-5 16:21:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神帮忙看看


#include <hidef.h>      /* common defines and macros */
#include "derivative.h"      /* derivative-specific definitions */


#define uint unsigned int
#define uchar unsigned char

void delay(uint i)
{
   uint a,b;
   for(a= i;a>0;a--)
      for(b=900;b>0;b--);
}


void Init_B()
{
   DDRB = 0XFF;//方向为输出
   PORTB = 0Xff;//输出高电平
}

void Init_T()
{
   DDRT = 0X00;//方向输入
   PTT = 0Xff;//输入高电平
}

void Init_IC()
{

   TSCR2 = 0X07;//时钟   8/128mhz,且定时器溢出中断禁止
   TIOS = 0X00;//IC模式及通道选择 ---所有通道均用作输入捕捉

   TCTL3 = 0X00;//边沿选择 ---通道0下降沿捕捉,其他通道禁止
   TCTL4 = 0X02;



   //TSCR1_TFFCA = 1;//标志快速清除位(所有标志位)

    TFLG1 = 0XFF;//清除IC所有通道中断标志位
  //TFLG2 = 0X80;//定时器溢出标志清除
  TIE = 0X01;//通道中断打开----  通道0中断打开,其他关闭
    TSCR1_TEN = 1;//启动ECT模块                        
}


void main()
{

    DisableInterrupts;//关闭128总中断
    Init_B();
    Init_T();
    Init_IC();
    EnableInterrupts;
    for(;;)
    {
      PORTB = 0X00;
    delay(1800);

    }

}

#pragma CODE_SEG NON_BANKED
interrupt 8 void IC0(void)
{

  //
   // TFLG1_C0F = 1; //清除0通道标志?
   PORTB = 0XF0;
   PTT = 0XFF;

   delay(30);
   //EnableInterrupts;
}
#pragma CODE_SEG DEFAULT



/********************************************************************************************
for 循环中PORTB = 0X00;一执行就进入中断,与分频无关。T0管脚没有输入信号,也能进入中断。



*************************************************************************************************/  

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

本版积分规则

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

GMT+8, 2024-9-29 16:14 , Processed in 0.037077 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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