<!clock: {"ALL" : "TMR0" };
  pin:   {"TIMER0OutputPinRadio":{"TIMER_TOUT_PIN_FROM_TX": "TM0",
								  "TIMER_TOUT_PIN_FROM_TX_EXT": "TM0_EXT"},
		  "TPWM0OutputPinRadio":{"TPWM_TOUT_PIN_FROM_TX": "TM0",
								 "TPWM_TOUT_PIN_FROM_TX_EXT": "TM0_EXT"},
		  "TIMER0EventCountCheckbox":{"1": "TM0"},
		  "TIMER0CaptureSourceSelect":{"TIMER0_CAP_FROM_EXTERNAL": "TM0_EXT"},
		  "ALL":[""]};
!>
<!filter:{"M252_G": {  "TM0_ACMP_SUPPORT":"1", "TM0_DAC_SUPPORT":"1", "TM0_TK_SUPPORT":"0"        },
          "M252_E": {  "TM0_ACMP_SUPPORT":"1", "TM0_DAC_SUPPORT":"0", "TM0_TK_SUPPORT":"0"        },
          "M252_D": {  "TM0_ACMP_SUPPORT":"1", "TM0_DAC_SUPPORT":"0", "TM0_TK_SUPPORT":"0"        },
          "M252_C": {  "TM0_ACMP_SUPPORT":"0", "TM0_DAC_SUPPORT":"0", "TM0_TK_SUPPORT":"0"        },
          "M254_E": {  "TM0_ACMP_SUPPORT":"1", "TM0_DAC_SUPPORT":"0", "TM0_TK_SUPPORT":"0"        },
          "M256_E": {  "TM0_ACMP_SUPPORT":"1", "TM0_DAC_SUPPORT":"0", "TM0_TK_SUPPORT":"1"        },
          "M258_E": {  "TM0_ACMP_SUPPORT":"1", "TM0_DAC_SUPPORT":"0", "TM0_TK_SUPPORT":"1"        },
          "M254_D": {  "TM0_ACMP_SUPPORT":"1", "TM0_DAC_SUPPORT":"0", "TM0_TK_SUPPORT":"0"        },
          "M256_D": {  "TM0_ACMP_SUPPORT":"1", "TM0_DAC_SUPPORT":"0", "TM0_TK_SUPPORT":"1"        },
          "M254_G": {  "TM0_ACMP_SUPPORT":"1", "TM0_DAC_SUPPORT":"1", "TM0_TK_SUPPORT":"0"        },
          "M256_G": {  "TM0_ACMP_SUPPORT":"1", "TM0_DAC_SUPPORT":"1", "TM0_TK_SUPPORT":"1"        },
          "M258_G": {  "TM0_ACMP_SUPPORT":"1", "TM0_DAC_SUPPORT":"1", "TM0_TK_SUPPORT":"1"        }};!>

/*--------------------------------------------------------------------------*/
/* TIMER0 Configuration                                                     */
/*--------------------------------------------------------------------------*/
#define NUCODEGEN_TIMER0_FUNC_TIMER		0
#define NUCODEGEN_TIMER0_FUNC_PWM		1

#define NUCODEGEN_TIMER0_FUNC			<!id:TIMER0FUNCRadio;
										type:radio;
										label:Select TIMER0 function;
										data:NUCODEGEN_TIMER0_FUNC_TIMER;
										default:NUCODEGEN_TIMER0_FUNC_TIMER;
										enum:[NUCODEGEN_TIMER0_FUNC_TIMER, NUCODEGEN_TIMER0_FUNC_PWM];
										optionLabels:[Timer function, Timer Pwm function];
										dependencies:none;
										dependenciesOption:none;!>

#if (NUCODEGEN_TIMER0_FUNC == NUCODEGEN_TIMER0_FUNC_TIMER)
#define TIMER0_MODE						<!id:TIMER0ModeRadio;
										type:radio;
										label:Select TIMER0 operation mode;
										data:TIMER_ONESHOT_MODE;
										default:TIMER_ONESHOT_MODE;
										enum:[TIMER_ONESHOT_MODE, TIMER_PERIODIC_MODE, TIMER_TOGGLE_MODE, TIMER_CONTINUOUS_MODE];
										optionLabels:[One-shot, Periodic, Toggle, Continuous counting];
										dependencies:TIMER0FUNCRadio;
										dependenciesOption:NUCODEGEN_TIMER0_FUNC_TIMER;
										groupId:Timer_Common;
										groupName:Timer common configuration;!>

