智能车制作

标题: PIT模块,求教,一个问题 [打印本页]

作者: taotao7636    时间: 2011-8-7 13:47
标题: PIT模块,求教,一个问题
今天写了个用PIT的OC功能实现1ms进一次中断的程序,如下:
PLL定义时总线率为16M

void PIT_Init(void){
  TIOS_IOS0=1;   
  TC0=1000;             //........1ms
  TCTL2=0x01;            //翻转
  TSCR2=0x04;
                               //16分频  16M/16=1M.....1us
  TSCR1=0x80;
  TIE=0x01;
}

问题是:不论我怎么改TC0的值,都是65ms进一次中断,也就是都是在计数器溢出时进中断,怎解?是哪个寄存器设值错了吗?
作者: 977987060    时间: 2011-11-16 18:42
这个属于ECT模块,而不是PIT模块。
作者: awesss    时间: 2011-12-4 19:08
//现象B灯闪动,周期是INTVERAL*(0.01)ms,可用来记时.
//demo by whut_wj



#include <hidef.h>      /* common defines and macros */
#include <MC9S12XS128.h>     /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12xs128"

#define  INTVERAL 100
void SetBusClock(void)
{   
    CLKSEL=0X00;                   //disengage PLL to system
    PLLCTL_PLLON=1;                //turn on PLL
    SYNR=2;         
    REFDV=1;                       //pllclock=2*osc*(1+SYNR)/(1+REFDV)=48MHz;
    _asm(nop);                     //BUS CLOCK=24M
    _asm(nop);
    while(!(CRGFLG_LOCK==1));       //when pll is steady ,then use it;
    CLKSEL_PLLSEL =1;               //engage PLL to system;
}


void PitInit(void)
{   

   PITCFLMT_PITE=0;       //disable PIT
   PITCE_PCE0=1;          //enable timer channel 0
   PITMTLD0=240-1;        //time base  240 clock cycles ,it's 0.1M Hz
   PITMUX=0X00;           // ch0 connected to micro timer 0
   PITLD0=INTVERAL-1;     //INTVERAL micro time bases  
   PITINTE_PINTE0=1;      //enable interupt channel 0
   PITCFLMT_PITE=1;       //enable PIT
   
                          //PITCNT0,类似于自由记数器,只不过一直是递减,TCNT是一直递增
}   

void main(void)
{
   EnableInterrupts;
   SetBusClock();
   PitInit();
   DDRB=0xff;

    for(;;)
    {
   
    }  
}


#pragma CODE_SEG __NEAR_SEG NON_BANKED
void interrupt 66 PIT0Interrupt(void)
{  
    PORTB^=0xff;
           PITTF_PTF0=1;

}
作者: drting    时间: 2011-12-24 17:56

作者: 小杨木叶    时间: 2013-8-17 08:51
大神,有没有PIT模块的中文资料啊,望共享之。。。在此感谢了。。。。




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