⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pwm12.h

📁 Mplab C30编译器
💻 H
📖 第 1 页 / 共 4 页
字号:
/**********************************************************************/
/*              Header for PWM module library functions               */
/**********************************************************************/

#if defined(__dsPIC30F__)
#include <p30fxxxx.h>
#elif defined(__dsPIC33F__)
#include <p33Fxxxx.h>
#else
#error "This file is for 30F or 33F devices only!"
#endif


#ifndef __PWM12_H
#define __PWM12_H

#ifdef _PWM1IF

/* List of SFRs for PWM1 */
/* This list contains the SFRs with default (POR) values to be used for configuring PWM */
/* The user can modify this based on the requirement */

#define P1TCON_VALUE             0x0000
#define P1TMR_VALUE              0x0000
#define P1TPER_VALUE             0x0000
#define P1SECMP_VALUE	         0x0000

#define PWM1CON2_VALUE           0x0000
#define P1DTCON1_VALUE           0x0000
#define P1DTCON2_VALUE           0x0000
#define P1FLTACON_VALUE          0x0000
#define P1FLTBCON_VALUE          0x0000

#define P1DC1_VALUE              0x0000
#define P1DC2_VALUE              0x0000
#define P1DC3_VALUE              0x0000
#define P1DC4_VALUE              0x0000

#ifdef _FLTBIF

#define PWM1CON1_VALUE           0x00FF
#define P1OVDCON_VALUE           0xFF00

#else

#define PWM1CON1_VALUE           0x0077
#define P1OVDCON_VALUE           0x3F00

#endif

/* P1TCON Configuration Bit Definitions */

#define PWM1_EN                  0xA0FF  /*Module enable*/
#define PWM1_DIS                 0x20FF  /*Module disable*/

#define PWM1_IDLE_STOP           0xA0FF  /*stop in Idle mode*/
#define PWM1_IDLE_CON            0x80FF  /*operate in Idle mode*/

#define PWM1_OP_SCALE1           0xA00F  /*Out put post scaler 1:1*/
#define PWM1_OP_SCALE2           0xA01F  /*Out put post scaler 1:2*/
#define PWM1_OP_SCALE3           0xA02F  /*Out put post scaler 1:3*/
#define PWM1_OP_SCALE4           0xA03F  /*Out put post scaler 1:4*/
#define PWM1_OP_SCALE5           0xA04F  /*Out put post scaler 1:5*/
#define PWM1_OP_SCALE6           0xA05F  /*Out put post scaler 1:6*/
#define PWM1_OP_SCALE7           0xA06F  /*Out put post scaler 1:7*/
#define PWM1_OP_SCALE8           0xA07F  /*Out put post scaler 1:8*/
#define PWM1_OP_SCALE9           0xA08F  /*Out put post scaler 1:9*/
#define PWM1_OP_SCALE10          0xA09F  /*Out put post scaler 1:10*/
#define PWM1_OP_SCALE11          0xA0AF  /*Out put post scaler 1:11*/
#define PWM1_OP_SCALE12          0xA0BF  /*Out put post scaler 1:12*/
#define PWM1_OP_SCALE13          0xA0CF  /*Out put post scaler 1:13*/
#define PWM1_OP_SCALE14          0xA0DF  /*Out put post scaler 1:14*/
#define PWM1_OP_SCALE15          0xA0EF  /*Out put post scaler 1:15*/
#define PWM1_OP_SCALE16          0xA0FF  /*Out put post scaler 1:16*/

#define PWM1_IPCLK_SCALE1        0xA0F3  /*Input pre scaler 1:1*/
#define PWM1_IPCLK_SCALE4        0xA0F7  /*Input pre scaler 1:4*/
#define PWM1_IPCLK_SCALE16       0xA0FB  /*Input pre scaler 1:16*/
#define PWM1_IPCLK_SCALE64       0xA0FF  /*Input pre scaler 1:64*/

#define PWM1_MOD_FREE            0xA0FC  /*Mode of operation Free Running*/
#define PWM1_MOD_SING            0xA0FD  /*Mode of operation Single shot*/
#define PWM1_MOD_UPDN            0xA0FE  /*Mode of operation Up down */
#define PWM1_MOD_DBL             0xA0FF  /*Mode of operation Updown with double update*/

/* PWM1CON1 Configuration Bit Definitions */