#define NUCODEGEN_TIMER0_TOUT_PIN		<!id:TIMER0OutputPinRadio;
										type:radio;
										label:Select TIMER0 output pin;
										data:TIMER_TOUT_PIN_FROM_TX;
										default:TIMER_TOUT_PIN_FROM_TX;
										enum:[TIMER_TOUT_PIN_FROM_TX, TIMER_TOUT_PIN_FROM_TX_EXT];
										optionLabels:[Output pin from TX, Output pin from TX_EXT];
										dependencies:TIMER0ModeRadio;
										dependenciesOption:TIMER_TOGGLE_MODE;
										groupId:Timer_Common;!>

#define TIMER0_FREQ						<!id:TIMER0FreqInteger;
										type:integer;
										label:Set TIMER0 frequency;
										data:1000000;
										default:1000000;
										helper:Enter your TIMER0 frequency 1 ~ Source Clocks/2(Hz);
										minimum:1;
										maximum:24000000;
										dependencies:TIMER0FUNCRadio;
										dependenciesOption:NUCODEGEN_TIMER0_FUNC_TIMER;
										groupId:Timer_Common;!>

#define NUCODEGEN_TIMER0_VALUE			<!id:TIMER0SetValueCheckbox;
										type:checkbox;
										label:Enable TIMER0 set prescale & compared value;
										data:0;
										default:0;
										helper:Will change TIMER0 frequency;
										enum:[1];
										optionLabels:[<br>];
										dependencies:TIMER0FUNCRadio;
										dependenciesOption:NUCODEGEN_TIMER0_FUNC_TIMER;
										groupId:Timer_Common;!>

#if NUCODEGEN_TIMER0_VALUE
	#define TIMER0_PRESCALE_VALUE		<!id:TIMER0PrescaleInteger;
										type:integer;
										label:TIMER0 prescale value;
										data:5;
										default:5;
										helper:Enter your TIMER0 prescale value(dec);
										minimum:0;
										maximum:255;
										dependencies:TIMER0SetValueCheckbox;
										dependenciesOption:1;
										groupId:Timer_Common;!>
	#define TIMER0_CMP_VALUE			<!id:TIMER0CMPHexText;
										type:hextext;
										label:TIMER0 compared value;
										data:0x5A5A5A;
										default:0x5A5A5A;
										helper:Enter your TIMER0 compared value(hex);
										minimum:0x2;
										maximum:0xFFFFFF;
										dependencies:TIMER0SetValueCheckbox;
										dependenciesOption:1;
										groupId:Timer_Common;!>
#endif //NUCODEGEN_TIMER0_VALUE

#define NUCODEGEN_TIMER0_WAKEUP			<!id:TIMER0WakeUpCheckbox;
										type:checkbox;
										label:Enable TIMER0 wake-up;
										data:0;
										default:0;
										enum:[1];
										optionLabels:[<br>];
										dependencies:TIMER0FUNCRadio;
										dependenciesOption:NUCODEGEN_TIMER0_FUNC_TIMER;
										groupId:Timer_Common;!>

#define NUCODEGEN_TIMER0_INT			<!id:TIMER0IntCheckbox;
										type:checkbox;
										label:Enable TIMER0 time-out interrupt;
										data:0;
										default:0;
										enum:[1];
										optionLabels:[<br>];
										dependencies:TIMER0FUNCRadio;
										dependenciesOption:NUCODEGEN_TIMER0_FUNC_TIMER;
										groupId:Timer_Common;!>

#define NUCODEGEN_TIMER0_EVENT_CNT		<!id:TIMER0EventCountCheckbox;
										type:checkbox;
										label:Enable TIMER0 event counting;
										data:0;
										default:0;
										enum:[1];
										optionLabels:[<br>];
										dependencies:TIMER0ModeRadio;
										dependenciesOption:TIMER_ONESHOT_MODE|TIMER_PERIODIC_MODE|TIMER_CONTINUOUS_MODE;
										groupId:Event_Count;
										groupName:Event count configuration;
                                        filterExp:PB_dot5==1 or PC_dot7==1;!>

