Frank Vannieuwkerke / ComparatorIn

Dependents:   ComparatorIn_demo TEMT6200_demo 05_comparator_demo 05_comparator_demo ... more

Committer:
frankvnk
Date:
Fri Jun 07 18:10:23 2013 +0000
Revision:
10:1b9ac2b8c788
Parent:
8:8bc9784e04c0
Child:
12:0a0648bddb98
removed version info from comments

Who changed what in which revision?

UserRevisionLine numberNew contents of line
frankvnk 1:ccac56d8f1cb 1 /**************************************************************************************************
frankvnk 1:ccac56d8f1cb 2 ***** *****
frankvnk 1:ccac56d8f1cb 3 ***** Name: ComparatorIn.h *****
frankvnk 1:ccac56d8f1cb 4 ***** Date: 05/06/2013 *****
frankvnk 1:ccac56d8f1cb 5 ***** Auth: Frank Vannieuwkerke *****
frankvnk 1:ccac56d8f1cb 6 ***** Func: library for KL25Z Comparator *****
frankvnk 1:ccac56d8f1cb 7 ***** *****
frankvnk 1:ccac56d8f1cb 8 **************************************************************************************************/
frankvnk 1:ccac56d8f1cb 9
frankvnk 0:e742ad3d7dac 10 #ifndef COMPARATORIN_H
frankvnk 0:e742ad3d7dac 11 #define COMPARATORIN_H
frankvnk 0:e742ad3d7dac 12
frankvnk 0:e742ad3d7dac 13 /*
frankvnk 0:e742ad3d7dac 14 * Includes
frankvnk 0:e742ad3d7dac 15 */
frankvnk 0:e742ad3d7dac 16 #include "mbed.h"
frankvnk 0:e742ad3d7dac 17 #include "pinmap.h"
frankvnk 0:e742ad3d7dac 18
frankvnk 0:e742ad3d7dac 19 #ifndef TARGET_KL25Z
frankvnk 0:e742ad3d7dac 20 #error "Target not supported"
frankvnk 0:e742ad3d7dac 21 #endif
frankvnk 0:e742ad3d7dac 22
frankvnk 0:e742ad3d7dac 23 /** ComparatorIn library
frankvnk 0:e742ad3d7dac 24 *
frankvnk 0:e742ad3d7dac 25 * INP/INM connection selection :
frankvnk 0:e742ad3d7dac 26 * PTC6 (IN0) CMP0_IN0
frankvnk 0:e742ad3d7dac 27 * PTC7 (IN1) CMP0_IN1
frankvnk 0:e742ad3d7dac 28 * PTC8 (IN2) CMP0_IN2
frankvnk 0:e742ad3d7dac 29 * PTC9 (IN3) CMP0_IN3
frankvnk 0:e742ad3d7dac 30 * PTE30 (IN4) CMP0_IN4
frankvnk 0:e742ad3d7dac 31 * PTE29 (IN5) CMP0_IN5
frankvnk 0:e742ad3d7dac 32 * Internal 6-bit DAC reference voltage = VDD (3.3V)
frankvnk 0:e742ad3d7dac 33 * Hysteresis, filter count and sample period will be initialised to these values when calling ComparatorIn:
frankvnk 0:e742ad3d7dac 34 * CMP0->CR0 = 0x00; Filter and digital hysteresis disabled
frankvnk 0:e742ad3d7dac 35 * CMP0->CR1 = 0x17; // Continuous mode, high-speed compare, unfiltered output, output pin disabled
frankvnk 0:e742ad3d7dac 36 * CMP0->FPR = 0x00; // Filter disabled
frankvnk 0:e742ad3d7dac 37 * CMP0->SCR = 0x16; // Enable rising edge interrupt and flag (flags are cleared by this write)
frankvnk 0:e742ad3d7dac 38 * CMP0->DACCR = 0xC4; // DAC enabled, Vdd is 6bit reference, threshold set to 1/16 of full-scale (0.2V)
frankvnk 0:e742ad3d7dac 39 */
frankvnk 0:e742ad3d7dac 40
frankvnk 0:e742ad3d7dac 41 typedef enum {
frankvnk 0:e742ad3d7dac 42 CMP0_IN0 = 0,
frankvnk 0:e742ad3d7dac 43 CMP0_IN1 = 1,
frankvnk 0:e742ad3d7dac 44 CMP0_IN2 = 2,
frankvnk 0:e742ad3d7dac 45 CMP0_IN3 = 3,
frankvnk 0:e742ad3d7dac 46 CMP0_IN4 = 4,
frankvnk 0:e742ad3d7dac 47 CMP0_IN5 = 5,
frankvnk 0:e742ad3d7dac 48 } CMPName;
frankvnk 0:e742ad3d7dac 49
frankvnk 2:43fd96e8687d 50 /** Class to use KL25Z Comparator
frankvnk 2:43fd96e8687d 51 */
frankvnk 0:e742ad3d7dac 52 class ComparatorIn {
frankvnk 0:e742ad3d7dac 53
frankvnk 0:e742ad3d7dac 54 public:
frankvnk 0:e742ad3d7dac 55
frankvnk 0:e742ad3d7dac 56 /** Create a ComparatorIn, connected to the specified pins
frankvnk 0:e742ad3d7dac 57 *
frankvnk 0:e742ad3d7dac 58 * @param pinP = positive ComparatorIn pin to connect to
frankvnk 0:e742ad3d7dac 59 * @param pinM = negative ComparatorIn pin to connect to
frankvnk 4:f66aa1098df9 60 * @param . Valid values for pinP/pinM : PTC6, PTC7, PTC8, PTC9, PTE30, PTE29, NC
frankvnk 4:f66aa1098df9 61 * @param . When NC is specified, the corresponding input is connected to DAC0
frankvnk 0:e742ad3d7dac 62 * @return none
frankvnk 0:e742ad3d7dac 63 */
frankvnk 0:e742ad3d7dac 64 ComparatorIn(PinName pinP,PinName pinM);
frankvnk 0:e742ad3d7dac 65
frankvnk 0:e742ad3d7dac 66 /** Set the number of consecutive threshold samples
frankvnk 5:787a9f72600f 67 * @param . Represents the number of consecutive samples that must agree
frankvnk 5:787a9f72600f 68 * @param . prior to the comparator ouput filter accepting a new output state.
frankvnk 0:e742ad3d7dac 69 * @param input Unsigned char - range : 1..7
frankvnk 0:e742ad3d7dac 70 * @return none
frankvnk 0:e742ad3d7dac 71 */
frankvnk 0:e742ad3d7dac 72 void filter_count(unsigned char);
frankvnk 0:e742ad3d7dac 73
frankvnk 0:e742ad3d7dac 74 /** Set the hysteresis
frankvnk 0:e742ad3d7dac 75 *
frankvnk 0:e742ad3d7dac 76 * @param input Unsigned char
frankvnk 5:787a9f72600f 77 * @param . hysteresis
frankvnk 5:787a9f72600f 78 * @param . 00 5mV
frankvnk 5:787a9f72600f 79 * @param . 01 10mV
frankvnk 5:787a9f72600f 80 * @param . 10 20mV
frankvnk 5:787a9f72600f 81 * @param . 11 30mV
frankvnk 0:e742ad3d7dac 82 * @return none
frankvnk 0:e742ad3d7dac 83 */
frankvnk 0:e742ad3d7dac 84 void hysteresis(unsigned char);
frankvnk 0:e742ad3d7dac 85
frankvnk 0:e742ad3d7dac 86 /** Enable sampling mode
frankvnk 4:f66aa1098df9 87 * @param . Cannot be set when windowing mode is enabled
frankvnk 0:e742ad3d7dac 88 * @param input Unsigned char (0 or 1)
frankvnk 0:e742ad3d7dac 89 * @return none
frankvnk 0:e742ad3d7dac 90 */
frankvnk 0:e742ad3d7dac 91 void sample_mode(unsigned char);
frankvnk 0:e742ad3d7dac 92
frankvnk 0:e742ad3d7dac 93 /** Enable windowing mode
frankvnk 4:f66aa1098df9 94 * @param . Cannot be set when sampling mode is enabled
frankvnk 0:e742ad3d7dac 95 * @param input Unsigned char (0 or 1)
frankvnk 0:e742ad3d7dac 96 * @return none
frankvnk 0:e742ad3d7dac 97 */
frankvnk 0:e742ad3d7dac 98 void window_mode(unsigned char);
frankvnk 0:e742ad3d7dac 99
frankvnk 0:e742ad3d7dac 100 /** Enable trigger mode
frankvnk 4:f66aa1098df9 101 * @param . CMP and DAC are configured to CMP Trigger mode when CMP_CR1[TRIGM] is set to 1.
frankvnk 4:f66aa1098df9 102 * @param . In addition, the CMP should be enabled. If the DAC is to be used as a reference
frankvnk 4:f66aa1098df9 103 * @param . to the CMP, it should also be enabled.
frankvnk 4:f66aa1098df9 104 * @param . CMP Trigger mode depends on an external timer resource to periodically enable the
frankvnk 4:f66aa1098df9 105 * @param . CMP and 6-bit DAC in order to generate a triggered compare. Upon setting TRIGM,
frankvnk 4:f66aa1098df9 106 * @param . the CMP and DAC are placed in a standby state until an external timer resource
frankvnk 4:f66aa1098df9 107 * @param . trigger is received.
frankvnk 0:e742ad3d7dac 108 * @param input Unsigned char (0 or 1)
frankvnk 0:e742ad3d7dac 109 * @return none
frankvnk 0:e742ad3d7dac 110 */
frankvnk 0:e742ad3d7dac 111 void trig_mode(unsigned char);
frankvnk 0:e742ad3d7dac 112
frankvnk 0:e742ad3d7dac 113 /** Set the power mode
frankvnk 4:f66aa1098df9 114 * @param . 0 Low-Speed (LS) Comparison mode selected. In this mode, CMP has
frankvnk 4:f66aa1098df9 115 * @param . slower output propagation delay and lower current consumption.
frankvnk 4:f66aa1098df9 116 * @param . 1 High-Speed (HS) Comparison mode selected. In this mode, CMP has
frankvnk 4:f66aa1098df9 117 * @param . faster output propagation delay and higher current consumption.
frankvnk 0:e742ad3d7dac 118 * @param input Unsigned char - 0 or 1
frankvnk 0:e742ad3d7dac 119 * @return none
frankvnk 0:e742ad3d7dac 120 */
frankvnk 0:e742ad3d7dac 121 void power_mode(unsigned char);
frankvnk 0:e742ad3d7dac 122
frankvnk 0:e742ad3d7dac 123 /** Set invert mode
frankvnk 4:f66aa1098df9 124 * @param . Allows selection of the polarity of the analog comparator function.
frankvnk 4:f66aa1098df9 125 * @param . It is also driven to the COUT output, on both the device pin and as SCR[COUT], when OPE=0.
frankvnk 4:f66aa1098df9 126 * @param . 0 Does not invert the comparator output.
frankvnk 4:f66aa1098df9 127 * @param . 1 Inverts the comparator output.
frankvnk 0:e742ad3d7dac 128 * @param input Unsigned char - 0 or 1
frankvnk 0:e742ad3d7dac 129 * @return none
frankvnk 0:e742ad3d7dac 130 */
frankvnk 0:e742ad3d7dac 131 void invert(unsigned char);
frankvnk 0:e742ad3d7dac 132
frankvnk 0:e742ad3d7dac 133 /** Comparator Output Select
frankvnk 4:f66aa1098df9 134 * @param . 0 Set the filtered comparator output (CMPO) to equal COUT.
frankvnk 4:f66aa1098df9 135 * @param . 1 Set the unfiltered comparator output (CMPO) to equal COUTA.
frankvnk 0:e742ad3d7dac 136 * @param input Unsigned char - 0 or 1
frankvnk 0:e742ad3d7dac 137 * @return none
frankvnk 0:e742ad3d7dac 138 */
frankvnk 0:e742ad3d7dac 139 void output_select(unsigned char);
frankvnk 0:e742ad3d7dac 140
frankvnk 0:e742ad3d7dac 141 /** Comparator Output Pin Enable
frankvnk 4:f66aa1098df9 142 * @param . 0 CMPO is not available on the associated CMPO output pin.
frankvnk 4:f66aa1098df9 143 * @param . If the comparator does not own the pin, this field has no effect.
frankvnk 4:f66aa1098df9 144 * @param . 1 CMPO is available on the associated CMPO output pin.
frankvnk 0:e742ad3d7dac 145 *
frankvnk 4:f66aa1098df9 146 * @param . The comparator output (CMPO) is driven out on the associated CMPO
frankvnk 4:f66aa1098df9 147 * @param . output pin if the comparator owns the pin. If the comparator does
frankvnk 4:f66aa1098df9 148 * @param . not own the field, this bit has no effect.
frankvnk 0:e742ad3d7dac 149 * @param input Unsigned char - 0 or 1
frankvnk 0:e742ad3d7dac 150 * @return none
frankvnk 0:e742ad3d7dac 151 */
frankvnk 0:e742ad3d7dac 152 void output_pin_en(unsigned char);
frankvnk 0:e742ad3d7dac 153
frankvnk 0:e742ad3d7dac 154 /** Comparator Module Enable
frankvnk 4:f66aa1098df9 155 * @param . Enables the Analog Comparator module. When the module is not enabled,
frankvnk 4:f66aa1098df9 156 * @param . it remains in the off state, and consumes no power. When the user
frankvnk 4:f66aa1098df9 157 * @param . selects the same input from analog mux to the positive and negative
frankvnk 4:f66aa1098df9 158 * @param . port, the comparator is disabled automatically.
frankvnk 4:f66aa1098df9 159 * @param . 0 Analog Comparator is disabled.
frankvnk 4:f66aa1098df9 160 * @param . 1 Analog Comparator is enabled.
frankvnk 0:e742ad3d7dac 161 * @param input Unsigned char - 0 or 1
frankvnk 0:e742ad3d7dac 162 * @return none
frankvnk 0:e742ad3d7dac 163 */
frankvnk 0:e742ad3d7dac 164 void enable(unsigned char);
frankvnk 0:e742ad3d7dac 165
frankvnk 0:e742ad3d7dac 166 /** Set the filter sample period
frankvnk 4:f66aa1098df9 167 * @param . Specifies the sampling period, in bus clock cycles, of the comparator
frankvnk 4:f66aa1098df9 168 * @param . output filter, when CR1[SE]=0. Setting FILT_PER to 0x0 disables the filter.
frankvnk 0:e742ad3d7dac 169 * @param input Unsigned char - range : 0..255
frankvnk 0:e742ad3d7dac 170 * @return none
frankvnk 0:e742ad3d7dac 171 */
frankvnk 0:e742ad3d7dac 172 void filter_period(unsigned char);
frankvnk 0:e742ad3d7dac 173
frankvnk 0:e742ad3d7dac 174 /** DMA Enable Control
frankvnk 4:f66aa1098df9 175 * @param . Enables the DMA transfer triggered from the CMP module. When this field is set,
frankvnk 4:f66aa1098df9 176 * @param . a DMA request is asserted when CFR or CFF is set.
frankvnk 4:f66aa1098df9 177 * @param . 0 DMA is disabled.
frankvnk 4:f66aa1098df9 178 * @param . 1 DMA is enabled.
frankvnk 0:e742ad3d7dac 179 * @param input Unsigned char - 0 or 1
frankvnk 0:e742ad3d7dac 180 * @return none
frankvnk 0:e742ad3d7dac 181 */
frankvnk 0:e742ad3d7dac 182 void dma_en(unsigned char);
frankvnk 0:e742ad3d7dac 183
frankvnk 5:787a9f72600f 184 /** Comparator Enable Rising Interrupt
frankvnk 4:f66aa1098df9 185 * @param . Enables the CFR interrupt from the CMP. When this field is set,
frankvnk 4:f66aa1098df9 186 * @param . an interrupt will be asserted when CFR is set.
frankvnk 4:f66aa1098df9 187 * @param . 0 Interrupt is disabled.
frankvnk 4:f66aa1098df9 188 * @param . 1 Interrupt is enabled.
frankvnk 0:e742ad3d7dac 189 * @param input Unsigned char - 0 or 1
frankvnk 0:e742ad3d7dac 190 * @return none
frankvnk 0:e742ad3d7dac 191 */
frankvnk 0:e742ad3d7dac 192 void int_en_rising(unsigned char);
frankvnk 0:e742ad3d7dac 193
frankvnk 5:787a9f72600f 194 /** Comparator Enable Falling Interrupt
frankvnk 4:f66aa1098df9 195 * @param . Enables the CFF interrupt from the CMP. When this field is set,
frankvnk 4:f66aa1098df9 196 * @param . an interrupt will be asserted when CFF is set.
frankvnk 4:f66aa1098df9 197 * @param . 0 Interrupt is disabled.
frankvnk 4:f66aa1098df9 198 * @param . 1 Interrupt is enabled.
frankvnk 0:e742ad3d7dac 199 * @param input Unsigned char - 0 or 1
frankvnk 0:e742ad3d7dac 200 * @return none
frankvnk 0:e742ad3d7dac 201 */
frankvnk 0:e742ad3d7dac 202 void int_en_falling(unsigned char);
frankvnk 0:e742ad3d7dac 203
frankvnk 0:e742ad3d7dac 204 /** Analog Comparator Output
frankvnk 0:e742ad3d7dac 205 * @param none
frankvnk 5:787a9f72600f 206 * @return . Returns the current value of the Analog Comparator output, when read.
frankvnk 5:787a9f72600f 207 * @return . The field is reset to 0 and will read as CR1[INV] when the Analog Comparator
frankvnk 5:787a9f72600f 208 * @return . module is disabled, that is, when CR1[EN] = 0. Writes to this field are ignored.
frankvnk 5:787a9f72600f 209 * @return comparator status (unsigned char)
frankvnk 0:e742ad3d7dac 210 */
frankvnk 0:e742ad3d7dac 211 unsigned char status(void);
frankvnk 0:e742ad3d7dac 212
frankvnk 0:e742ad3d7dac 213 /** DAC Enable
frankvnk 4:f66aa1098df9 214 * @param . Enables the DAC. When the DAC is disabled, it is powered down to conserve power.
frankvnk 4:f66aa1098df9 215 * @param . 0 DAC is disabled.
frankvnk 4:f66aa1098df9 216 * @param . 1 DAC is enabled.
frankvnk 0:e742ad3d7dac 217 * @param input Unsigned char - 0 or 1
frankvnk 0:e742ad3d7dac 218 * @return none
frankvnk 0:e742ad3d7dac 219 */
frankvnk 0:e742ad3d7dac 220 void dac_en(unsigned char);
frankvnk 0:e742ad3d7dac 221
frankvnk 0:e742ad3d7dac 222 /** Supply Voltage Reference Source Select
frankvnk 4:f66aa1098df9 223 * @param . 0 - V is selected as resistor ladder network supply reference Vin1 = VREFH
frankvnk 4:f66aa1098df9 224 * @param . 1 - V is selected as resistor ladder network supply reference Vin2 = VDD
frankvnk 4:f66aa1098df9 225 * @param . (Use this option for the best ADC operation)
frankvnk 0:e742ad3d7dac 226 * @param input Unsigned char - 0 or 1
frankvnk 0:e742ad3d7dac 227 * @return none
frankvnk 0:e742ad3d7dac 228 */
frankvnk 0:e742ad3d7dac 229 void ref_source(unsigned char);
frankvnk 0:e742ad3d7dac 230
frankvnk 0:e742ad3d7dac 231 /** Set the detection threshold level (6-bit DAC0) - DAC Output Voltage Select
frankvnk 4:f66aa1098df9 232 * @param . Selects an output voltage from one of 64 distinct levels.
frankvnk 4:f66aa1098df9 233 * @param . DACO = (V in /64) * (VOSEL[5:0] + 1) , so the DACO range is from V in /64 to V in .
frankvnk 0:e742ad3d7dac 234 * @param input Unsigned char - range 0..63
frankvnk 0:e742ad3d7dac 235 * @return none
frankvnk 0:e742ad3d7dac 236 */
frankvnk 0:e742ad3d7dac 237 void treshold(unsigned char);
frankvnk 0:e742ad3d7dac 238
frankvnk 0:e742ad3d7dac 239 /** Pass Through Mode Enable
frankvnk 4:f66aa1098df9 240 * @param . This bit is used to enable to MUX pass through mode. Pass through mode is always available
frankvnk 4:f66aa1098df9 241 * @param . but for some devices this feature must be always disabled due to the lack of package pins.
frankvnk 4:f66aa1098df9 242 * @param . 0 Pass Through Mode is disabled.
frankvnk 4:f66aa1098df9 243 * @param . 1 Pass Through Mode is enabled.
frankvnk 0:e742ad3d7dac 244 * @param input Unsigned char - 0 or 1
frankvnk 0:e742ad3d7dac 245 * @return none
frankvnk 0:e742ad3d7dac 246 */
frankvnk 0:e742ad3d7dac 247 void pass_through(unsigned char);
frankvnk 0:e742ad3d7dac 248
frankvnk 0:e742ad3d7dac 249 /** Plus Input Mux Control
frankvnk 4:f66aa1098df9 250 * @param . Determines which input is selected for the plus input of the comparator.
frankvnk 4:f66aa1098df9 251 * @param . For INx inputs, see CMP, DAC, and ANMUX block diagrams.
frankvnk 4:f66aa1098df9 252 * @param . NOTE: When an inappropriate operation selects the same input for both muxes, the comparator
frankvnk 4:f66aa1098df9 253 * @param . automatically shuts down to prevent itself from becoming a noise generator.
frankvnk 4:f66aa1098df9 254 * @param . 000 IN0 PTC6 CMP0_IN0
frankvnk 4:f66aa1098df9 255 * @param . 001 IN1 PTC7 CMP0_IN1
frankvnk 4:f66aa1098df9 256 * @param . 010 IN2 PTC8 CMP0_IN2
frankvnk 4:f66aa1098df9 257 * @param . 011 IN3 PTC9 CMP0_IN3
frankvnk 4:f66aa1098df9 258 * @param . 100 IN4 PTE30 CMP0_IN4
frankvnk 4:f66aa1098df9 259 * @param . 101 IN5 PTE29 CMP0_IN5
frankvnk 4:f66aa1098df9 260 * @param . 110 IN6 - Bandgap reference (1V)
frankvnk 4:f66aa1098df9 261 * @param . 111 IN7 - Internal 6-bit DAC0
frankvnk 0:e742ad3d7dac 262 *
frankvnk 4:f66aa1098df9 263 * @param . NOTE : When using the PMC bandgap 1V reference voltage as CMP input, ensure that
frankvnk 4:f66aa1098df9 264 * @param . you enable the bandgap buffer by setting the PMC_REGSC[BGBE] bit.
frankvnk 0:e742ad3d7dac 265 *
frankvnk 0:e742ad3d7dac 266 * @param input Unsigned char - range 0..7
frankvnk 0:e742ad3d7dac 267 * @return none
frankvnk 0:e742ad3d7dac 268 */
frankvnk 0:e742ad3d7dac 269 void switch_plus(unsigned char pinP);
frankvnk 0:e742ad3d7dac 270
frankvnk 0:e742ad3d7dac 271 /** Minus Input Mux Control
frankvnk 4:f66aa1098df9 272 * @param . Determines which input is selected for the plus input of the comparator.
frankvnk 4:f66aa1098df9 273 * @param . For INx inputs, see CMP, DAC, and ANMUX block diagrams.
frankvnk 4:f66aa1098df9 274 * @param . NOTE: When an inappropriate operation selects the same input for both muxes, the comparator
frankvnk 4:f66aa1098df9 275 * @param . automatically shuts down to prevent itself from becoming a noise generator.
frankvnk 4:f66aa1098df9 276 * @param . 000 IN0 PTC6 CMP0_IN0
frankvnk 4:f66aa1098df9 277 * @param . 001 IN1 PTC7 CMP0_IN1
frankvnk 4:f66aa1098df9 278 * @param . 010 IN2 PTC8 CMP0_IN2
frankvnk 4:f66aa1098df9 279 * @param . 011 IN3 PTC9 CMP0_IN3
frankvnk 4:f66aa1098df9 280 * @param . 100 IN4 PTE30 CMP0_IN4
frankvnk 4:f66aa1098df9 281 * @param . 101 IN5 PTE29 CMP0_IN5
frankvnk 4:f66aa1098df9 282 * @param . 110 IN6 - Bandgap reference (1V)
frankvnk 4:f66aa1098df9 283 * @param . 111 IN7 - Internal 6-bit DAC0
frankvnk 0:e742ad3d7dac 284 *
frankvnk 4:f66aa1098df9 285 * @param . NOTE : When using the PMC bandgap 1V reference voltage as CMP input, ensure that
frankvnk 4:f66aa1098df9 286 * @param . you enable the bandgap buffer by setting the PMC_REGSC[BGBE] bit.
frankvnk 0:e742ad3d7dac 287 *
frankvnk 0:e742ad3d7dac 288 * @param input Unsigned char - range 0..7
frankvnk 0:e742ad3d7dac 289 * @return none
frankvnk 0:e742ad3d7dac 290 */
frankvnk 0:e742ad3d7dac 291 void switch_min(unsigned char pinM);
frankvnk 0:e742ad3d7dac 292
frankvnk 0:e742ad3d7dac 293 /**
frankvnk 0:e742ad3d7dac 294 * Comparator ISR callback
frankvnk 0:e742ad3d7dac 295 *
frankvnk 0:e742ad3d7dac 296 * @param pointer to the user function to execute after IRQ assertion
frankvnk 7:9a184ac2c65a 297 * @return . CMP_SCR_CFR_MASK (rising edge interrupt)
frankvnk 7:9a184ac2c65a 298 * @return . CMP_SCR_CFF_MASK (falling edge interrupt)
frankvnk 8:8bc9784e04c0 299 * @return returns rising/falling interrupt flag (unsigned int) to user function
frankvnk 0:e742ad3d7dac 300 */
frankvnk 0:e742ad3d7dac 301 void _callbackISR(void(*fptr)(unsigned int));
frankvnk 0:e742ad3d7dac 302
frankvnk 0:e742ad3d7dac 303 private:
frankvnk 0:e742ad3d7dac 304 static const PinMap PinMap_CMP[7];
frankvnk 0:e742ad3d7dac 305 static void _cmpISR(void);
frankvnk 0:e742ad3d7dac 306 void hscmp_clear(void);
frankvnk 0:e742ad3d7dac 307 char CMPnumberP, CMPnumberM;
frankvnk 0:e742ad3d7dac 308 };
frankvnk 0:e742ad3d7dac 309
frankvnk 0:e742ad3d7dac 310 #endif
frankvnk 0:e742ad3d7dac 311
frankvnk 0:e742ad3d7dac 312
frankvnk 0:e742ad3d7dac 313