智能车制作

标题: xs128的中断是怎么用的? [打印本页]

作者: 无敌快车    时间: 2011-12-13 17:35
标题: xs128的中断是怎么用的?
请教高手xs128的外部中断该怎么用。。。。。。。。多谢
作者: 朱杰亮    时间: 2011-12-13 19:12
百度啊
作者: 无敌快车    时间: 2011-12-13 20:09
回复 2# 朱杰亮


    。。。。。。。。。。。
作者: lsa4100    时间: 2011-12-14 10:57
本帖最后由 lsa4100 于 2011-12-14 11:04 编辑

回复 1# 无敌快车


void PIT_Init(void)           //函数作用:PIT(定时中断)初始化
{
  /**********************************
  配置中断优先级。本程序开四个中断:PT0行中断、PT1场中断、PIT0定时中断(读取测速值)、SCI0串口中断,中断级别分别为7、6、5、4,依次下降。
  PT0 对应中断向量地址为0x0000FFEE,地址倒数第二位为E,于是写入INT_CFADDR = 0xE0;地址倒数第一位为E即14,设置位为14/2=7,于是INT_CFDATA7 = 0x07;
  PT1 对应中断向量地址为0x0000FFEC,地址倒数第二位为E,于是写入INT_CFADDR = 0xE0;地址倒数第一位为C即12,设置位为12/2=6,于是INT_CFDATA6 = 0x06;
  PIT0对应中断向量地址为0x0000FF7A,地址倒数第二位为7,于是写入INT_CFADDR = 0x70;地址倒数第一位为A即10,设置位为10/2=5,于是INT_CFDATA5 = 0x05;
  SCI0对应中断向量地址为0x0000FFD6,地址倒数第二位为D,于是写入INT_CFADDR = 0xD0;地址倒数第一位为6    ,设置位为 6/2=3,于是INT_CFDATA3 = 0x04;
  
  **********************************/
  INT_CFADDR  = 0xE0;           //中断向量号
  INT_CFDATA7 = 0x07;           //PT0行中断优先级定义:level 7(最高)
  
  INT_CFADDR  = 0x70;           //中断向量号
  INT_CFDATA6 = 0x06;           //PT1场中断优先级定义:level 6
  
  INT_CFADDR  = 0x70;           //中断向量号
  INT_CFDATA5 = 0x05;           //PIT定时器中断优先级定义:level 5
  
  INT_CFADDR  = 0x70;           //中断向量号
  INT_CFDATA3 = 0x04;           //SCI0串口中断优先级定义:level 4
  
  PITCFLMT_PITE = 0;            //先停止PIT
  /***********************/
  PITCE_PCE0 = 1;                 //使能PIT频道0(共4个频道)
  PITMUX_PMUX0 = 0;             //使用子计数器0(8位)计时
  PITMTLD0 = 200;               //8位子计数器初值(相当于分频器)
  PITLD0 = 4000;                 //16位计数器初值:总计时: 4000×200×0.0125us约为10ms。80MHz主频。。。
  PITCFLMT_PFLMT = 1;           //使能定时器
  PITFLT_PFLT0 = 1;             //读取计数器初值
  PITINTE_PINTE0 = 1;           //使能中断
  PITTF_PTF0 = 1;
  /*****************/
  PITCFLMT_PITE = 1;            //使能PIT
}
/*********************************************************************
函数名:       TIM_Init                          
作用:         初始化输入捕捉计数器以及行场中断程序
输入管脚:     IOC7(PT7)               
输出管脚:     None                                                   
备注:         类似于外部中断,可以计测速脉冲数,保存在PACNT寄存器中                                          
*********************************************************************/
void TIM_Init(void)          //函数作用:IOC(输入捕捉)初始化,输入端口PT7  
{
  TIOS=0x00;                 //设置外部输入捕捉管脚PT7为输入,PT0,1 通道也为输入  
  TSCR1_TFFCA = 0;           //清空定时器标志位,以进行正常的操作
  PACTL = 0x40;              //使能输入捕捉的计数功能,下降沿捕捉,关闭溢出中断和输入捕捉中断
  PACNT = 0;                 //计数器清零
  TCTL4_EDG0B = 0;           //外部中断口PT0为行中断,优先级最高,设置为上升沿触发
  TCTL4_EDG0A = 1;
  TCTL4_EDG1B = 1;           //外部中断口PT1为场中断,优先级第二,设置为下降沿触发
  TCTL4_EDG1A = 0;
  TFLG1_C0F=1;              // 清行中断标志
  TFLG1_C1F=1;              // 清场中断标志   
  TIE_C0I = 1;              // 开行中断
  TIE_C1I = 1;              //开场中断
  TSCR1_TEN=1;              //允许定时器正常工作。这个语句必须要,虽然脉冲可以脱离时钟,但是系统中的时钟是不能不开启的
}
作者: 恋May    时间: 2011-12-14 13:41

作者: 朱杰亮    时间: 2011-12-26 19:15
回复 3# 无敌快车  什么意思
作者: 早安,徐威    时间: 2012-11-27 21:27
楼主现在搞清楚没?咱俩进度貌似差不多哇




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2