#define NUCODEGEN_TIMER0_COUNTER_PHASE	<!id:TIMER0PhaseRadio;
										type:radio;
										label:Select TIMER0 external count phase;
										data:TIMER_COUNTER_EVENT_FALLING;
										default:TIMER_COUNTER_EVENT_FALLING;
										enum:[TIMER_COUNTER_EVENT_FALLING, TIMER_COUNTER_EVENT_RISING];
										optionLabels:[Event falling edge, Event rising edge];
										dependencies:TIMER0EventCountCheckbox;
										dependenciesOption:1;
										groupId:Event_Count;
                                        filterExp:PB_dot5==1 or PC_dot7==1;!>

#define NUCODEGEN_TIMER0_EVENT_CNTDB	<!id:TIMER0EventCountDebounceCheckbox;
										type:checkbox;
										label:Enable TIMER0 event counting de-bounce;
										data:0;
										default:0;
										enum:[1];
										optionLabels:[<br>];
										dependencies:TIMER0EventCountCheckbox;
										dependenciesOption:1;
										groupId:Event_Count;
                                        filterExp:PB_dot5==1 or PC_dot7==1;!>

#define NUCODEGEN_TIMER0_CAP			<!id:TIMER0CaptureCheckbox;
										type:checkbox;
										label:Enable TIMER0 capture;
										data:0;
										default:0;
										enum:[1];
										optionLabels:[<br>];
										dependencies:TIMER0ModeRadio;
										dependenciesOption:TIMER_ONESHOT_MODE|TIMER_PERIODIC_MODE|TIMER_CONTINUOUS_MODE;
										groupId:Capture;
										groupName:Capture configuration;!>

#if NUCODEGEN_TIMER0_CAP

#define NUCODEGEN_TIMER0_CAP_SRC		<!id:TIMER0CaptureSourceSelect;
										type:select;
										label:Select TIMER0 capture trigger source;
										data:TIMER_CAPTURE_FROM_EXTERNAL;
										default:TIMER_CAPTURE_FROM_EXTERNAL;
										enum:[TIMER_CAPTURE_FROM_EXTERNAL, TIMER_CAPTURE_FROM_ACMP0, TIMER_CAPTURE_FROM_ACMP1, TIMER_CAPTURE_FROM_HXT, TIMER_CAPTURE_FROM_LXT, TIMER_CAPTURE_FROM_HIRC, TIMER_CAPTURE_FROM_LIRC, TIMER_CAPTURE_FROM_MIRC];
										optionLabels:[Capture source from external, Internal source from ACMP0, Internal source from ACMP1, Internal source from HXT, Internal source from LXT, Internal source from HIRC, Internal source from LIRC, Internal source from MIRC];
										dependencies:TIMER0CaptureCheckbox;
										dependenciesOption:1;
										groupId:Capture;
										filterExp:TM0_ACMP_SUPPORT>0;
										filterDefault: false;!><!id:TIMER0CaptureSourceSelect1;
										type:select;
										label:Select TIMER0 capture trigger source;
										data:TIMER_CAPTURE_FROM_EXTERNAL;
										default:TIMER_CAPTURE_FROM_EXTERNAL;
										enum:[TIMER_CAPTURE_FROM_EXTERNAL, TIMER_CAPTURE_FROM_HXT, TIMER_CAPTURE_FROM_LXT, TIMER_CAPTURE_FROM_HIRC, TIMER_CAPTURE_FROM_LIRC, TIMER_CAPTURE_FROM_MIRC];
										optionLabels:[Capture source from external, Internal source from HXT, Internal source from LXT, Internal source from HIRC, Internal source from LIRC, Internal source from MIRC];
										dependencies:TIMER0CaptureCheckbox;
										dependenciesOption:1;
										groupId:Capture;
										filterExp:TM0_ACMP_SUPPORT==0;
										filterDefault: false;!>
#endif //NUCODEGEN_TIMER0_CAP

