xs128 双定时器PIT0和PIT1

发布者:快乐的舞蹈最新更新时间:2021-08-27 来源: eefocus关键字:xs128  双定时器 手机看文章 扫描二维码
随时随地手机看文章

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

**  函数说明:xs128 双定时器PIT0和PIT1

**  版      本:V1.00        

**  修      改:庞辉    芜湖联大飞思卡尔工作室                     

**  修改日期:2011年09月19日    

**        

**  说      明:PLL倍频到80Mhz,PB0口灯1s闪烁,PB1口灯2s闪烁    

**                                                          

**  版本更新:详见readme.txt

**                                                                                                                               

******************************************************************

**注意: LED1灯  PORTB0

**          LED2灯  PORTB1   

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

 

#include       /* common defines and macros */

#include "derivative.h"      /* derivative-specific definitions */

 

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

** 名       称:void PLL_Init(void)

** 功       能:PLL锁相环模块初始化

** 入口参数:无

** 出口参数:无

** 使用说明:80MHz

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

void PLL_Init(void)  

{   

    CLKSEL = 0X00;

    

    PLLCTL_PLLON = 1;

    

    

    SYNR =0xc0 | 0x09;  //80M                     

    REFDV=0x80 | 0x01;

    //SYNR =0xc0 | 0x04;  //40M                        

    //REFDV=0x80 | 0x01; 

    

    POSTDIV = 0x00;       //pllclock=2*osc*(1+SYNR)/(1+REFDV)=160MHz;

                                        //BUS CLOCK=80M

    _asm(nop); //空操作,进行简单的延时,等待锁相环的相应 

    _asm(nop);

    

    while(!(CRGFLG_LOCK==1))

    {

      _asm(nop);  

    }   

    

    CLKSEL_PLLSEL = 1;        

}

 

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

** 名       称:void PIT_Init(void) 

** 功       能:PIT定时模块初始化

** 入口参数:无

** 出口参数:无

** 使用说明:PIT0 1ms定时

**                 PIT1 8ms定时

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

void PIT_Init(void) 

{

      PITCFLMT_PITE=0; //关闭PIT   

      

      //微定时器的装载寄存器   

      PITMTLD0= 80-1;//8位定时器初值设定。80分频,在80MHzBusClock下,为1MHz,即1us   

     //PITMTLD1= 160-1;//8位定时器初值设定,160分频,在16MHz的总线时钟频率下,为0.1MHz,即10us   

        

      //定时器的装载寄存器   

      PITLD0  = 1000 - 1 ;//1ms   

      PITLD1  = 8000 - 1 ;//定时8ms  

  

      PITCE_PCE0=1;//使能通道0   

      PITCE_PCE1=1;//使能通道1   

        

      PITMUX_PMUX0=0;//0:相应16位定时器与微时基0连接   

      //PITMUX_PMUX1=1;//1:相应16位定时器与微时基1连接   

        

      PITINTE_PINTE0=1;//开通PIT0定时器的溢出中断       

      PITINTE_PINTE1=1;//开通PIT1定时器的溢出中断   

  

      PITCFLMT_PITE=1; //使能PIT 

}

 

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

** 名    称:void main(void)

** 功    能:主函数

** 入口参数:无

** 出口参数:无

** 使用说明:无

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

void main(void) 

{

        DDRB = 0xff;

        PORTB = 0xff;

        

        EnableInterrupts;

        PLL_Init();

        PIT_Init();

 

        for(;;) 

         {

 

         } 

 

}

 

 

int i = 0, j = 0;

 

#pragma CODE_SEG __NEAR_SEG NON_BANKED //指示该程序在不分页区

 

    //定时器0

    void interrupt 66 PIT0(void) 

    {

        DisableInterrupts;

        

        //清中断标志位

        PITTF = 0x01;

        i++;

        

        //1s

        if(i == 1000)

        {

                PORTB_PB0 = ~PORTB_PB0;

                i = 0;

        }

        

   

        EnableInterrupts;                

    }

    

    

    //定时器1

    void interrupt 67 PIT1(void)       

    {                  

         DisableInterrupts;

         

         //清中断标志位                 

         PITTF = 0x02;

         j++;

        

         //2s

         if(j == 250)

         {

                PORTB_PB1 = ~PORTB_PB1;

                j = 0;

         }

         

         EnableInterrupts;                        

    } 

 

#pragma CODE_SEG DEFAULT


关键字:xs128  双定时器 引用地址:xs128 双定时器PIT0和PIT1

上一篇:飞思卡尔XS128系列(一) PLL锁相环
下一篇:freescale飞思卡尔 HCS12 系列单片机bootloader详解(二)

小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved