MC9S12XF'S PWM problem

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

MC9S12XF'S PWM problem

1,459 Views
zerodio
Contributor I
Ask what
Who can tell me
MC9S12XF series of PWM waveforms to have come out how to configure
CODE someone can give me an example do? Thanksgiving
Labels (1)
0 Kudos
Reply
1 Reply

674 Views
zerodio
Contributor I

this is my code

/******************************************************************************/

#include "M9S12XF512.h"     /* derivative information */
#include <hidef.h>      /* common defines and macros */
/** Variable types and common definitions */
#include "typedefs.h"
/** CPU definitions */
#include "Cpu.h"
/** Macro definitions for general purpose I/O handling  */
#include "GPIO_macros.h"

UINT16 AD_wData1;
UINT16 AD_wData2;
UINT16 AD_wData3;
UINT8 AD_wDataH;


void main(void) {
int i;
  /* put your own code here */
  EnableInterrupts;


  /* please make sure that you never leave this function */
  vfnClock_Settings();   

  vfnPeripheral_Settings();        
/**************************************************************/  
/* AD控制暫存器1: AD解析度8位元 */
ATDCTL1 = 0x00;

/* AD控制暫存器2: 啟動AD快速轉換|AD等待模式下轉換 */
ATDCTL2 = (ATDCTL2_AFFC_MASK|ATDCTL2_ICLKSTP_MASK);

/* AD控制暫存器3: 右對齊|轉換序列長度為3 */
ATDCTL3 = (ATDCTL3_DJM|ATDCTL3_S2C_MASK|ATDCTL3_S1C_MASK);

/* AD控制暫存器4:AD時脈週期為4個系統時脈|分頻係數為19 */
ATDCTL4 = (ATDCTL4_PRS4_MASK|ATDCTL4_PRS1_MASK|ATDCTL4_PRS0_MASK);

/* AD控制暫存器5:連續採集||通道AD5開始 */
ATDCTL5 = (ATDCTL5_SCAN_MASK|ATDCTL5_CC_MASK|ATDCTL5_CB_MASK);

/* AD中斷致能暫存器:禁止所有通道數字輸入緩衝 */
ATDDIEN = 0x00;

PMFCFG0 = 0x09;   //PWM暫存器0為設定全波和獨立PWM產生器
PMFCFG1 = 0x81;   //設定PWM為高波開始
PMFCFG2 = 0x00;   //遮蔽位元0x00全部都不遮蔽
PMFCFG3 = 0x00;   //
PMFOUTC = 0x00;   //PWM0 bit can be controled by software
PMFOUTB = 0x00;   //PWM0 active
PMFCCTL = 0x00;
PMFVAL0H = 0x00;   //PWM period clock
PMFVAL0L = 0x00;  //PWM period clock
PMFMODAH = 0x00;   //
PMFMODAL = 0x00;   //

PMFFQCA = 0x07;   //PWM Frequency mode = Fbus/8
PMFCNTAH = 0x00;
PMFCNTAL = 0x00;
    for(;:smileywink:{
PMFMODAL = PMFMODAL+1;
for(i=0;i<=1000;i++);
if(PMFMODAL==0xFF){
PMFMODAL==0x00;;
}
if(PMFMODAL%6==0){
PMFENCA = 0x80;            //設定讀取HI-LOW
}
else{
PMFENCA = 0x02;
}
LED_TOGGLE(D23);
AD_wDataH = ATDDR0H;
PTT = AD_wDataH ;

if (ATDSTAT0_SCF!=0){
//LED_ON(D28);  

  } /* wait forever */
}

0 Kudos
Reply