#define NUCODEGEN_TIMER0_CAP_EDGE		<!id:TIMER0CaptureEdgeSelect;
										type:select;
										label:Select TIMER0 capture edge detect;
										data:TIMER_CAPTURE_EVENT_FALLING;
										default:TIMER_CAPTURE_EVENT_FALLING;
										enum:[TIMER_CAPTURE_EVENT_FALLING, TIMER_CAPTURE_EVENT_RISING, TIMER_CAPTURE_EVENT_FALLING_RISING, TIMER_CAPTURE_EVENT_RISING_FALLING, TIMER_CAPTURE_EVENT_GET_LOW_PERIOD, TIMER_CAPTURE_EVENT_GET_HIGH_PERIOD];
										optionLabels:[Capture falling edge, Capture rising edge, Capture both falling and rising edge first at falling edge, Capture both rising and falling edge first at rising edge, Capture first at falling edge follows at rising edge, Capture first at rising edge follows at falling edge];
										dependencies:TIMER0CaptureCheckbox;
										dependenciesOption:1;
										groupId:Capture;!>

#define NUCODEGEN_TIMER0_CAP_MODE		<!id:TIMER0CaptureModeRadio;
										type:radio;
										label:Select TIMER0 capture mode;
										data:TIMER_CAPTURE_FREE_COUNTING_MODE;
										default:TIMER_CAPTURE_FREE_COUNTING_MODE;
										enum:[TIMER_CAPTURE_FREE_COUNTING_MODE, TIMER_CAPTURE_COUNTER_RESET_MODE];
										optionLabels:[Free counting, Counter reset];
										dependencies:TIMER0CaptureCheckbox;
										dependenciesOption:1;
										groupId:Capture;!>

#define NUCODEGEN_TIMER0_CAPDB			<!id:TIMER0CaptureDebounceCheckbox;
										type:checkbox;
										label:Enable TIMER0 capture de-bounce;
										data:0;
										default:0;
										enum:[1];
										optionLabels:[<br>];
										dependencies:TIMER0CaptureCheckbox;
										dependenciesOption:1;
										groupId:Capture;!>

#define NUCODEGEN_TIMER0_CAP_INT		<!id:TIMER0CaptureIntCheckbox;
										type:checkbox;
										label:Enable TIMER0 capture interrupt;
										data:0;
										default:0;
										enum:[1];
										optionLabels:[<br>];
										dependencies:TIMER0CaptureCheckbox;
										dependenciesOption:1;
										groupId:Capture;!>

#define NUCODEGEN_TIMER0_TRG			<!id:TIMER0TriggerCheckbox;
										type:checkbox;
										label:Enable TIMER0 trigger;
										data:0;
										default:0;
										enum:[1];
										optionLabels:[<br>];
										dependencies:TIMER0FUNCRadio;
										dependenciesOption:NUCODEGEN_TIMER0_FUNC_TIMER;
										groupId:Timer_Trigger;
										groupName:Timer trigger configuration;!>

#define NUCODEGEN_TIMER0_TRG_SRC		<!id:TIMER0TriggerConditionRadio;
										type:radio;
										label:TIMER0 trigger condition select;
										data:TIMER_TRGSEL_TIMEOUT_EVENT;
										default:TIMER_TRGSEL_TIMEOUT_EVENT;
										enum:[TIMER_TRGSEL_TIMEOUT_EVENT, TIMER_TRGSEL_CAPTURE_EVENT];
										optionLabels:[Time-out event, Capture event];
										dependencies:TIMER0TriggerCheckbox;
										dependenciesOption:1;
										groupId:Timer_Trigger;!>

