历史上的今天
今天是: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 #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
史海拾趣
|
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板子也收到了,刚在迅雷下载了一个“VMWare 7.1.0.261024 绿色精简版.rar”,现正在下载ubuntu9.10正式版,等我把开发平台架设好了就开始分享我的学习心得,显示的问题我准备到淘宝上去淘一个HDMI转VGA或者DVI的转换线,15-18一条,我准 ...… 查看全部问答> |
|
最近在做个上下位机通讯的自定义协议,思路如下: (1)通过状态机的方法分析数据包,提取需要的信息,这部分是采用【USART1中断接收模式】做的。 (2)分析数据包内固定位置的【数据长度】信 ...… 查看全部问答> |
|
#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文件。不然会出现下图的 ...… 查看全部问答> |




