30 static int g_ecap1_in_use=0;
 
   31 static int g_ecap2_in_use=0;
 
   32 static int g_ecap3_in_use=0;
 
   33 static int g_ecap4_in_use=0;
 
   34 static int g_ecap5_in_use=0;
 
   35 static int g_ecap6_in_use=0;
 
   48     case 1:     
if(!g_ecap6_in_use){
 
   51                     TMC_BASE_PIO->CTL[0].PUD &= ~(0x1 << 1);                
 
   52                     TMC_BASE_PIO->CTL[0].QSEL1 &= ~((
Uint32)0x3 << 2);      
 
   53                     TMC_BASE_PIO->CTL[0].MUX1 |= ((
Uint32)0x2 << 2);        
 
   54                     ECAP = TMC_BASE_ECAP6;                                  
 
   62     case 3:     
if(!g_ecap5_in_use){
 
   65                     TMC_BASE_PIO->CTL[0].PUD &= ~(0x1 << 3);                
 
   66                     TMC_BASE_PIO->CTL[0].QSEL1 &= ~((
Uint32)0x3 << 6);      
 
   67                     TMC_BASE_PIO->CTL[0].MUX1 |= ((
Uint32)0x2 << 6);        
 
   68                     ECAP = TMC_BASE_ECAP5;                                  
 
   76     case 5:     
if(!g_ecap1_in_use){
 
   79                     TMC_BASE_PIO->CTL[0].PUD &= ~(0x1 << 5);                
 
   80                     TMC_BASE_PIO->CTL[0].QSEL1 &= ~((
Uint32)0x3 << 10);     
 
   81                     TMC_BASE_PIO->CTL[0].MUX1 |= ((
Uint32)0x3 << 10);       
 
   82                     ECAP = TMC_BASE_ECAP1;                                  
 
   90     case 7:     
if(!g_ecap2_in_use){
 
   93                     TMC_BASE_PIO->CTL[0].PUD &= ~((
Uint32)0x1 << 7);        
 
   94                     TMC_BASE_PIO->CTL[0].QSEL1 &= ~((
Uint32)0x3 << 14);     
 
   95                     TMC_BASE_PIO->CTL[0].MUX1 |= ((
Uint32)0x3 << 14);       
 
   96                     ECAP = TMC_BASE_ECAP2;                                  
 
  104     case 9:     
if(!g_ecap3_in_use){
 
  107                     TMC_BASE_PIO->CTL[0].PUD &= ~((
Uint32)0x1 << 9);        
 
  108                     TMC_BASE_PIO->CTL[0].QSEL1 &= ~((
Uint32)0x3 << 18);     
 
  109                     TMC_BASE_PIO->CTL[0].MUX1 |= ((
Uint32)0x3 << 18);       
 
  110                     ECAP = TMC_BASE_ECAP3;                                  
 
  118     case 11:    
if(!g_ecap4_in_use){
 
  121                     TMC_BASE_PIO->CTL[0].PUD &= ~(0x1 << 11);               
 
  122                     TMC_BASE_PIO->CTL[0].QSEL1 &= ~((
Uint32)0x3 << 22);     
 
  123                     TMC_BASE_PIO->CTL[0].MUX1 |= ((
Uint32)0x3 << 22);       
 
  124                     ECAP = TMC_BASE_ECAP4;                                  
 
  132     case 24:    
if(!g_ecap1_in_use){
 
  135                     TMC_BASE_PIO->CTL[0].PUD &= ~((
Uint32)0x1 << 24);       
 
  136                     TMC_BASE_PIO->CTL[0].QSEL2 &= ~((
Uint32)0x3 << 16);     
 
  137                     TMC_BASE_PIO->CTL[0].MUX2 |= ((
Uint32)0x1 << 16);       
 
  138                     ECAP = TMC_BASE_ECAP1;                                  
 
  146     case 25:    
if(!g_ecap2_in_use){
 
  149                     TMC_BASE_PIO->CTL[0].PUD &= ~((
Uint32)0x1 << 25);       
 
  150                     TMC_BASE_PIO->CTL[0].QSEL2 &= ~((
Uint32)0x3 << 18);     
 
  151                     TMC_BASE_PIO->CTL[0].MUX2 |= ((
Uint32)0x1 << 18);       
 
  152                     ECAP = TMC_BASE_ECAP2;                                  
 
  160     case 26:    
if(!g_ecap3_in_use){
 
  163                     TMC_BASE_PIO->CTL[0].PUD &= ~((
Uint32)0x1 << 26);       
 
  164                     TMC_BASE_PIO->CTL[0].QSEL2 &= ~((
Uint32)0x3 << 20);     
 
  165                     TMC_BASE_PIO->CTL[0].MUX2 |= ((
Uint32)0x1 << 20);       
 
  166                     ECAP = TMC_BASE_ECAP3;                                  
 
  174     case 27:    
if(!g_ecap4_in_use){
 
  177                     TMC_BASE_PIO->CTL[0].PUD &= ~((
Uint32)0x1 << 27);       
 
  178                     TMC_BASE_PIO->CTL[0].QSEL2 &= ~((
Uint32)0x3 << 22);     
 
  179                     TMC_BASE_PIO->CTL[0].MUX2 |= ((
Uint32)0x1 << 22);       
 
  180                     ECAP = TMC_BASE_ECAP4;                                  
 
  188     case 34:    
if(!g_ecap1_in_use){
 
  191                     TMC_BASE_PIO->CTL[1].PUD &= ~(0x1 << 2);                
 
  192                     TMC_BASE_PIO->CTL[1].QSEL1 &= ~((
Uint32)0x3 << 4);      
 
  193                     TMC_BASE_PIO->CTL[1].MUX1 |= ((
Uint32)0x1 << 4);        
 
  194                     ECAP = TMC_BASE_ECAP1;                                  
 
  202     case 37:    
if(!g_ecap2_in_use){
 
  205                     TMC_BASE_PIO->CTL[1].PUD &= ~(0x1 << 5);                
 
  206                     TMC_BASE_PIO->CTL[1].QSEL1 &= ~((
Uint32)0x3 << 10);     
 
  207                     TMC_BASE_PIO->CTL[1].MUX1 |= ((
Uint32)0x3 << 10);       
 
  208                     ECAP = TMC_BASE_ECAP2;                                  
 
  216     case 48:    
if(!g_ecap5_in_use){
 
  219                     TMC_BASE_PIO->CTL[1].PUD &= ~((
Uint32)0x1 << 16);       
 
  220                     TMC_BASE_PIO->CTL[1].QSEL2 &= ~((
Uint32)0x3);           
 
  221                     TMC_BASE_PIO->CTL[1].MUX2 |= ((
Uint32)0x1);             
 
  222                     ECAP = TMC_BASE_ECAP5;                                  
 
  230     case 49:    
if(!g_ecap6_in_use){
 
  233                     TMC_BASE_PIO->CTL[1].PUD &= ~((
Uint32)0x1 << 17);       
 
  234                     TMC_BASE_PIO->CTL[1].QSEL2 &= ~((
Uint32)0x3 << 2);      
 
  235                     TMC_BASE_PIO->CTL[1].MUX2 |= ((
Uint32)0x1 << 2);        
 
  236                     ECAP = TMC_BASE_ECAP6;                                  
 
  246     ECAP->
ECEINT &= ~(0xFFFF);          
 
  247     ECAP->
ECCLR |= 0xFFFF;              
 
  248     ECAP->
ECCTL1 &= ~(0x1 << 8);        
 
  249     ECAP->
ECCTL2 &= ~(0x1 << 4);        
 
  252     ECAP->
ECCTL1 &= ~(0x3E00);          
 
  254     ECAP->
ECCTL2 |= (0x3 << 1);         
 
  257     ECAP->
ECCTL1 &= ~(0x1 << 2);        
 
  258     ECAP->
ECCTL1 &= ~(0x1 << 4);        
 
  259     ECAP->
ECCTL1 &= ~(0x1 << 6);        
 
  261     ECAP->
ECCTL1 |= (0x1 << 1);         
 
  262     ECAP->
ECCTL1 |= (0x1 << 3);         
 
  263     ECAP->
ECCTL1 |= (0x1 << 5);         
 
  264     ECAP->
ECCTL1 |= (0x1 << 7);         
 
  266     ECAP->
ECCTL2 &= ~(0x1 << 5);        
 
  267     ECAP->
ECCTL2 |= (0x3 << 6);         
 
  269     ECAP->
ECCTL1 |= (0x1 << 8);         
 
  270     ECAP->
ECCTL2 |= (0x1 << 4);         
 
  271     ECAP->
ECCTL2 |= (0x1 << 3);         
 
  272     ECAP->
ECEINT |= (0x1 << 4);         
 
  273     ECAP->
ECEINT |= (0x1 << 5);         
 
  291     if(event > 0 && event <= 7){                
 
  294             case 1:     
if(g_ecap6_in_use){
 
  295                             TMC_BASE_ECAP6->ECEINT |= (0x1 << event);               
 
  296                             TMC_BASE_INT_REGS->ECAP6_INT = (
Uint32)isr;             
 
  297                             TMC_BASE_PIE->GROUP[3].IER |= 0x20;                     
 
  303             case 3:     
if(g_ecap5_in_use){
 
  304                             TMC_BASE_ECAP5->ECEINT |= (0x1 << event);               
 
  305                             TMC_BASE_INT_REGS->ECAP5_INT = (
Uint32)isr;             
 
  306                             TMC_BASE_PIE->GROUP[3].IER |= 0x10;                     
 
  312             case 5:     
if(g_ecap1_in_use){
 
  313                             TMC_BASE_ECAP1->ECEINT |= (0x1 << event);               
 
  314                             TMC_BASE_INT_REGS->ECAP1_INT = (
Uint32)isr;             
 
  315                             TMC_BASE_PIE->GROUP[3].IER |= 0x1;                      
 
  321             case 7:     
if(g_ecap2_in_use){
 
  322                             TMC_BASE_ECAP2->ECEINT |= (0x1 << event);               
 
  323                             TMC_BASE_INT_REGS->ECAP2_INT = (
Uint32)isr;             
 
  324                             TMC_BASE_PIE->GROUP[3].IER |= 0x2;                      
 
  330             case 9:     
if(g_ecap3_in_use){
 
  331                             TMC_BASE_ECAP3->ECEINT |= (0x1 << event);               
 
  332                             TMC_BASE_INT_REGS->ECAP3_INT = (
Uint32)isr;             
 
  333                             TMC_BASE_PIE->GROUP[3].IER |= 0x4;                      
 
  339             case 11:    
if(g_ecap4_in_use){
 
  340                             TMC_BASE_ECAP4->ECEINT |= (0x1 << event);               
 
  341                             TMC_BASE_INT_REGS->ECAP4_INT = (
Uint32)isr;             
 
  342                             TMC_BASE_PIE->GROUP[3].IER |= 0x8;                      
 
  348             case 24:    
if(g_ecap1_in_use){
 
  349                             TMC_BASE_ECAP1->ECEINT |= (0x1 << event);               
 
  350                             TMC_BASE_INT_REGS->ECAP1_INT = (
Uint32)isr;             
 
  351                             TMC_BASE_PIE->GROUP[3].IER |= 0x1;                      
 
  357             case 25:    
if(g_ecap2_in_use){
 
  358                             TMC_BASE_ECAP2->ECEINT |= (0x1 << event);               
 
  359                             TMC_BASE_INT_REGS->ECAP2_INT = (
Uint32)isr;             
 
  360                             TMC_BASE_PIE->GROUP[3].IER |= 0x2;                      
 
  366             case 26:    
if(g_ecap3_in_use){
 
  367                             TMC_BASE_ECAP3->ECEINT |= (0x1 << event);               
 
  368                             TMC_BASE_INT_REGS->ECAP3_INT = (
Uint32)isr;             
 
  369                             TMC_BASE_PIE->GROUP[3].IER |= 0x4;                      
 
  375             case 27:    
if(g_ecap4_in_use){
 
  376                             TMC_BASE_ECAP4->ECEINT |= (0x1 << event);               
 
  377                             TMC_BASE_INT_REGS->ECAP4_INT = (
Uint32)isr;             
 
  378                             TMC_BASE_PIE->GROUP[3].IER |= 0x8;                      
 
  384             case 34:    
if(g_ecap1_in_use){
 
  385                             TMC_BASE_ECAP1->ECEINT |= (0x1 << event);               
 
  386                             TMC_BASE_INT_REGS->ECAP1_INT = (
Uint32)isr;             
 
  387                             TMC_BASE_PIE->GROUP[3].IER |= 0x1;                      
 
  393             case 37:    
if(g_ecap2_in_use){
 
  394                             TMC_BASE_ECAP2->ECEINT |= (0x1 << event);               
 
  395                             TMC_BASE_INT_REGS->ECAP2_INT = (
Uint32)isr;             
 
  396                             TMC_BASE_PIE->GROUP[3].IER |= 0x2;                      
 
  402             case 48:    
if(g_ecap5_in_use){
 
  403                             TMC_BASE_ECAP5->ECEINT |= (0x1 << event);               
 
  404                             TMC_BASE_INT_REGS->ECAP5_INT = (
Uint32)isr;             
 
  405                             TMC_BASE_PIE->GROUP[3].IER |= 0x10;                     
 
  411             case 49:    
if(g_ecap6_in_use){
 
  412                             TMC_BASE_ECAP6->ECEINT |= (0x1 << event);               
 
  413                             TMC_BASE_INT_REGS->ECAP6_INT = (
Uint32)isr;             
 
  414                             TMC_BASE_PIE->GROUP[3].IER |= 0x20;                     
 
  428     TMC_BASE_PIE->CTRL |= 0x01;                 
 
  448     if((frequency > 1000000) || (frequency < 1)){
 
  451     else if(dutycycle > 100){
 
  456             case 1:     ECAP = TMC_BASE_ECAP6;
 
  458             case 3:     ECAP = TMC_BASE_ECAP5;
 
  460             case 5:     ECAP = TMC_BASE_ECAP1;
 
  462             case 7:     ECAP = TMC_BASE_ECAP2;
 
  464             case 9:     ECAP = TMC_BASE_ECAP3;
 
  466             case 11:    ECAP = TMC_BASE_ECAP4;
 
  468             case 24:    ECAP = TMC_BASE_ECAP1;
 
  470             case 25:    ECAP = TMC_BASE_ECAP2;
 
  472             case 26:    ECAP = TMC_BASE_ECAP3;
 
  474             case 27:    ECAP = TMC_BASE_ECAP4;
 
  476             case 34:    ECAP = TMC_BASE_ECAP1;
 
  478             case 37:    ECAP = TMC_BASE_ECAP2;
 
  480             case 48:    ECAP = TMC_BASE_ECAP5;
 
  482             case 49:    ECAP = TMC_BASE_ECAP6;
 
  487         ECAP->
ECCTL2 |= (0x1 << 9);                         
 
  488         ECAP->
CAP1 |= (F_CPU/frequency);                    
 
  491         ECAP->
ECCTL2 &= ~(0x1 << 10);                       
 
  492         ECAP->
ECCTL2 &= ~(0x1 << 5);                        
 
  493         ECAP->
ECCTL2 |= (0x1 << 6);                         
 
  494         ECAP->
ECCTL2 |= (0x1 << 4);                         
 
  509         case 1:     
if(g_ecap6_in_use){
 
  520         case 3:     
if(g_ecap5_in_use){
 
  531         case 5:     
if(g_ecap1_in_use){
 
  542         case 7:     
if(g_ecap2_in_use){
 
  553         case 9:     
if(g_ecap3_in_use){
 
  564         case 11:    
if(g_ecap4_in_use){
 
  575         case 24:    
if(g_ecap1_in_use){
 
  586         case 25:    
if(g_ecap2_in_use){
 
  597         case 26:    
if(g_ecap3_in_use){
 
  608         case 27:    
if(g_ecap4_in_use){
 
  619         case 34:    
if(g_ecap1_in_use){
 
  630         case 37:    
if(g_ecap2_in_use){
 
  641         case 48:    
if(g_ecap5_in_use){
 
  652         case 49:    
if(g_ecap6_in_use){
 
  673     if((TMC_BASE_ECAP1->ECFLG & 0x0020) && !(TMC_BASE_ECAP1->ECFLG & 0x0010)){  
 
  675         TMC_BASE_ECAP1->ECCLR |= (0x1 << 5);        
 
  679         TMC_BASE_ECAP1->ECCLR |= (0x1 << 4);        
 
  681     TMC_BASE_ECAP1->ECCLR |= 0x1;                   
 
  683     TMC_BASE_ECAP1->ECCTL1 |= (0x1 << 8);           
 
  684     TMC_BASE_ECAP1->ECCTL2 |= (0x1 << 4);           
 
  685     TMC_BASE_ECAP1->ECCTL2 |= (0x1 << 3);           
 
  686     TMC_BASE_PIE->ACK |= 0x8;                       
 
  695     if((TMC_BASE_ECAP2->ECFLG & 0x0020) && !(TMC_BASE_ECAP2->ECFLG & 0x0010)){  
 
  697         TMC_BASE_ECAP2->ECCLR |= (0x1 << 5);        
 
  701         TMC_BASE_ECAP2->ECCLR |= (0x1 << 4);        
 
  703     TMC_BASE_ECAP2->ECCLR |= 0x1;                   
 
  705     TMC_BASE_ECAP2->ECCTL1 |= (0x1 << 8);           
 
  706     TMC_BASE_ECAP2->ECCTL2 |= (0x1 << 4);           
 
  707     TMC_BASE_ECAP2->ECCTL2 |= (0x1 << 3);           
 
  708     TMC_BASE_PIE->ACK |= 0x8;                       
 
  717     if((TMC_BASE_ECAP3->ECFLG & 0x0020) && !(TMC_BASE_ECAP3->ECFLG & 0x0010)){  
 
  719         TMC_BASE_ECAP3->ECCLR |= (0x1 << 5);        
 
  723         TMC_BASE_ECAP3->ECCLR |= (0x1 << 4);        
 
  725     TMC_BASE_ECAP3->ECCLR |= 0x1;                   
 
  727     TMC_BASE_ECAP3->ECCTL1 |= (0x1 << 8);           
 
  728     TMC_BASE_ECAP3->ECCTL2 |= (0x1 << 4);           
 
  729     TMC_BASE_ECAP3->ECCTL2 |= (0x1 << 3);           
 
  730     TMC_BASE_PIE->ACK |= 0x8;                       
 
  739     if((TMC_BASE_ECAP4->ECFLG & 0x0020) && !(TMC_BASE_ECAP4->ECFLG & 0x0010)){  
 
  741         TMC_BASE_ECAP4->ECCLR |= (0x1 << 5);        
 
  745         TMC_BASE_ECAP4->ECCLR |= (0x1 << 4);        
 
  747     TMC_BASE_ECAP4->ECCLR |= 0x1;                   
 
  749     TMC_BASE_ECAP4->ECCTL1 |= (0x1 << 8);           
 
  750     TMC_BASE_ECAP4->ECCTL2 |= (0x1 << 4);           
 
  751     TMC_BASE_ECAP4->ECCTL2 |= (0x1 << 3);           
 
  752     TMC_BASE_PIE->ACK |= 0x8;                       
 
  761     if((TMC_BASE_ECAP5->ECFLG & 0x0020) && !(TMC_BASE_ECAP5->ECFLG & 0x0010)){  
 
  763         TMC_BASE_ECAP5->ECCLR |= (0x1 << 5);        
 
  767         TMC_BASE_ECAP5->ECCLR |= (0x1 << 4);        
 
  769     TMC_BASE_ECAP5->ECCLR |= 0x1;                   
 
  771     TMC_BASE_ECAP5->ECCTL1 |= (0x1 << 8);           
 
  772     TMC_BASE_ECAP5->ECCTL2 |= (0x1 << 4);           
 
  773     TMC_BASE_ECAP5->ECCTL2 |= (0x1 << 3);           
 
  774     TMC_BASE_PIE->ACK |= 0x8;                       
 
  783     if((TMC_BASE_ECAP6->ECFLG & 0x0020) && !(TMC_BASE_ECAP6->ECFLG & 0x0010)){  
 
  785         TMC_BASE_ECAP6->ECCLR |= (0x1 << 5);        
 
  789         TMC_BASE_ECAP6->ECCLR |= (0x1 << 4);        
 
  791     TMC_BASE_ECAP6->ECCLR |= 0x1;                   
 
  793     TMC_BASE_ECAP6->ECCTL1 |= (0x1 << 8);           
 
  794     TMC_BASE_ECAP6->ECCTL2 |= (0x1 << 4);           
 
  795     TMC_BASE_ECAP6->ECCTL2 |= (0x1 << 3);           
 
  796     TMC_BASE_PIE->ACK |= 0x8;                       
 
  808         case 1:     TMC_BASE_ECAP6->ECFRC |= (0x1 << 5);
 
  810         case 3:     TMC_BASE_ECAP5->ECFRC |= (0x1 << 5);
 
  812         case 5:     TMC_BASE_ECAP1->ECFRC |= (0x1 << 5);
 
  814         case 7:     TMC_BASE_ECAP2->ECFRC |= (0x1 << 5);
 
  816         case 9:     TMC_BASE_ECAP3->ECFRC |= (0x1 << 5);
 
  818         case 11:    TMC_BASE_ECAP4->ECFRC |= (0x1 << 5);
 
  820         case 24:    TMC_BASE_ECAP1->ECFRC |= (0x1 << 5);
 
  822         case 25:    TMC_BASE_ECAP2->ECFRC |= (0x1 << 5);
 
  824         case 26:    TMC_BASE_ECAP3->ECFRC |= (0x1 << 5);
 
  826         case 27:    TMC_BASE_ECAP4->ECFRC |= (0x1 << 5);
 
  828         case 34:    TMC_BASE_ECAP1->ECFRC |= (0x1 << 5);
 
  830         case 37:    TMC_BASE_ECAP2->ECFRC |= (0x1 << 5);
 
  832         case 48:    TMC_BASE_ECAP5->ECFRC |= (0x1 << 5);
 
  834         case 49:    TMC_BASE_ECAP6->ECFRC |= (0x1 << 5);