#define NUCODEGEN_TIMER0_TRG_TARGET		<!id:TIMER0TriggerTargetCheckbox;
										type:checkbox;
										label:Select TIMER0 trigger target;
										data:0;
										default:0;
										sort:false;
										enum:[TIMER_TRGCTL_TRGPDMA_Msk, TIMER_TRGCTL_TRGDAC_Msk, TIMER_TRGCTL_TRGEADC_Msk, TIMER_TRGCTL_TRGPWM_Msk, TIMER_TRGCTL_TRGTK_Msk];
										optionLabels:[TIMER0 trigger PDMA, TIMER0 trigger DAC, TIMER0 trigger EADC, TIMER0 trigger PWM&BPWM, TIMER0 time-out trigger Touch-key];
										dependencies:TIMER0TriggerCheckbox;
										dependenciesOption:1;
										groupId:Timer_Trigger;
										filterExp:TM0_DAC_SUPPORT>0 and TM0_TK_SUPPORT>0;
										filterDefault: false;!><!id:TIMER0TriggerTargetCheckbox1;
										type:checkbox;
										label:Select TIMER0 trigger target;
										data:0;
										default:0;
										sort:false;
										enum:[TIMER_TRGCTL_TRGPDMA_Msk, TIMER_TRGCTL_TRGEADC_Msk, TIMER_TRGCTL_TRGPWM_Msk, TIMER_TRGCTL_TRGTK_Msk];
										optionLabels:[TIMER0 trigger PDMA, TIMER0 trigger EADC, TIMER0 trigger PWM&BPWM, TIMER0 time-out trigger Touch-key];
										dependencies:TIMER0TriggerCheckbox;
										dependenciesOption:1;
										groupId:Timer_Trigger;
										filterExp:TM0_DAC_SUPPORT==0 and TM0_TK_SUPPORT>0;
										filterDefault: false;!><!id:TIMER0TriggerTargetCheckbox2;
										type:checkbox;
										label:Select TIMER0 trigger target;
										data:0;
										default:0;
										sort:false;
										enum:[TIMER_TRGCTL_TRGPDMA_Msk, TIMER_TRGCTL_TRGDAC_Msk, TIMER_TRGCTL_TRGEADC_Msk, TIMER_TRGCTL_TRGPWM_Msk];
										optionLabels:[TIMER0 trigger PDMA, TIMER0 trigger DAC, TIMER0 trigger EADC, TIMER0 trigger PWM&BPWM];
										dependencies:TIMER0TriggerCheckbox;
										dependenciesOption:1;
										groupId:Timer_Trigger;
										filterExp:TM0_DAC_SUPPORT>0 and TM0_TK_SUPPORT==0;
										filterDefault: false;!><!id:TIMER0TriggerTargetCheckbox3;
										type:checkbox;
										label:Select TIMER0 trigger target;
										data:0;
										default:0;
										sort:false;
										enum:[TIMER_TRGCTL_TRGPDMA_Msk, TIMER_TRGCTL_TRGEADC_Msk, TIMER_TRGCTL_TRGPWM_Msk];
										optionLabels:[TIMER0 trigger PDMA, TIMER0 trigger EADC, TIMER0 trigger PWM&BPWM];
										dependencies:TIMER0TriggerCheckbox;
										dependenciesOption:1;
										groupId:Timer_Trigger;
										filterExp:TM0_DAC_SUPPORT==0 and TM0_TK_SUPPORT==0;
										filterDefault: false;!>

#endif //(NUCODEGEN_TIMER0_FUNC == NUCODEGEN_TIMER0_FUNC_TIMER)------------------------------------------------------------------------------------------------------

#if (NUCODEGEN_TIMER0_FUNC == NUCODEGEN_TIMER0_FUNC_PWM)
#define NUCODEGEN_TPWM0_CONFIG_FREQ_DUTY	0
#define NUCODEGEN_TPWM0_CONFIG_VALUE		1

#define NUCODEGEN_TPWM0_CONFIG			<!id:TPWM0ConfigRadio;
										type:radio;
										label:TPWM0 config;
										data:NUCODEGEN_TPWM0_CONFIG_FREQ_DUTY;
										default:NUCODEGEN_TPWM0_CONFIG_FREQ_DUTY;
										enum:[NUCODEGEN_TPWM0_CONFIG_FREQ_DUTY, NUCODEGEN_TPWM0_CONFIG_VALUE];
										optionLabels:[Config by frequency & duty, Config by value];
										dependencies:TIMER0FUNCRadio;
										dependenciesOption:NUCODEGEN_TIMER0_FUNC_PWM;
										groupId:TPWM_Common;
										groupName:TPWM common configuration;!>

#if (NUCODEGEN_TPWM0_CONFIG == NUCODEGEN_TPWM0_CONFIG_FREQ_DUTY)
	#define TPWM0_FREQ					<!id:TPWM0OutputFreqInteger;
										type:integer;
										label:Set TPWM0 output frequency;
										data:1000000;
										default:1000000;
										helper:Enter your TPWM0 output frequency, 3 ~ Source Clocks/2(Hz);
										minimum:3;
										maximum:24000000;
										dependencies:TPWM0ConfigRadio;
										dependenciesOption:NUCODEGEN_TPWM0_CONFIG_FREQ_DUTY;
										groupId:TPWM_Common;!>

	#define TPWM0_DUTY					<!id:TPWM0OutputDutyInteger;
										type:integer;
										label:Set TPWM0 output duty;
										data:50;
										default:50;
										helper:Enter your TPWM0 output duty, 0~100(%);
										minimum:0;
										maximum:100;
										dependencies:TPWM0ConfigRadio;
										dependenciesOption:NUCODEGEN_TPWM0_CONFIG_FREQ_DUTY;
										groupId:TPWM_Common;!>
#endif //(NUCODEGEN_TPWM0_CONFIG == NUCODEGEN_TPWM0_CONFIG_FREQ_DUTY)

#if (NUCODEGEN_TPWM0_CONFIG == NUCODEGEN_TPWM0_CONFIG_VALUE)
	#define TPWM0_PRESCALE_VALUE		<!id:TPWM0PrescaleInteger;
										type:integer;
										label:TPWM0 prescale value;
										data:5;
										default:5;
										helper:Enter your TPWM0 prescale value;
										minimum:0;
										maximum:255;
										dependencies:TPWM0ConfigRadio;
										dependenciesOption:NUCODEGEN_TPWM0_CONFIG_VALUE;
										groupId:TPWM_Common;!>

	#define TPWM0_PERIOD_VALUE			<!id:TPWM0PeriodHexText;
										type:hextext;
										label:TPWM0 period value;
										data:0x5A5A;
										default:0x5A5A;
										helper:Enter your TPWM0 period value;
										minimum:0;
										maximum:0xFFFF;
										dependencies:TPWM0ConfigRadio;
										dependenciesOption:NUCODEGEN_TPWM0_CONFIG_VALUE;
										groupId:TPWM_Common;!>

	#define TPWM0_CMP_VALUE				<!id:TPWM0CMPHexText;
										type:hextext;
										label:TPWM0 compared value;
										data:0x5A5A;
										default:0x5A5A;
										helper:Enter your TPWM0 compared value;
										minimum:0;
										maximum:0xFFFF;
										dependencies:TPWM0ConfigRadio;
										dependenciesOption:NUCODEGEN_TPWM0_CONFIG_VALUE;
										groupId:TPWM_Common;!>
#endif //(NUCODEGEN_TPWM0_CONFIG == NUCODEGEN_TPWM0_CONFIG_VALUE)

#define NUCODEGEN_TPWM0_WAKEUP			<!id:TPWM0WakeUpCheckbox;
										type:checkbox;
										label:Enable TPWM0 wake-up;
										data:0;
										default:0;
										enum:[1];
										optionLabels:[<br>];
										dependencies:TIMER0FUNCRadio;
										dependenciesOption:NUCODEGEN_TIMER0_FUNC_PWM;
										groupId:TPWM_Common;!>

#define NUCODEGEN_TPWM0_PERIOD_INT		<!id:TPWM0PeriodIntCheckbox;
										type:checkbox;
										label:TPWM0 interrupt;
										data:0;
										default:0;
										enum:[1];
										optionLabels:[Enable TPWM0 period point interrupt];
										dependencies:TIMER0FUNCRadio;
										dependenciesOption:NUCODEGEN_TIMER0_FUNC_PWM;
										groupId:TPWM_Common;!>

#define NUCODEGEN_TPWM0_CMP_UP_INT		<!id:TPWM0CompareIntCheckbox;
										type:checkbox;
										label:<br>;
										data:0;
										default:0;
										enum:[1];
										optionLabels:[Enable TPWM0 compare interrupt];
										dependencies:TIMER0FUNCRadio;
										dependenciesOption:NUCODEGEN_TIMER0_FUNC_PWM;
										groupId:TPWM_Common;!>

