历史上的今天
返回首页

历史上的今天

今天是:2024年08月27日(星期二)

正在发生

2021年08月27日 | xs128 双定时器PIT0和PIT1

2021-08-27 来源:eefocus

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

**  函数说明: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


推荐阅读

史海拾趣

ETL semiconductor公司的发展小趣事

AMD(Advanced Micro Devices)在半导体行业中的发展经历了一个从追赶到逆袭的过程。在英特尔的强大市场压力下,AMD通过不断创新和技术提升,逐渐在处理器市场上获得了一席之地。尤其是在游戏和高端计算领域,AMD的处理器凭借其出色的性能和性价比赢得了众多消费者的青睐。

Amidon Associates Inc公司的发展小趣事

台积电(TSMC)是全球最大的半导体代工企业之一。其发展历程可以追溯到上世纪80年代。当时,台积电看准了半导体代工市场的巨大潜力,决定专注于这一领域。通过不断的技术创新和市场拓展,台积电逐渐在代工领域树立了领先地位。如今,台积电已与全球众多知名芯片设计企业建立了紧密的合作关系,为全球半导体产业的发展做出了重要贡献。

BROTHER公司的发展小趣事

随着全球市场的不断扩大,BROTHER意识到要实现持续发展,必须走国际化道路。因此,公司在上世纪五十年代开始积极实施国际化战略。首先,BROTHER在美国纽约建立了销售总部,以更好地服务北美市场。随后,公司又在欧洲等地建立生产基地和销售网络,进一步拓展国际市场。通过国际化战略的实施,BROTHER不仅提升了品牌知名度和市场份额,还积累了丰富的跨国经营经验。

Geyer Electronic E K公司的发展小趣事

随着全球环保意识的提高,BROTHER公司也积极践行环保理念,推动绿色生产。公司注重节能减排和资源循环利用,采用环保材料和生产工艺,减少对环境的影响。同时,BROTHER还开展了一系列环保公益活动,宣传环保理念,提高公众环保意识。通过践行环保理念,BROTHER不仅赢得了社会的认可和尊重,还为公司的可持续发展奠定了坚实基础。

以上五个故事只是BROTHER公司在电子行业发展历程中的一部分缩影。实际上,BROTHER的发展还涉及更多的细节和方面。但无论如何,BROTHER始终坚持创新、质量、服务和环保的理念,不断追求卓越和完美,为电子行业的发展做出了重要贡献。

Datakey Electronics公司的发展小趣事

随着全球化进程的加速,Datakey Electronics意识到单靠国内市场已经无法满足公司的长远发展需求。于是,公司积极寻求国际合作机会,与国际知名企业建立战略合作伙伴关系,共同开发新产品、开拓新市场。通过国际合作,Datakey Electronics不仅提高了自身的技术水平和产品竞争力,还成功将产品推向了国际市场。

BELLING LEE公司的发展小趣事

为了进一步扩大市场份额,BELLING LEE公司开始实施国际化战略。公司首先在欧洲和北美市场设立了分支机构,并逐步拓展到亚洲、非洲等其他地区。在国际化过程中,公司不仅积极推广自己的产品和技术,还加强了与当地企业的合作与交流,从而实现了资源的优化配置和市场的互利共赢。

问答坊 | AI 解惑

如何从单片机将程序上传到电脑?

如何从单片机将程序上传到电脑?…

查看全部问答>

驱动程序编译错误,帮我看看是什么错误?

我的一个代码如下:         ......                 #include \"s2440.h\"         ......                 vo ...…

查看全部问答>

除法问题

请问进行两位16进制除法运算的实现代码是什么?急求!谢谢!…

查看全部问答>

IC破解

请问有那位高手可以把AT88SC153这个芯片的 程序破解出来…

查看全部问答>

WinCE5.0上如何编程设置任务栏"总在最前","自动隐藏","显示时间"的启用或停用?

如题,主要是想让任务栏不要总在最前,全屏程序. 并非想要直接ShowWindow(hTaskBarWnd, SW_HIDE)隐藏(这样打开\"最大化\"窗口时不能最大化,下面原来任务栏的地方是空白); 试过修改注册表并SendMessage(hTaskBarWnd, WM_COMMAND, 0x3EA, 0),实际并没 ...…

查看全部问答>

多个串口初始化的函数怎么写?

例如 已经定义好了 #define U0IIR           (*((volatile unsigned char *) 0xE000C008)) 和 #define U1IIR           (*((volatile unsigned char *) 0xE00 ...…

查看全部问答>

我的AM3517板子也收到了

我的AM3517板子也收到了,刚在迅雷下载了一个“VMWare 7.1.0.261024 绿色精简版.rar”,现正在下载ubuntu9.10正式版,等我把开发平台架设好了就开始分享我的学习心得,显示的问题我准备到淘宝上去淘一个HDMI转VGA或者DVI的转换线,15-18一条,我准 ...…

查看全部问答>

DMA中断模式,莫名其妙的问题..

最近在做个上下位机通讯的自定义协议,思路如下:    (1)通过状态机的方法分析数据包,提取需要的信息,这部分是采用【USART1中断接收模式】做的。    (2)分析数据包内固定位置的【数据长度】信 ...…

查看全部问答>

请教汇编指令EALLOW和EDIS的含义

#define  EALLOW asm(\\" EALLOW\\" #define  EDIS   asm(\\" EDIS\\" #define  ESTOP0 asm(\\" ESTOP0\\" 在上面定义的 指令中,不知道三个汇编指令的含义,还请高手赐教,谢谢!! ...…

查看全部问答>

开始富士通开发板的例程调试遇到的问题

下载IAR for ARM 6.3(文档推荐的是v6.0以上的版本)---我以前用的是4.2的版本,到IAR的官网重新下载到了。 安装Manley MLink的驱动程序,这个我下载好,先在上传给大家,安装步骤请参考板子的资料FM3-Easy-Kit-manual.pdf文件。不然会出现下图的 ...…

查看全部问答>