#define PWM1_MOD3_COMP           0x0BFF  /*3th channel in complimentary mode*/
#define PWM1_MOD2_COMP           0x0DFF  /*2th channel in complimentary mode*/
#define PWM1_MOD1_COMP           0x0EFF  /*1th channel in complimentary mode*/


#define PWM1_MOD3_IND            0x0FFF  /*3th channel in independant mode*/
#define PWM1_MOD2_IND            0x0FFF  /*2th channel in independant mode*/
#define PWM1_MOD1_IND            0x0FFF  /*1th channel in independant mode*/


#define PWM1_PEN3H               0x0FFF  /*H of channel 3 works as PWM*/
#define PWM1_PDIS3H              0x0FBF  /*H of channel 3 works as IO*/

#define PWM1_PEN2H               0x0FFF  /*H of channel 2 works as PWM*/
#define PWM1_PDIS2H              0x0FDF  /*H of channel 2 works as IO*/

#define PWM1_PEN1H               0x0FFF  /*H of channel 1 works as PWM*/
#define PWM1_PDIS1H              0x0FEF  /*H of channel 1 works as IO*/

#define PWM1_PEN3L               0x0FFF  /*L of channel 3 works as PWM*/
#define PWM1_PDIS3L              0x0FFB  /*L of channel 3 works as IO*/

#define PWM1_PEN2L               0x0FFF  /*L of channel 2 works as PWM*/
#define PWM1_PDIS2L              0x0FFD  /*L of channel 2 works as IO*/

#define PWM1_PEN1L               0x0FFF  /*L of channel 1 works as PWM*/
#define PWM1_PDIS1L              0x0FFE  /*L of channel 1 works as IO*/

/* PWM1CON2 Configuration Bit Definitions */

#define PWM1_SEVOPS1             0x0003  /*Special event post scaler 1:1*/
#define PWM1_SEVOPS2             0x0103  /*Special event post scaler 1:2*/
#define PWM1_SEVOPS3             0x0203  /*Special event post scaler 1:3*/
#define PWM1_SEVOPS4             0x0303  /*Special event post scaler 1:4*/
#define PWM1_SEVOPS5             0x0403  /*Special event post scaler 1:5*/
#define PWM1_SEVOPS6             0x0503  /*Special event post scaler 1:6*/
#define PWM1_SEVOPS7             0x0603  /*Special event post scaler 1:7*/
#define PWM1_SEVOPS8             0x0703  /*Special event post scaler 1:8*/
#define PWM1_SEVOPS9             0x0803  /*Special event post scaler 1:9*/
#define PWM1_SEVOPS10            0x0903  /*Special event post scaler 1:10*/
#define PWM1_SEVOPS11            0x0A03  /*Special event post scaler 1:11*/
#define PWM1_SEVOPS12            0x0B03  /*Special event post scaler 1:12*/
#define PWM1_SEVOPS13            0x0C03  /*Special event post scaler 1:13*/
#define PWM1_SEVOPS14            0x0D03  /*Special event post scaler 1:14*/
#define PWM1_SEVOPS15            0x0E03  /*Special event post scaler 1:15*/
#define PWM1_SEVOPS16            0x0F03  /*Special event post scaler 1:16*/

#define PWM1_OSYNC_PWM           0x0F03  /*over ride syncronised with PWM clk*/
#define PWM1_OSYNC_TCY           0x0F01  /*over ride syncronised with sys clk*/

#define PWM1_UDIS                0x0F03  /*Update of PDCs and PTPER disabled*/
#define PWM1_UEN                 0x0F02  /*Update of PDCs and PTPER enabled*/

/* P1DTCON1 Configuration Bit Definitions */

#define PWM1_DTBPS8              0xFFFF  /*Dead B time PreScaler = 8*/
#define PWM1_DTBPS4              0xBFFF  /*Dead B time PreScaler = 4*/
#define PWM1_DTBPS2              0x7FFF  /*Dead B time PreScaler = 2*/
#define PWM1_DTBPS1              0x3FFF  /*Dead B time PreScaler = 1*/
                                                        
#define PWM1_DTAPS8              0xFFFF  /*Dead A time PreScaler = 8*/
#define PWM1_DTAPS4              0xFFBF  /*Dead A time PreScaler = 4*/
#define PWM1_DTAPS2              0xFF7F  /*Dead A time PreScaler = 2*/
#define PWM1_DTAPS1              0xFF3F  /*Dead A time PreScaler = 1*/

