1#include "c2000BoardSupport.h"
2#include "F2837xD_device.h"
3#include "F2837xD_Examples.h"
4#include "F2837xD_GlobalPrototypes.h"
5#include "rtwtypes.h"
6#include "TwoPhaseForStuck.h"
7#include "TwoPhaseForStuck_private.h"
8
9void config_ADCB_SOC1()
10{
11 EALLOW;
12 AdcbRegs.ADCSOC1CTL.bit.CHSEL = 3; /* Set SOC1 channel select to ADCIN3*/
13 AdcbRegs.ADCSOC1CTL.bit.TRIGSEL = 5;
14 AdcbRegs.ADCSOC1CTL.bit.ACQPS = 19; /* Set SOC1 S/H Window to 20 ADC Clock Cycles*/
15 AdcbRegs.ADCINTSEL1N2.bit.INT1E = 1; /* Enabled/Disable ADCINT1 interrupt*/
16 AdcbRegs.ADCINTSEL1N2.bit.INT1SEL = 1;/* Setup EOC1 to trigger ADCINT1*/
17 AdcbRegs.ADCINTSEL1N2.bit.INT1CONT = 0;/* Enable/Disable ADCINT1 Continuous mode*/
18 AdcbRegs.ADCINTSOCSEL1.bit.SOC1 = 0; /* SOCx No ADCINT Interrupt Trigger Select.*/
19 AdcbRegs.ADCOFFTRIM.bit.OFFTRIM = AdcbRegs.ADCOFFTRIM.bit.OFFTRIM;/* Set Offset Error Correctino Value*/
20 AdcbRegs.ADCCTL1.bit.INTPULSEPOS = 1;/* Late interrupt pulse trips AdcResults latch*/
21 AdcbRegs.ADCSOCPRICTL.bit.SOCPRIORITY = 0;/* All in round robin mode SOC Priority*/
22 EDIS;
23}
24
25void config_ADCA_SOC0()
26{
27 EALLOW;
28 AdcaRegs.ADCSOC0CTL.bit.CHSEL = 2; /* Set SOC0 channel select to ADCIN2*/
29 AdcaRegs.ADCSOC0CTL.bit.TRIGSEL = 5;
30 AdcaRegs.ADCSOC0CTL.bit.ACQPS = 19; /* Set SOC0 S/H Window to 20 ADC Clock Cycles*/
31 AdcaRegs.ADCINTSEL1N2.bit.INT1E = 1; /* Enabled/Disable ADCINT1 interrupt*/
32 AdcaRegs.ADCINTSEL1N2.bit.INT1SEL = 0;/* Setup EOC0 to trigger ADCINT1*/
33 AdcaRegs.ADCINTSEL1N2.bit.INT1CONT = 0;/* Enable/Disable ADCINT1 Continuous mode*/
34 AdcaRegs.ADCINTSOCSEL1.bit.SOC0 = 0; /* SOCx No ADCINT Interrupt Trigger Select.*/
35 AdcaRegs.ADCOFFTRIM.bit.OFFTRIM = AdcaRegs.ADCOFFTRIM.bit.OFFTRIM;/* Set Offset Error Correctino Value*/
36 AdcaRegs.ADCCTL1.bit.INTPULSEPOS = 1;/* Late interrupt pulse trips AdcResults latch*/
37 AdcaRegs.ADCSOCPRICTL.bit.SOCPRIORITY = 0;/* All in round robin mode SOC Priority*/
38 EDIS;
39}
40
41void config_ADCB_SOC0()
42{
43 EALLOW;
44 AdcbRegs.ADCSOC0CTL.bit.CHSEL = 2; /* Set SOC0 channel select to ADCIN2*/
45 AdcbRegs.ADCSOC0CTL.bit.TRIGSEL = 7;
46 AdcbRegs.ADCSOC0CTL.bit.ACQPS = 19; /* Set SOC0 S/H Window to 20 ADC Clock Cycles*/
47 AdcbRegs.ADCINTSEL1N2.bit.INT2E = 1; /* Enabled/Disable ADCINT2 interrupt*/
48 AdcbRegs.ADCINTSEL1N2.bit.INT2SEL = 0;/* Setup EOC0 to trigger ADCINT2*/
49 AdcbRegs.ADCINTSEL1N2.bit.INT2CONT = 0;/* Enable/Disable ADCINT2 Continuous mode*/
50 AdcbRegs.ADCINTSOCSEL1.bit.SOC0 = 0; /* SOCx No ADCINT Interrupt Trigger Select.*/
51 AdcbRegs.ADCOFFTRIM.bit.OFFTRIM = AdcbRegs.ADCOFFTRIM.bit.OFFTRIM;/* Set Offset Error Correctino Value*/
52 AdcbRegs.ADCCTL1.bit.INTPULSEPOS = 1;/* Late interrupt pulse trips AdcResults latch*/
53 AdcbRegs.ADCSOCPRICTL.bit.SOCPRIORITY = 0;/* All in round robin mode SOC Priority*/
54 EDIS;
55}
56
57void InitAdcA()
58{
59 EALLOW;
60 CpuSysRegs.PCLKCR13.bit.ADC_A = 1;
61 AdcaRegs.ADCCTL2.bit.PRESCALE = 8;
62 AdcSetMode(ADC_ADCA, ADC_RESOLUTION_12BIT, ADC_SIGNALMODE_SINGLE);
63
64 //power up the ADC
65 AdcaRegs.ADCCTL1.bit.ADCPWDNZ = 1;
66
67 //delay for 1ms to allow ADC time to power up
68 DELAY_US(1000);
69 EDIS;
70}
71
72void InitAdcB()
73{
74 EALLOW;
75 CpuSysRegs.PCLKCR13.bit.ADC_B = 1;
76 AdcbRegs.ADCCTL2.bit.PRESCALE = 8;
77 AdcSetMode(ADC_ADCB, ADC_RESOLUTION_12BIT, ADC_SIGNALMODE_SINGLE);
78
79 //power up the ADC
80 AdcbRegs.ADCCTL1.bit.ADCPWDNZ = 1;
81
82 //delay for 1ms to allow ADC time to power up
83 DELAY_US(1000);
84 EDIS;
85}
86