A Port of TI's Webserver for the CC3000
Board/Wheel.cpp@2:e6a185df9e4c, 2013-09-16 (annotated)
- Committer:
- dflet
- Date:
- Mon Sep 16 18:37:14 2013 +0000
- Revision:
- 2:e6a185df9e4c
- Parent:
- 1:7a4efebd6e44
ADC and Leds now work on board and config.html page.
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| dflet | 1:7a4efebd6e44 | 1 | /******************************************************************************* |
| dflet | 1:7a4efebd6e44 | 2 | * |
| dflet | 1:7a4efebd6e44 | 3 | * Wheel.c - Driver for the scroll wheel |
| dflet | 1:7a4efebd6e44 | 4 | * |
| dflet | 1:7a4efebd6e44 | 5 | * Copyright (C) 2010 Texas Instruments Incorporated - http://www.ti.com/ |
| dflet | 1:7a4efebd6e44 | 6 | * |
| dflet | 1:7a4efebd6e44 | 7 | * Redistribution and use in source and binary forms, with or without |
| dflet | 1:7a4efebd6e44 | 8 | * modification, are permitted provided that the following conditions |
| dflet | 1:7a4efebd6e44 | 9 | * are met: |
| dflet | 1:7a4efebd6e44 | 10 | * |
| dflet | 1:7a4efebd6e44 | 11 | * Redistributions of source code must retain the above copyright |
| dflet | 1:7a4efebd6e44 | 12 | * notice, this list of conditions and the following disclaimer. |
| dflet | 1:7a4efebd6e44 | 13 | * |
| dflet | 1:7a4efebd6e44 | 14 | * Redistributions in binary form must reproduce the above copyright |
| dflet | 1:7a4efebd6e44 | 15 | * notice, this list of conditions and the following disclaimer in the |
| dflet | 1:7a4efebd6e44 | 16 | * documentation and/or other materials provided with the |
| dflet | 1:7a4efebd6e44 | 17 | * distribution. |
| dflet | 1:7a4efebd6e44 | 18 | * |
| dflet | 1:7a4efebd6e44 | 19 | * Neither the name of Texas Instruments Incorporated nor the names of |
| dflet | 1:7a4efebd6e44 | 20 | * its contributors may be used to endorse or promote products derived |
| dflet | 1:7a4efebd6e44 | 21 | * from this software without specific prior written permission. |
| dflet | 1:7a4efebd6e44 | 22 | * |
| dflet | 1:7a4efebd6e44 | 23 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
| dflet | 1:7a4efebd6e44 | 24 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
| dflet | 1:7a4efebd6e44 | 25 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
| dflet | 1:7a4efebd6e44 | 26 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
| dflet | 1:7a4efebd6e44 | 27 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
| dflet | 1:7a4efebd6e44 | 28 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
| dflet | 1:7a4efebd6e44 | 29 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| dflet | 1:7a4efebd6e44 | 30 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| dflet | 1:7a4efebd6e44 | 31 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| dflet | 1:7a4efebd6e44 | 32 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| dflet | 1:7a4efebd6e44 | 33 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| dflet | 1:7a4efebd6e44 | 34 | * |
| dflet | 1:7a4efebd6e44 | 35 | ******************************************************************************/ |
| dflet | 1:7a4efebd6e44 | 36 | |
| dflet | 1:7a4efebd6e44 | 37 | /***************************************************************************//** |
| dflet | 1:7a4efebd6e44 | 38 | * @file HAL_Wheel.c |
| dflet | 1:7a4efebd6e44 | 39 | * @addtogroup HAL_Wheel |
| dflet | 1:7a4efebd6e44 | 40 | * @{ |
| dflet | 1:7a4efebd6e44 | 41 | ******************************************************************************/ |
| dflet | 1:7a4efebd6e44 | 42 | #include "mbed.h" |
| dflet | 1:7a4efebd6e44 | 43 | //#include "msp430.h" |
| dflet | 1:7a4efebd6e44 | 44 | #include "Wheel.h" |
| dflet | 1:7a4efebd6e44 | 45 | |
| dflet | 1:7a4efebd6e44 | 46 | //#define WHEEL_PORT_DIR P8DIR |
| dflet | 1:7a4efebd6e44 | 47 | //#define WHEEL_PORT_OUT P8OUT |
| dflet | 1:7a4efebd6e44 | 48 | //#define WHEEL_ENABLE BIT0 |
| dflet | 1:7a4efebd6e44 | 49 | //#define ADC_PORT_SEL P6SEL |
| dflet | 1:7a4efebd6e44 | 50 | //#define ADC_INPUT_A5 BIT5 |
| dflet | 1:7a4efebd6e44 | 51 | |
| dflet | 1:7a4efebd6e44 | 52 | uint16_t positionData; |
| dflet | 1:7a4efebd6e44 | 53 | uint16_t positionDataOld; |
| dflet | 1:7a4efebd6e44 | 54 | |
| dflet | 1:7a4efebd6e44 | 55 | /***************************************************************************//** |
| dflet | 1:7a4efebd6e44 | 56 | * @brief Set up the wheel |
| dflet | 1:7a4efebd6e44 | 57 | * @param None |
| dflet | 1:7a4efebd6e44 | 58 | * @return None |
| dflet | 1:7a4efebd6e44 | 59 | ******************************************************************************/ |
| dflet | 1:7a4efebd6e44 | 60 | |
| dflet | 1:7a4efebd6e44 | 61 | void Wheel_init(void) |
| dflet | 1:7a4efebd6e44 | 62 | { |
| dflet | 1:7a4efebd6e44 | 63 | LPC_PINCON->PINSEL3 |= (3UL << 30); /* P1.31 is AD0.5, attached to pot1*/ |
| dflet | 1:7a4efebd6e44 | 64 | LPC_SC->PCONP |= (1 << 12); /* Enable power to ADC block */ |
| dflet | 1:7a4efebd6e44 | 65 | LPC_ADC->ADCR = (1 << 5) | /* select AD0.5 pin b100000*/ |
| dflet | 1:7a4efebd6e44 | 66 | (4 << 8) | /* ADC clock is 25MHz/5 */ |
| dflet | 1:7a4efebd6e44 | 67 | (1 << 21); /* enable ADC */ |
| dflet | 1:7a4efebd6e44 | 68 | |
| dflet | 1:7a4efebd6e44 | 69 | //WHEEL_PORT_DIR |= WHEEL_ENABLE; |
| dflet | 1:7a4efebd6e44 | 70 | //WHEEL_PORT_OUT |= WHEEL_ENABLE; // Enable wheel |
| dflet | 1:7a4efebd6e44 | 71 | |
| dflet | 1:7a4efebd6e44 | 72 | //ADC12CTL0 = ADC12SHT02 + ADC12ON; // Sampling time, ADC12 on |
| dflet | 1:7a4efebd6e44 | 73 | //ADC12CTL1 = ADC12SHP; // Use sampling timer |
| dflet | 1:7a4efebd6e44 | 74 | //ADC12MCTL0 = ADC12INCH_5; // Use A5 (wheel) as input |
| dflet | 1:7a4efebd6e44 | 75 | //ADC12CTL0 |= ADC12ENC; // Enable conversions |
| dflet | 1:7a4efebd6e44 | 76 | //ADC_PORT_SEL |= ADC_INPUT_A5; // P6.5 ADC option select (A5) |
| dflet | 1:7a4efebd6e44 | 77 | } |
| dflet | 1:7a4efebd6e44 | 78 | |
| dflet | 1:7a4efebd6e44 | 79 | /***************************************************************************//** |
| dflet | 1:7a4efebd6e44 | 80 | * @brief Determine the wheel's position |
| dflet | 1:7a4efebd6e44 | 81 | * @param None |
| dflet | 1:7a4efebd6e44 | 82 | * @return Wheel position (0~7) |
| dflet | 1:7a4efebd6e44 | 83 | ******************************************************************************/ |
| dflet | 1:7a4efebd6e44 | 84 | |
| dflet | 1:7a4efebd6e44 | 85 | uint8_t Wheel_getPosition(void) |
| dflet | 1:7a4efebd6e44 | 86 | { |
| dflet | 1:7a4efebd6e44 | 87 | uint8_t position = 0; |
| dflet | 1:7a4efebd6e44 | 88 | |
| dflet | 1:7a4efebd6e44 | 89 | Wheel_getValue(); |
| dflet | 1:7a4efebd6e44 | 90 | |
| dflet | 1:7a4efebd6e44 | 91 | //determine which position the wheel is in |
| dflet | 1:7a4efebd6e44 | 92 | if (positionData > 0x0806) |
| dflet | 1:7a4efebd6e44 | 93 | position = 7 - (positionData - 0x0806) / 260; //scale the data for 8 different positions |
| dflet | 1:7a4efebd6e44 | 94 | else |
| dflet | 1:7a4efebd6e44 | 95 | position = positionData / 260; |
| dflet | 1:7a4efebd6e44 | 96 | |
| dflet | 1:7a4efebd6e44 | 97 | return position; |
| dflet | 1:7a4efebd6e44 | 98 | } |
| dflet | 1:7a4efebd6e44 | 99 | |
| dflet | 1:7a4efebd6e44 | 100 | /***************************************************************************//** |
| dflet | 1:7a4efebd6e44 | 101 | * @brief Determine the raw voltage value across the potentiometer |
| dflet | 1:7a4efebd6e44 | 102 | * @param None |
| dflet | 1:7a4efebd6e44 | 103 | * @return Value |
| dflet | 1:7a4efebd6e44 | 104 | ******************************************************************************/ |
| dflet | 1:7a4efebd6e44 | 105 | |
| dflet | 1:7a4efebd6e44 | 106 | uint16_t Wheel_getValue(void) |
| dflet | 1:7a4efebd6e44 | 107 | { |
| dflet | 1:7a4efebd6e44 | 108 | |
| dflet | 1:7a4efebd6e44 | 109 | LPC_ADC->ADCR |= (1<<24); /* start conversion */ |
| dflet | 1:7a4efebd6e44 | 110 | while (!(LPC_ADC->ADGDR & (1UL<<31))); /* Wait for Conversion end */ |
| dflet | 1:7a4efebd6e44 | 111 | positionData = ((LPC_ADC->ADGDR >> 4) & 0xFFF); /* read converted value */ |
| dflet | 1:7a4efebd6e44 | 112 | /* read value needs scaling*/ |
| dflet | 1:7a4efebd6e44 | 113 | LPC_ADC->ADCR &= ~(7<<24); /* stop conversion */ |
| dflet | 2:e6a185df9e4c | 114 | //printf("ADC Value %i\r\n",positionData); |
| dflet | 1:7a4efebd6e44 | 115 | //measure ADC value |
| dflet | 1:7a4efebd6e44 | 116 | //ADC12IE = 0x01; // Enable interrupt |
| dflet | 1:7a4efebd6e44 | 117 | //ADC12CTL0 |= ADC12SC; // Start sampling/conversion |
| dflet | 1:7a4efebd6e44 | 118 | //__bis_SR_register(LPM0_bits + GIE); // LPM0, ADC12_ISR will force exit |
| dflet | 1:7a4efebd6e44 | 119 | //ADC12IE = 0x00; // Disable interrupt |
| dflet | 1:7a4efebd6e44 | 120 | |
| dflet | 1:7a4efebd6e44 | 121 | //add hysteresis on wheel to remove fluctuations |
| dflet | 1:7a4efebd6e44 | 122 | if (positionData > positionDataOld) |
| dflet | 1:7a4efebd6e44 | 123 | if ((positionData - positionDataOld) > 10) |
| dflet | 1:7a4efebd6e44 | 124 | positionDataOld = positionData; //use new data if change is beyond |
| dflet | 1:7a4efebd6e44 | 125 | // fluctuation threshold |
| dflet | 1:7a4efebd6e44 | 126 | else |
| dflet | 1:7a4efebd6e44 | 127 | positionData = positionDataOld; //use old data if change is not beyond |
| dflet | 1:7a4efebd6e44 | 128 | // fluctuation threshold |
| dflet | 1:7a4efebd6e44 | 129 | else |
| dflet | 1:7a4efebd6e44 | 130 | if ((positionDataOld - positionData) > 10) |
| dflet | 1:7a4efebd6e44 | 131 | positionDataOld = positionData; //use new data if change is beyond |
| dflet | 1:7a4efebd6e44 | 132 | // fluctuation threshold |
| dflet | 1:7a4efebd6e44 | 133 | else |
| dflet | 1:7a4efebd6e44 | 134 | positionData = positionDataOld; //use old data if change is not beyond |
| dflet | 1:7a4efebd6e44 | 135 | // fluctuation threshold |
| dflet | 1:7a4efebd6e44 | 136 | |
| dflet | 1:7a4efebd6e44 | 137 | return positionData; |
| dflet | 1:7a4efebd6e44 | 138 | } |
| dflet | 1:7a4efebd6e44 | 139 | |
| dflet | 1:7a4efebd6e44 | 140 | /***************************************************************************//** |
| dflet | 1:7a4efebd6e44 | 141 | * @brief Disable wheel |
| dflet | 1:7a4efebd6e44 | 142 | * @param None |
| dflet | 1:7a4efebd6e44 | 143 | * @return none |
| dflet | 1:7a4efebd6e44 | 144 | ******************************************************************************/ |
| dflet | 1:7a4efebd6e44 | 145 | |
| dflet | 1:7a4efebd6e44 | 146 | void Wheel_disable(void) |
| dflet | 1:7a4efebd6e44 | 147 | { |
| dflet | 1:7a4efebd6e44 | 148 | |
| dflet | 1:7a4efebd6e44 | 149 | //WHEEL_PORT_OUT &= ~WHEEL_ENABLE; //disable wheel |
| dflet | 1:7a4efebd6e44 | 150 | //ADC12CTL0 &= ~ADC12ENC; // Disable conversions |
| dflet | 1:7a4efebd6e44 | 151 | //ADC12CTL0 &= ~ADC12ON; // ADC12 off |
| dflet | 1:7a4efebd6e44 | 152 | } |
| dflet | 1:7a4efebd6e44 | 153 | |
| dflet | 1:7a4efebd6e44 | 154 | /***************************************************************************//** |
| dflet | 1:7a4efebd6e44 | 155 | * @brief Enable wheel |
| dflet | 1:7a4efebd6e44 | 156 | * @param None |
| dflet | 1:7a4efebd6e44 | 157 | * @return none |
| dflet | 1:7a4efebd6e44 | 158 | ******************************************************************************/ |
| dflet | 1:7a4efebd6e44 | 159 | |
| dflet | 1:7a4efebd6e44 | 160 | void Wheel_enable(void) |
| dflet | 1:7a4efebd6e44 | 161 | { |
| dflet | 1:7a4efebd6e44 | 162 | |
| dflet | 1:7a4efebd6e44 | 163 | //WHEEL_PORT_OUT |= WHEEL_ENABLE; //disable wheel |
| dflet | 1:7a4efebd6e44 | 164 | //ADC12CTL0 |= ADC12ON; // ADC12 on |
| dflet | 1:7a4efebd6e44 | 165 | //ADC12CTL0 |= ADC12ENC; // Enable conversions |
| dflet | 1:7a4efebd6e44 | 166 | } |
| dflet | 1:7a4efebd6e44 | 167 | |
| dflet | 1:7a4efebd6e44 | 168 | /***************************************************************************//** |
| dflet | 1:7a4efebd6e44 | 169 | * @brief Handles ADC interrupts. |
| dflet | 1:7a4efebd6e44 | 170 | * |
| dflet | 1:7a4efebd6e44 | 171 | * Stores result of single ADC conversion for reading position of the scroll wheel. |
| dflet | 1:7a4efebd6e44 | 172 | * @param none |
| dflet | 1:7a4efebd6e44 | 173 | * @return none |
| dflet | 1:7a4efebd6e44 | 174 | ******************************************************************************/ |
| dflet | 1:7a4efebd6e44 | 175 | /* |
| dflet | 1:7a4efebd6e44 | 176 | #pragma vector = ADC12_VECTOR |
| dflet | 1:7a4efebd6e44 | 177 | __interrupt void ADC12_ISR(void) |
| dflet | 1:7a4efebd6e44 | 178 | { |
| dflet | 1:7a4efebd6e44 | 179 | switch (__even_in_range(ADC12IV, ADC12IV_ADC12IFG15)) |
| dflet | 1:7a4efebd6e44 | 180 | { |
| dflet | 1:7a4efebd6e44 | 181 | // Vector ADC12IV_NONE: No interrupt |
| dflet | 1:7a4efebd6e44 | 182 | case ADC12IV_NONE: |
| dflet | 1:7a4efebd6e44 | 183 | break; |
| dflet | 1:7a4efebd6e44 | 184 | |
| dflet | 1:7a4efebd6e44 | 185 | // Vector ADC12IV_ADC12OVIFG: ADC overflow |
| dflet | 1:7a4efebd6e44 | 186 | case ADC12IV_ADC12OVIFG: |
| dflet | 1:7a4efebd6e44 | 187 | break; |
| dflet | 1:7a4efebd6e44 | 188 | |
| dflet | 1:7a4efebd6e44 | 189 | // Vector ADC12IV_ADC12TOVIFG: ADC timing overflow |
| dflet | 1:7a4efebd6e44 | 190 | case ADC12IV_ADC12TOVIFG: |
| dflet | 1:7a4efebd6e44 | 191 | break; |
| dflet | 1:7a4efebd6e44 | 192 | |
| dflet | 1:7a4efebd6e44 | 193 | // Vector ADC12IV_ADC12IFG0: ADC12IFG0: |
| dflet | 1:7a4efebd6e44 | 194 | case ADC12IV_ADC12IFG0: |
| dflet | 1:7a4efebd6e44 | 195 | positionData = ADC12MEM0; // ADC12MEM = A0 > 0.5AVcc? |
| dflet | 1:7a4efebd6e44 | 196 | __bic_SR_register_on_exit(LPM0_bits); // Exit active CPU |
| dflet | 1:7a4efebd6e44 | 197 | break; |
| dflet | 1:7a4efebd6e44 | 198 | |
| dflet | 1:7a4efebd6e44 | 199 | // Vector ADC12IV_ADC12IFG1: ADC12IFG1 |
| dflet | 1:7a4efebd6e44 | 200 | case ADC12IV_ADC12IFG1: |
| dflet | 1:7a4efebd6e44 | 201 | break; |
| dflet | 1:7a4efebd6e44 | 202 | |
| dflet | 1:7a4efebd6e44 | 203 | // Vector ADC12IV_ADC12IFG2: ADC12IFG2 |
| dflet | 1:7a4efebd6e44 | 204 | case ADC12IV_ADC12IFG2: |
| dflet | 1:7a4efebd6e44 | 205 | break; |
| dflet | 1:7a4efebd6e44 | 206 | |
| dflet | 1:7a4efebd6e44 | 207 | // Vector ADC12IV_ADC12IFG3: ADC12IFG3 |
| dflet | 1:7a4efebd6e44 | 208 | case ADC12IV_ADC12IFG3: |
| dflet | 1:7a4efebd6e44 | 209 | break; |
| dflet | 1:7a4efebd6e44 | 210 | |
| dflet | 1:7a4efebd6e44 | 211 | // Vector ADC12IV_ADC12IFG4: ADC12IFG4 |
| dflet | 1:7a4efebd6e44 | 212 | case ADC12IV_ADC12IFG4: |
| dflet | 1:7a4efebd6e44 | 213 | break; |
| dflet | 1:7a4efebd6e44 | 214 | |
| dflet | 1:7a4efebd6e44 | 215 | // Vector ADC12IV_ADC12IFG5: ADC12IFG5 |
| dflet | 1:7a4efebd6e44 | 216 | case ADC12IV_ADC12IFG5: |
| dflet | 1:7a4efebd6e44 | 217 | break; |
| dflet | 1:7a4efebd6e44 | 218 | |
| dflet | 1:7a4efebd6e44 | 219 | // Vector ADC12IV_ADC12IFG6: ADC12IFG6 |
| dflet | 1:7a4efebd6e44 | 220 | case ADC12IV_ADC12IFG6: |
| dflet | 1:7a4efebd6e44 | 221 | break; |
| dflet | 1:7a4efebd6e44 | 222 | |
| dflet | 1:7a4efebd6e44 | 223 | // Vector ADC12IV_ADC12IFG7: ADC12IFG7 |
| dflet | 1:7a4efebd6e44 | 224 | case ADC12IV_ADC12IFG7: |
| dflet | 1:7a4efebd6e44 | 225 | break; |
| dflet | 1:7a4efebd6e44 | 226 | |
| dflet | 1:7a4efebd6e44 | 227 | // Vector ADC12IV_ADC12IFG8: ADC12IFG8 |
| dflet | 1:7a4efebd6e44 | 228 | case ADC12IV_ADC12IFG8: |
| dflet | 1:7a4efebd6e44 | 229 | break; |
| dflet | 1:7a4efebd6e44 | 230 | |
| dflet | 1:7a4efebd6e44 | 231 | // Vector ADC12IV_ADC12IFG9: ADC12IFG9 |
| dflet | 1:7a4efebd6e44 | 232 | case ADC12IV_ADC12IFG9: |
| dflet | 1:7a4efebd6e44 | 233 | break; |
| dflet | 1:7a4efebd6e44 | 234 | |
| dflet | 1:7a4efebd6e44 | 235 | // Vector ADC12IV_ADC12IFG10: ADC12IFG10 |
| dflet | 1:7a4efebd6e44 | 236 | case ADC12IV_ADC12IFG10: |
| dflet | 1:7a4efebd6e44 | 237 | break; |
| dflet | 1:7a4efebd6e44 | 238 | |
| dflet | 1:7a4efebd6e44 | 239 | // Vector ADC12IV_ADC12IFG11: ADC12IFG11 |
| dflet | 1:7a4efebd6e44 | 240 | case ADC12IV_ADC12IFG11: |
| dflet | 1:7a4efebd6e44 | 241 | break; |
| dflet | 1:7a4efebd6e44 | 242 | |
| dflet | 1:7a4efebd6e44 | 243 | // Vector ADC12IV_ADC12IFG12: ADC12IFG12 |
| dflet | 1:7a4efebd6e44 | 244 | case ADC12IV_ADC12IFG12: |
| dflet | 1:7a4efebd6e44 | 245 | break; |
| dflet | 1:7a4efebd6e44 | 246 | |
| dflet | 1:7a4efebd6e44 | 247 | // Vector ADC12IV_ADC12IFG13: ADC12IFG13 |
| dflet | 1:7a4efebd6e44 | 248 | case ADC12IV_ADC12IFG13: |
| dflet | 1:7a4efebd6e44 | 249 | break; |
| dflet | 1:7a4efebd6e44 | 250 | |
| dflet | 1:7a4efebd6e44 | 251 | // Vector ADC12IV_ADC12IFG14: ADC12IFG14 |
| dflet | 1:7a4efebd6e44 | 252 | case ADC12IV_ADC12IFG14: |
| dflet | 1:7a4efebd6e44 | 253 | break; |
| dflet | 1:7a4efebd6e44 | 254 | |
| dflet | 1:7a4efebd6e44 | 255 | // Vector ADC12IV_ADC12IFG15: ADC12IFG15 |
| dflet | 1:7a4efebd6e44 | 256 | case ADC12IV_ADC12IFG15: |
| dflet | 1:7a4efebd6e44 | 257 | break; |
| dflet | 1:7a4efebd6e44 | 258 | |
| dflet | 1:7a4efebd6e44 | 259 | default: |
| dflet | 1:7a4efebd6e44 | 260 | break; |
| dflet | 1:7a4efebd6e44 | 261 | } |
| dflet | 1:7a4efebd6e44 | 262 | } |
| dflet | 1:7a4efebd6e44 | 263 | */ |
| dflet | 1:7a4efebd6e44 | 264 | /***************************************************************************//** |
| dflet | 1:7a4efebd6e44 | 265 | * @} |
| dflet | 1:7a4efebd6e44 | 266 | ******************************************************************************/ |
| dflet | 1:7a4efebd6e44 | 267 |