查看: 2936|回复: 0

[S12] MC9S12XEG128PIT的用法疑问急急急急急!!!!!!

[复制链接]

该用户从未签到

19

主题

68

帖子

0

注册会员

Rank: 2

积分
188
最后登录
1970-1-1
发表于 2011-7-7 21:27:21 | 显示全部楼层 |阅读模式
对于两个PIT0和PIT1定时器的用法,我想实现PIT0定时10ms,PIT1定时5ms,但两个中断都是产生10ms的中断,请大家帮我看看?非常着急???在这里先谢谢了.
 
//********************定时器初始化函数********************
//函数定义:void PIT_Init(void)
//描述:   
//参数:    无
//返回值:  无
//备注:  //PIT模块中的16位计数器初值和8位计数器配合而成24位计数器
//********************************************************
void PIT_Init(void)    //周期中断初始化函数 周期1MS中断设置
{
    PITCFLMT_PITE=1;   //使能PIT模块
    PITMUX=0x00;       //该寄存器对定时器通道的8位时基进行选择,8位计数器只有两个 PMUX0,PMUX1
   
    PITMTLD0=16 - 1;   //用于设置PIT模块中的8位计数器初值,以实现24位的计数。设定值为0到255范围。
                       //PMUX = 1时使用PITMTLD1 定时器初值设定,16分频,在16MHzBusClock下,为1MHz。即1us
                       //PMUX = 0时使用PITMTLD0
    PITLD0=10000 - 1;  //16位定时器初值设定 10000*0.001MS=10MS time-out period = (PITMTLD + 1) * (PITLD + 1) / fBUS.
                      
                      
    PITLD1=5000 - 1;  //5ms
   
    PITINTE_PINTE0=1;  //PIT中断通道0使能 ,当计数器递减溢出时,申请中断
   
    PITINTE_PINTE1=1;  //PIT中断通道1使能 ,当计数器递减溢出时,申请中断
                      
    PITCE_PCE0=1;      //使能通道0
   
    PITCE_PCE1=1;      //使能通道1
   
  
}
//********************定时器0中断函数 *******************
//函数定义:void interrupt (VectorNumber_Vpit0) PIT0_ISR(void)
//描述:    定时器中断函数 10ms执行中断一次
//参数:    无
//返回值:  无
//备注:    10ms中断一次
//*******************************************************
#pragma CODE_SEG __NEAR_SEG NON_BANKED  //指示该程序在不分页区
void interrupt (VectorNumber_Vpit0) PIT0_ISR(void)
{
    PITTF_PTF0 = 1;     /* and clear interrupt flag */
    timeout=1;
    cnt++;
    if(cnt3==100){                  
                 cnt=0;
                 PORTA_PA3=~PORTA_PA3;                
                }
}
//********************定时器1中断函数 *******************
//函数定义:void interrupt (VectorNumber_Vpit0) PIT0_ISR(void)
//描述:    定时器中断函数 10ms执行中断一次
//参数:    无
//返回值:  无
//备注:    5ms中断一次
//*******************************************************
void interrupt (VectorNumber_Vpit1) PIT1_ISR(void)
{
    PITTF_PTF1 = 1;     /* and clear interrupt flag */
    timeout=1;
    cnt3++;
    if(cnt3==200){
                  cnt3=0;
                  PORTA_PA2=~PORTA_PA2;                
                }
}
我知道答案 目前已有0人回答
回复

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-26 19:14 , Processed in 0.080828 second(s), 21 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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