/* 6-bit dead time value bits for Dead Time Unit A */
#define PWM1_DTA0                0xFFC0  /*Dead time Unit A PreScale select value */
#define PWM1_DTA1                0xFFC1  /*Dead time Unit A PreScale select value */
#define PWM1_DTA2                0xFFC2  /*Dead time Unit A PreScale select value */
#define PWM1_DTA3                0xFFC3  /*Dead time Unit A PreScale select value */
#define PWM1_DTA4                0xFFC4  /*Dead time Unit A PreScale select value */
#define PWM1_DTA5                0xFFC5  /*Dead time Unit A PreScale select value */
#define PWM1_DTA6                0xFFC6  /*Dead time Unit A PreScale select value */
#define PWM1_DTA7                0xFFC7  /*Dead time Unit A PreScale select value */
#define PWM1_DTA8                0xFFC8  /*Dead time Unit A PreScale select value */
#define PWM1_DTA9                0xFFC9  /*Dead time Unit A PreScale select value */
#define PWM1_DTA10               0xFFCA  /*Dead time Unit A PreScale select value */
#define PWM1_DTA11               0xFFCB  /*Dead time Unit A PreScale select value */
#define PWM1_DTA12               0xFFCC  /*Dead time Unit A PreScale select value */
#define PWM1_DTA13               0xFFCD  /*Dead time Unit A PreScale select value */
#define PWM1_DTA14               0xFFCE  /*Dead time Unit A PreScale select value */
#define PWM1_DTA15               0xFFCF  /*Dead time Unit A PreScale select value */
#define PWM1_DTA16               0xFFD0  /*Dead time Unit A PreScale select value */
#define PWM1_DTA17               0xFFD1  /*Dead time Unit A PreScale select value */
#define PWM1_DTA18               0xFFD2  /*Dead time Unit A PreScale select value */
#define PWM1_DTA19               0xFFD3  /*Dead time Unit A PreScale select value */
#define PWM1_DTA20               0xFFD4  /*Dead time Unit A PreScale select value */
#define PWM1_DTA21               0xFFD5  /*Dead time Unit A PreScale select value */
#define PWM1_DTA22               0xFFD6  /*Dead time Unit A PreScale select value */
#define PWM1_DTA23               0xFFD7  /*Dead time Unit A PreScale select value */
#define PWM1_DTA24               0xFFD8  /*Dead time Unit A PreScale select value */
#define PWM1_DTA25               0xFFD9  /*Dead time Unit A PreScale select value */
#define PWM1_DTA26               0xFFDA  /*Dead time Unit A PreScale select value */
#define PWM1_DTA27               0xFFDB  /*Dead time Unit A PreScale select value */
#define PWM1_DTA28               0xFFDC  /*Dead time Unit A PreScale select value */
#define PWM1_DTA29               0xFFDD  /*Dead time Unit A PreScale select value */
#define PWM1_DTA30               0xFFDE  /*Dead time Unit A PreScale select value */
#define PWM1_DTA31               0xFFDF  /*Dead time Unit A PreScale select value */
#define PWM1_DTA32               0xFFE0  /*Dead time Unit A PreScale select value */
#define PWM1_DTA33               0xFFE1  /*Dead time Unit A PreScale select value */
#define PWM1_DTA34               0xFFE2  /*Dead time Unit A PreScale select value */
#define PWM1_DTA35               0xFFE3  /*Dead time Unit A PreScale select value */
#define PWM1_DTA36               0xFFE4  /*Dead time Unit A PreScale select value */
#define PWM1_DTA37               0xFFE5  /*Dead time Unit A PreScale select value */
#define PWM1_DTA38               0xFFE6  /*Dead time Unit A PreScale select value */
#define PWM1_DTA39               0xFFE7  /*Dead time Unit A PreScale select value */
#define PWM1_DTA40               0xFFE8  /*Dead time Unit A PreScale select value */
#define PWM1_DTA41               0xFFE9  /*Dead time Unit A PreScale select value */
#define PWM1_DTA42               0xFFEA  /*Dead time Unit A PreScale select value */
#define PWM1_DTA43               0xFFEB  /*Dead time Unit A PreScale select value */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -