예제 #1
0
void ConfigIntSmpsADCPair5(unsigned int adc_intp, unsigned int adc_intp_priority)
{

    /* Clear the ADC Interrupt status Flags of ADC channels AN11 and AN10 */
	ClearSmpsADCIntPair5();

	/* Enable/Disable the ADC Interrupt of ADC channels AN11 and AN10 */
	SetIntSmpsADCPair5(adc_intp);

	/* Set the priority of ADC interrupt for ADC channels AN11 and AN10 */
	SetPriorityIntSmpsADCPair5(adc_intp_priority);
	
}
예제 #2
0
파일: A36613.c 프로젝트: dparkermit/A36613
void InitializeA36613(void) 
{
  //Timer setup
  T3CON = T3CON_VALUE;
  PR3 = PR3_VALUE_10_MILLISECONDS;
  _T3IF = 0;
  DisableIntT3;

  T1CON = T1CON_VALUE;
  PR1 = PR1_VALUE_10_US;
  _T1IF = 0;
  DisableIntT1;


  //init global variables
  global_data_A36613.heater_set_voltage = 0x0000;
  global_data_A36613.top1_set_voltage = 0; //2V from DAC
  global_data_A36613.top2_set_voltage = 0; //2V from DAC
  global_data_A36613.top1_voltage_monitor = 0x0000;
  global_data_A36613.top2_voltage_monitor = 0x0000;
  global_data_A36613.top1_voltage_feedback = 0;
  global_data_A36613.top2_voltage_feedback = 0;
  global_data_A36613.bias_feedback = 0x0000;
  global_data_A36613.status = 0x80;
  PIN_LED_OPERATIONAL_GREEN = 0;

  //set tris
  TRISB = A36613_TRISB_VALUE;
  TRISC = A36613_TRISC_VALUE;
  TRISD = A36613_TRISD_VALUE;
  TRISE = A36613_TRISE_VALUE;
  TRISF = A36613_TRISF_VALUE;
  TRISG = A36613_TRISG_VALUE;

  //init PWM
  OpenSmpsPWM(PWM_MOD_DIS | PWM_IDLE_CONT | PWM_SEVT_INT_DIS | PWM_PER_UPDATE_BOUND, PWM_PERIOD, INITIAL_PWM_DC, 0x0000); //PWM off, no sync, continue during idle, no sepecial event trigger, update DC on next cycle
  ConfigSmpsPWMInputClkDiv(PWM_INPUT_CLK_DIV1); //Select PWM prescaler of 1:2
  ConfigSmpsPWM1(PWM1_D_CYLE_MDC | PWM1_DT_DIS, PWM1_H_PIN_GPIO | PWM1_L_PIN_EN | PWM1_IO_PIN_PAIR_RED, 0x0000, 0x0000, 0x0000 ); //Master Duty Cycle selection; Dead time function disabled; No interrupts; Use master time base; redundant pai

  //Heater_PID.abcCoefficients = &abcCoefficient[0];    /*Set up pointer to derived coefficients */
  //Heater_PID.controlHistory = &controlHistory[0];     /*Set up pointer to controller history samples */
  //PIDCoeffCalc( &kCoeffs[0], &Heater_PID);
  //PIDInit( &Heater_PID);


  ETMAnalogInitializeInput(&Heater_output_voltage,
            HEATER_VOLTAGE_SCALING_FACTOR,
            OFFSET_ZERO,
            ANALOG_INPUT_NO_CALIBRATION,
            HEATER_OVERVOLTAGE_TRIP,
            HEATER_UNDERVOLTAGE_TRIP,
            NO_TRIP_SCALE,
            NO_FLOOR,
            NO_RELATIVE_COUNTER,
            ABSOLUTE_TRIP_COUNTER);


  ETMAnalogInitializeInput(&Heater1_current,
            HEATER_CURRENT_SCALING_FACTOR,
            OFFSET_ZERO,
            ANALOG_INPUT_NO_CALIBRATION,
            HEATER_OVERCURRENT_TRIP,
            HEATER_UNDERCURRENT_TRIP,
            NO_TRIP_SCALE,
            NO_FLOOR,
            NO_RELATIVE_COUNTER,
            ABSOLUTE_TRIP_COUNTER);  

  ETMAnalogInitializeInput(&Heater2_current,
            HEATER_CURRENT_SCALING_FACTOR,
            OFFSET_ZERO,
            ANALOG_INPUT_NO_CALIBRATION,
            HEATER_OVERCURRENT_TRIP,
            HEATER_UNDERCURRENT_TRIP,
            NO_TRIP_SCALE,
            NO_FLOOR,
            NO_RELATIVE_COUNTER,
            ABSOLUTE_TRIP_COUNTER);  


  SetupLTC265X(&U4_LTC2654, ETM_SPI_PORT_2, FCY_CLK, LTC265X_SPI_2_5_M_BIT, _PIN_RE6, _PIN_RE7);


  InitializeA36613Serial();


  // ---- Configure the ADC Module ------------ //

  ADCON = ADCON_SETTING;             // Configure the high speed ADC module based on H file parameters
  ADPCFG = ADPCFG_SETTING;             // Set which pins are analog and which are digital I/O
  ADCPC0 = ADCPC0_SETTING;             // Set trigger and enable each channel
  ADCPC1  = ADCPC1_SETTING;              // Set trigger and enable each channel
  ADCPC2 = ADCPC2_SETTING;             // Set trigger and enable each channel

  ClearSmpsADCIntPair0();
  ClearSmpsADCIntPair1();
  ClearSmpsADCIntPair2();
  ClearSmpsADCIntPair3();
  ClearSmpsADCIntPair4();
  ClearSmpsADCIntPair5();
  _ADCP0IE = 1;
  _ADCP1IE = 1;
  _ADCP2IE = 1;
  _ADCP3IE = 1;
  _ADCP4IE = 1;
  _ADCP5IE = 1;
  _ADCP0IP = 2;
  _ADCP1IP = 2;
  _ADCP2IP = 2;
  _ADCP3IP = 2;
  _ADCP4IP = 2;
  _ADCP5IP = 2;


  top1_voltage_monitor_accumulator = 0;
  top1_voltage_accumulator_size = 0;
  top2_voltage_monitor_accumulator = 0;
  top1_voltage_feedback_accumulator = 0;
  top1_fdbk_voltage_accumulator_size = 0;
  top2_voltage_feedback_accumulator = 0;
  top2_fdbk_voltage_accumulator_size = 0;
  bias_feedback_accumulator = 0;

  heater_reset_counter = 0;
  

  _ADON = 1; //Turn ADC on

}