#define NUCODEGEN_TPWM0_OUTPUT			<!id:TPWM0OutputCheckbox;
										type:checkbox;
										label:Enable TPWM0 output;
										data:0;
										default:0;
										enum:[1];
										optionLabels:[<br>];
										dependencies:TIMER0FUNCRadio;
										dependenciesOption:NUCODEGEN_TIMER0_FUNC_PWM;
										groupId:TPWM_Output;
										groupName:TPWM output configuration;!>

#define NUCODEGEN_TPWM0_TOUT_PIN		<!id:TPWM0OutputPinRadio;
										type:radio;
										label:Select TPWM0 output pin;
										data:TPWM_TOUT_PIN_FROM_TX;
										default:TPWM_TOUT_PIN_FROM_TX;
										enum:[TPWM_TOUT_PIN_FROM_TX, TPWM_TOUT_PIN_FROM_TX_EXT];
										optionLabels:[Output pin from TX, Output pin from TX_EXT];
										dependencies:TPWM0OutputCheckbox;
										dependenciesOption:1;
										groupId:TPWM_Output;!>

#define NUCODEGEN_TPWM0_OUT_INV			<!id:TPWM0OutputInverseCheckbox;
										type:checkbox;
										label:Enable TPWM0 output inverse;
										data:0;
										default:0;
										enum:[1];
										optionLabels:[<br>];
										dependencies:TPWM0OutputCheckbox;
										dependenciesOption:1;
										groupId:TPWM_Output;!>

#define NUCODEGEN_TPWM0_TRG				<!id:TPWM0TriggerCheckbox;
										type:checkbox;
										label:Enable TPWM0 trigger;
										data:0;
										default:0;
										enum:[1];
										optionLabels:[<br>];
										dependencies:TIMER0FUNCRadio;
										dependenciesOption:NUCODEGEN_TIMER0_FUNC_PWM;
										groupId:TPWM_Trigger;
										groupName:TPWM trigger configuration;!>

#define NUCODEGEN_TPWM0_TRG_SRC			<!id:TPWM0TriggerConditionRadio;
										type:radio;
										label:Select TPWM0 trigger condition;
										data:TPWM_TRIGGER_AT_PERIOD_POINT;
										default:TPWM_TRIGGER_AT_PERIOD_POINT;
										enum:[TPWM_TRIGGER_AT_PERIOD_POINT, TPWM_TRIGGER_AT_COMPARE_POINT, TPWM_TRIGGER_AT_PERIOD_OR_COMPARE_POINT];
										optionLabels:[Period point, Compare point, Period or compare point];
										dependencies:TPWM0TriggerCheckbox;
										dependenciesOption:1;
										groupId:TPWM_Trigger;!>

#define NUCODEGEN_TPWM0_TRG_TARGET		<!id:TPWM0TriggerTargetCheckbox;
										type:checkbox;
										label:Select TPWM0 trigger target;
										data:0;
										default:0;
										sort:false;
										enum:[TIMER_PWMTRGCTL_PWMTRGPDMA_Msk, TIMER_PWMTRGCTL_PWMTRGDAC_Msk, TIMER_PWMTRGCTL_PWMTRGEADC_Msk];
										optionLabels:[TPWM0 trigger PDMA, TPWM0 trigger DAC, TPWM0 trigger EADC];
										dependencies:TPWM0TriggerCheckbox;
										dependenciesOption:1;
										groupId:TPWM_Trigger;
										filterExp:TM0_DAC_SUPPORT>0;
										filterDefault: false;!><!id:TPWM0TriggerTargetCheckbox1;
										type:checkbox;
										label:Select TPWM0 trigger target;
										data:0;
										default:0;
										sort:false;
										enum:[TIMER_PWMTRGCTL_PWMTRGPDMA_Msk, TIMER_PWMTRGCTL_PWMTRGEADC_Msk];
										optionLabels:[TPWM0 trigger PDMA, TPWM0 trigger EADC];
										dependencies:TPWM0TriggerCheckbox;
										dependenciesOption:1;
										groupId:TPWM_Trigger;
										filterExp:TM0_DAC_SUPPORT==0;
										filterDefault: false;!>
#endif //(NUCODEGEN_TIMER0_FUNC == NUCODEGEN_TIMER0_FUNC_PWM)
