智能车制作

标题: 大大有赏 帮忙写一个9s12g128的API定时中断 自己看英文的datasheet着么写都写不出 [打印本页]

作者: o0ゞ注定ゞ0o    时间: 2012-4-21 10:42
标题: 大大有赏 帮忙写一个9s12g128的API定时中断 自己看英文的datasheet着么写都写不出
一个1ms的API定时中断  自己写了N次了  一直不行  就高手指点  学习
作者: o0ゞ注定ゞ0o    时间: 2012-4-21 10:46
本人邮箱384883574@qq.com    有答案的   随便回答一下  吧文件发我邮箱  能用就悬赏了
作者: o0ゞ注定ゞ0o    时间: 2012-4-22 16:58
没人额  还是要靠自己  自己用P&E自动生成  瞎搞了一段时间竟然成功了
作者: o0ゞ注定ゞ0o    时间: 2012-5-5 15:12
谁来解决一下api   自动生成的还是有弊端呀
作者: li331374761    时间: 2012-7-7 22:06
void APIInit() //相当于PIT 定时基准100us
{
  CPMUAPICTL_APIFE = 0;//在设定值之前需要清零;               
  CPMUAPICTL_APICLK = 1;//0:使用Autonomous Clock 1:使用BUs CLOCK,这里使用BUS CLK           
  //CPMUACLKTR=0xFC;// fACLK is trimmed to 10KHz,如果使用的是Auto Clock 则要设置此寄存器 为0xfc   
  CPMUAPIR = 2399; //2399
  //使用BUS  CLK , Period = 2*(APIR[15:0] + 1) *(1/40 000 000HZ)此处定时2ms
  //若使用AUTO CLK ,0.2(x+1)=y ms 如定时10ms 值为49
  CPMUAPICTL_APIE = 1;     //使能中断申请
  CPMUAPICTL_APIF = 1;      // 中断标志位清零
  CPMUAPICTL_APIFE = 1;    //在设定值之前需要清零;
}
interrupt  VectorNumber_Vapi void API_ISR(void)
{
    TimeCount_200us ++;
    if(TimeCount_200us >= 2)
    {
        TimeCount_200us = 0;
        TimeReach_200us = 1;      




初始化:
void API_Init()
  {

                  CPMUAPICTL_APIFE =0;//在设定值之前需要清零;
               
                  CPMUAPICTL_APICLK=1;  //0:使用Autonomous Clock 1:使用BUs CLOCK,这里使用BUS CLK           
                 //  CPMUACLKTR=0xFC;    // fACLK is trimmed to 10KHz,如果使用的是Auto Clock 则要设置此寄存器为0xfc                                             CPMUAPIR=29999;            //使用BUS  CLK , Period = 2*(APIR[15:0] + 1) *(1/60 000 000HZ)此处定时1ms
                                                       //若使用AUTO CLK ,0.2(x+1)=y ms 如定时10ms 值为49
                 CPMUAPICTL_APIE =1;     //使能中断申请
                 CPMUAPICTL_APIF=1;      // 中断标志位清零
                  CPMUAPICTL_APIFE =1;//在设定值之前需要清零;

}
中断:
interrupt  VectorNumber_Vapi void API_ISR(void)
{  
   CPMUAPICTL_APIF =1; //This flag can only be cleared by writing a 1
   count++;
   if(count>10) //定时10ms,时基单位1ms
   {
           PORTD_PD0=~PORTD_PD0;
       count=0;
   }

}



初始化:
void API_Init()
  {

                  CPMUAPICTL_APIFE =0;//在设定值之前需要清零;
               
                  CPMUAPICTL_APICLK=1;  //0:使用Autonomous Clock 1:使用BUs CLOCK,这里使用BUS CLK           
                 //  CPMUACLKTR=0xFC;    // fACLK is trimmed to 10KHz,如果使用的是Auto Clock 则要设置此寄存器为0xfc                                             CPMUAPIR=19999;            //使用BUS  CLK , Period = 2*(APIR[15:0] + 1) *(1/40 000 000HZ)此处定时1ms
                                                       //若使用AUTO CLK ,0.2(x+1)=y ms 如定时10ms 值为49
                 CPMUAPICTL_APIE =1;     //使能中断申请
                 CPMUAPICTL_APIF=1;      // 中断标志位清零
                  CPMUAPICTL_APIFE =1;//在设定值之前需要清零;

}
中断:
interrupt  VectorNumber_Vapi void API_ISR(void)
{  
   CPMUAPICTL_APIF =1; //This flag can only be cleared by writing a 1
   count++;
   if(count>5) //定时10ms,时基单位1ms
   {
           PORTD_PD0=~PORTD_PD0;
       count=0;
   }

}


作者: B-Boy_Chao    时间: 2012-7-9 21:49
进不了!
作者: li331374761    时间: 2012-7-9 22:07
B-Boy_Chao 发表于 2012-7-9 21:49
进不了!

还不行吗?


作者: B-Boy_Chao    时间: 2012-7-10 08:37
额。。行了。。。谢谢了!
作者: Think_p    时间: 2012-7-18 19:00
B-Boy_Chao 发表于 2012-7-10 08:37
额。。行了。。。谢谢了!

大虾,怎么解决的呀,求指导呀

作者: B-Boy_Chao    时间: 2012-7-18 23:33
上面的程序是对的!




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