this is a small prototype for color sensor, which can detect three colors... this was made by using an LDR,1.5 K resistor and the wiz wiki 7500 board
Fork of ADC_test by
the things you need for this are wiznet board or any other micro controller can do it when you understand the logic i have applied here.An LDR and one resistor for your reference i have used 1.5K resistor in my work.
connect the LDR and resistor in series in between the 3.3V and GND of the board.take outpt from the point where LDR and resistor met.
it's just an voltage divider circuit depends on the color you subject to LDR the resistance of LDR will vary and the volatge also does the same.
then feed the output on the adc pin of micro controller, then you will get various values for various colors. the adc which i have used is 12 bit one that's why it's having 4096 count. you have to change the values in the program according to your adc count.
sorry for my bad english.........
Revision 1:c88c8173b9b2, committed 2016-01-18
- Comitter:
- shia
- Date:
- Mon Jan 18 08:28:25 2016 +0000
- Parent:
- 0:a2562dfbf543
- Commit message:
- color sensor using LDR
Changed in this revision
diff -r a2562dfbf543 -r c88c8173b9b2 ADC_full/adc.cpp --- a/ADC_full/adc.cpp Wed Feb 10 13:11:26 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,439 +0,0 @@ -/* mbed Library - ADC - * Copyright (c) 2010, sblandford - * released under MIT license http://mbed.org/licence/mit - */ -#include "mbed.h" -#include "adc.h" - - -ADC *ADC::instance; - -ADC::ADC(int sample_rate, int cclk_div) - { - - int i, adc_clk_freq, pclk, clock_div, max_div=1; - - //Work out CCLK - adc_clk_freq=CLKS_PER_SAMPLE*sample_rate; - int m = (LPC_SC->PLL0CFG & 0xFFFF) + 1; - int n = (LPC_SC->PLL0CFG >> 16) + 1; - int cclkdiv = LPC_SC->CCLKCFG + 1; - int Fcco = (2 * m * XTAL_FREQ) / n; - int cclk = Fcco / cclkdiv; - - //Power up the ADC - LPC_SC->PCONP |= (1 << 12); - //Set clock at cclk / 1. - LPC_SC->PCLKSEL0 &= ~(0x3 << 24); - switch (cclk_div) { - case 1: - LPC_SC->PCLKSEL0 |= 0x1 << 24; - break; - case 2: - LPC_SC->PCLKSEL0 |= 0x2 << 24; - break; - case 4: - LPC_SC->PCLKSEL0 |= 0x0 << 24; - break; - case 8: - LPC_SC->PCLKSEL0 |= 0x3 << 24; - break; - default: - fprintf(stderr, "Warning: ADC CCLK clock divider must be 1, 2, 4 or 8. %u supplied.\n", - cclk_div); - fprintf(stderr, "Defaulting to 1.\n"); - LPC_SC->PCLKSEL0 |= 0x1 << 24; - break; - } - pclk = cclk / cclk_div; - clock_div=pclk / adc_clk_freq; - - if (clock_div > 0xFF) { - fprintf(stderr, "Warning: Clock division is %u which is above 255 limit. Re-Setting at limit.\n", - clock_div); - clock_div=0xFF; - } - if (clock_div == 0) { - fprintf(stderr, "Warning: Clock division is 0. Re-Setting to 1.\n"); - clock_div=1; - } - - _adc_clk_freq=pclk / clock_div; - if (_adc_clk_freq > MAX_ADC_CLOCK) { - fprintf(stderr, "Warning: Actual ADC sample rate of %u which is above %u limit\n", - _adc_clk_freq / CLKS_PER_SAMPLE, MAX_ADC_CLOCK / CLKS_PER_SAMPLE); - while ((pclk / max_div) > MAX_ADC_CLOCK) max_div++; - fprintf(stderr, "Maximum recommended sample rate is %u\n", (pclk / max_div) / CLKS_PER_SAMPLE); - } - - LPC_ADC->ADCR = - ((clock_div - 1 ) << 8 ) | //Clkdiv - ( 1 << 21 ); //A/D operational - - //Default no channels enabled - LPC_ADC->ADCR &= ~0xFF; - //Default NULL global custom isr - _adc_g_isr = NULL; - //Initialize arrays - for (i=7; i>=0; i--) { - _adc_data[i] = 0; - _adc_isr[i] = NULL; - } - - - //* Attach IRQ - instance = this; - NVIC_SetVector(ADC_IRQn, (uint32_t)&_adcisr); - - //Disable global interrupt - LPC_ADC->ADINTEN &= ~0x100; - -}; - -void ADC::_adcisr(void) -{ - instance->adcisr(); -} - - -void ADC::adcisr(void) -{ - uint32_t stat; - int chan; - - // Read status - stat = LPC_ADC->ADSTAT; - //Scan channels for over-run or done and update array - if (stat & 0x0101) _adc_data[0] = LPC_ADC->ADDR0; - if (stat & 0x0202) _adc_data[1] = LPC_ADC->ADDR1; - if (stat & 0x0404) _adc_data[2] = LPC_ADC->ADDR2; - if (stat & 0x0808) _adc_data[3] = LPC_ADC->ADDR3; - if (stat & 0x1010) _adc_data[4] = LPC_ADC->ADDR4; - if (stat & 0x2020) _adc_data[5] = LPC_ADC->ADDR5; - if (stat & 0x4040) _adc_data[6] = LPC_ADC->ADDR6; - if (stat & 0x8080) _adc_data[7] = LPC_ADC->ADDR7; - - // Channel that triggered interrupt - chan = (LPC_ADC->ADGDR >> 24) & 0x07; - //User defined interrupt handlers - if (_adc_isr[chan] != NULL) - _adc_isr[chan](_adc_data[chan]); - if (_adc_g_isr != NULL) - _adc_g_isr(chan, _adc_data[chan]); - return; -} - -int ADC::_pin_to_channel(PinName pin) { - int chan; - switch (pin) { - case p15://=p0.23 of LPC1768 - default: - chan=0; - break; - case p16://=p0.24 of LPC1768 - chan=1; - break; - case p17://=p0.25 of LPC1768 - chan=2; - break; - case p18://=p0.26 of LPC1768 - chan=3; - break; - case p19://=p1.30 of LPC1768 - chan=4; - break; - case p20://=p1.31 of LPC1768 - chan=5; - break; - } - return(chan); -} - -PinName ADC::channel_to_pin(int chan) { - const PinName pin[8]={p15, p16, p17, p18, p19, p20, p15, p15}; - - if ((chan < 0) || (chan > 5)) - fprintf(stderr, "ADC channel %u is outside range available to MBED pins.\n", chan); - return(pin[chan & 0x07]); -} - - -int ADC::channel_to_pin_number(int chan) { - const int pin[8]={15, 16, 17, 18, 19, 20, 0, 0}; - - if ((chan < 0) || (chan > 5)) - fprintf(stderr, "ADC channel %u is outside range available to MBED pins.\n", chan); - return(pin[chan & 0x07]); -} - - -uint32_t ADC::_data_of_pin(PinName pin) { - //If in burst mode and at least one interrupt enabled then - //take all values from _adc_data - if (burst() && (LPC_ADC->ADINTEN & 0x3F)) { - return(_adc_data[_pin_to_channel(pin)]); - } else { - //Return current register value or last value from interrupt - switch (pin) { - case p15://=p0.23 of LPC1768 - default: - return(LPC_ADC->ADINTEN & 0x01?_adc_data[0]:LPC_ADC->ADDR0); - case p16://=p0.24 of LPC1768 - return(LPC_ADC->ADINTEN & 0x02?_adc_data[1]:LPC_ADC->ADDR1); - case p17://=p0.25 of LPC1768 - return(LPC_ADC->ADINTEN & 0x04?_adc_data[2]:LPC_ADC->ADDR2); - case p18://=p0.26 of LPC1768: - return(LPC_ADC->ADINTEN & 0x08?_adc_data[3]:LPC_ADC->ADDR3); - case p19://=p1.30 of LPC1768 - return(LPC_ADC->ADINTEN & 0x10?_adc_data[4]:LPC_ADC->ADDR4); - case p20://=p1.31 of LPC1768 - return(LPC_ADC->ADINTEN & 0x20?_adc_data[5]:LPC_ADC->ADDR5); - } - } -} - -//Enable or disable an ADC pin -void ADC::setup(PinName pin, int state) { - int chan; - chan=_pin_to_channel(pin); - if ((state & 1) == 1) { - switch(pin) { - case p15://=p0.23 of LPC1768 - default: - LPC_PINCON->PINSEL1 &= ~((unsigned int)0x3 << 14); - LPC_PINCON->PINSEL1 |= (unsigned int)0x1 << 14; - LPC_PINCON->PINMODE1 &= ~((unsigned int)0x3 << 14); - LPC_PINCON->PINMODE1 |= (unsigned int)0x2 << 14; - break; - case p16://=p0.24 of LPC1768 - LPC_PINCON->PINSEL1 &= ~((unsigned int)0x3 << 16); - LPC_PINCON->PINSEL1 |= (unsigned int)0x1 << 16; - LPC_PINCON->PINMODE1 &= ~((unsigned int)0x3 << 16); - LPC_PINCON->PINMODE1 |= (unsigned int)0x2 << 16; - break; - case p17://=p0.25 of LPC1768 - LPC_PINCON->PINSEL1 &= ~((unsigned int)0x3 << 18); - LPC_PINCON->PINSEL1 |= (unsigned int)0x1 << 18; - LPC_PINCON->PINMODE1 &= ~((unsigned int)0x3 << 18); - LPC_PINCON->PINMODE1 |= (unsigned int)0x2 << 18; - break; - case p18://=p0.26 of LPC1768: - LPC_PINCON->PINSEL1 &= ~((unsigned int)0x3 << 20); - LPC_PINCON->PINSEL1 |= (unsigned int)0x1 << 20; - LPC_PINCON->PINMODE1 &= ~((unsigned int)0x3 << 20); - LPC_PINCON->PINMODE1 |= (unsigned int)0x2 << 20; - break; - case p19://=p1.30 of LPC1768 - LPC_PINCON->PINSEL3 &= ~((unsigned int)0x3 << 28); - LPC_PINCON->PINSEL3 |= (unsigned int)0x3 << 28; - LPC_PINCON->PINMODE3 &= ~((unsigned int)0x3 << 28); - LPC_PINCON->PINMODE3 |= (unsigned int)0x2 << 28; - break; - case p20://=p1.31 of LPC1768 - LPC_PINCON->PINSEL3 &= ~((unsigned int)0x3 << 30); - LPC_PINCON->PINSEL3 |= (unsigned int)0x3 << 30; - LPC_PINCON->PINMODE3 &= ~((unsigned int)0x3 << 30); - LPC_PINCON->PINMODE3 |= (unsigned int)0x2 << 30; - break; - } - //Only one channel can be selected at a time if not in burst mode - if (!burst()) LPC_ADC->ADCR &= ~0xFF; - //Select channel - LPC_ADC->ADCR |= (1 << chan); - } - else { - switch(pin) { - case p15://=p0.23 of LPC1768 - default: - LPC_PINCON->PINSEL1 &= ~((unsigned int)0x3 << 14); - LPC_PINCON->PINMODE1 &= ~((unsigned int)0x3 << 14); - break; - case p16://=p0.24 of LPC1768 - LPC_PINCON->PINSEL1 &= ~((unsigned int)0x3 << 16); - LPC_PINCON->PINMODE1 &= ~((unsigned int)0x3 << 16); - break; - case p17://=p0.25 of LPC1768 - LPC_PINCON->PINSEL1 &= ~((unsigned int)0x3 << 18); - LPC_PINCON->PINMODE1 &= ~((unsigned int)0x3 << 18); - break; - case p18://=p0.26 of LPC1768: - LPC_PINCON->PINSEL1 &= ~((unsigned int)0x3 << 20); - LPC_PINCON->PINMODE1 &= ~((unsigned int)0x3 << 20); - break; - case p19://=p1.30 of LPC1768 - LPC_PINCON->PINSEL3 &= ~((unsigned int)0x3 << 28); - LPC_PINCON->PINMODE3 &= ~((unsigned int)0x3 << 28); - break; - case p20://=p1.31 of LPC1768 - LPC_PINCON->PINSEL3 &= ~((unsigned int)0x3 << 30); - LPC_PINCON->PINMODE3 &= ~((unsigned int)0x3 << 30); - break; - } - LPC_ADC->ADCR &= ~(1 << chan); - } -} -//Return channel enabled/disabled state -int ADC::setup(PinName pin) { - int chan; - - chan = _pin_to_channel(pin); - return((LPC_ADC->ADCR & (1 << chan)) >> chan); -} - -//Select channel already setup -void ADC::select(PinName pin) { - int chan; - - //Only one channel can be selected at a time if not in burst mode - if (!burst()) LPC_ADC->ADCR &= ~0xFF; - //Select channel - chan = _pin_to_channel(pin); - LPC_ADC->ADCR |= (1 << chan); -} - -//Enable or disable burst mode -void ADC::burst(int state) { - if ((state & 1) == 1) { - if (startmode(0) != 0) - fprintf(stderr, "Warning. startmode is %u. Must be 0 for burst mode.\n", startmode(0)); - LPC_ADC->ADCR |= (1 << 16); - } - else - LPC_ADC->ADCR &= ~(1 << 16); -} -//Return burst mode state -int ADC::burst(void) { - return((LPC_ADC->ADCR & (1 << 16)) >> 16); -} - -//Set startmode and edge -void ADC::startmode(int mode, int edge) { - int lpc_adc_temp; - - //Reset start mode and edge bit, - lpc_adc_temp = LPC_ADC->ADCR & ~(0x0F << 24); - //Write with new values - lpc_adc_temp |= ((mode & 7) << 24) | ((edge & 1) << 27); - LPC_ADC->ADCR = lpc_adc_temp; -} - -//Return startmode state according to mode_edge=0: mode and mode_edge=1: edge -int ADC::startmode(int mode_edge){ - switch (mode_edge) { - case 0: - default: - return((LPC_ADC->ADCR >> 24) & 0x07); - case 1: - return((LPC_ADC->ADCR >> 27) & 0x01); - } -} - -//Start ADC conversion -void ADC::start(void) { - startmode(1,0); -} - - -//Set interrupt enable/disable for pin to state -void ADC::interrupt_state(PinName pin, int state) { - int chan; - - chan = _pin_to_channel(pin); - if (state == 1) { - LPC_ADC->ADINTEN &= ~0x100; - LPC_ADC->ADINTEN |= 1 << chan; - /* Enable the ADC Interrupt */ - NVIC_EnableIRQ(ADC_IRQn); - } else { - LPC_ADC->ADINTEN &= ~( 1 << chan ); - //Disable interrrupt if no active pins left - if ((LPC_ADC->ADINTEN & 0xFF) == 0) - NVIC_DisableIRQ(ADC_IRQn); - } -} - -//Return enable/disable state of interrupt for pin -int ADC::interrupt_state(PinName pin) { - int chan; - - chan = _pin_to_channel(pin); - return((LPC_ADC->ADINTEN >> chan) & 0x01); -} - - -//Attach custom interrupt handler replacing default -void ADC::attach(void(*fptr)(void)) { - //* Attach IRQ - NVIC_SetVector(ADC_IRQn, (uint32_t)fptr); -} - -//Restore default interrupt handler -void ADC::detach(void) { - //* Attach IRQ - instance = this; - NVIC_SetVector(ADC_IRQn, (uint32_t)&_adcisr); -} - - -//Append interrupt handler for pin to function isr -void ADC::append(PinName pin, void(*fptr)(uint32_t value)) { - int chan; - - chan = _pin_to_channel(pin); - _adc_isr[chan] = fptr; -} - -//Append interrupt handler for pin to function isr -void ADC::unappend(PinName pin) { - int chan; - - chan = _pin_to_channel(pin); - _adc_isr[chan] = NULL; -} - -//Unappend global interrupt handler to function isr -void ADC::append(void(*fptr)(int chan, uint32_t value)) { - _adc_g_isr = fptr; -} - -//Detach global interrupt handler to function isr -void ADC::unappend() { - _adc_g_isr = NULL; -} - -//Set ADC offset -void offset(int offset) { - LPC_ADC->ADTRM &= ~(0x07 << 4); - LPC_ADC->ADTRM |= (offset & 0x07) << 4; -} - -//Return current ADC offset -int offset(void) { - return((LPC_ADC->ADTRM >> 4) & 0x07); -} - -//Return value of ADC on pin -int ADC::read(PinName pin) { - //Reset DONE and OVERRUN flags of interrupt handled ADC data - _adc_data[_pin_to_channel(pin)] &= ~(((uint32_t)0x01 << 31) | ((uint32_t)0x01 << 30)); - //Return value - return((_data_of_pin(pin) >> 4) & 0xFFF); -} - -//Return DONE flag of ADC on pin -int ADC::done(PinName pin) { - return((_data_of_pin(pin) >> 31) & 0x01); -} - -//Return OVERRUN flag of ADC on pin -int ADC::overrun(PinName pin) { - return((_data_of_pin(pin) >> 30) & 0x01); -} - -int ADC::actual_adc_clock(void) { - return(_adc_clk_freq); -} - -int ADC::actual_sample_rate(void) { - return(_adc_clk_freq / CLKS_PER_SAMPLE); -}
diff -r a2562dfbf543 -r c88c8173b9b2 ADC_full/adc.h --- a/ADC_full/adc.h Wed Feb 10 13:11:26 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,131 +0,0 @@ -/* mbed Library - ADC - * Copyright (c) 2010, sblandford - * released under MIT license http://mbed.org/licence/mit - */ - -#ifndef MBED_ADC_H -#define MBED_ADC_H - -#include "mbed.h" -#define XTAL_FREQ 12000000 -#define MAX_ADC_CLOCK 13000000 -#define CLKS_PER_SAMPLE 64 - -class ADC { -public: - - //Initialize ADC with ADC maximum sample rate of - //sample_rate and system clock divider of cclk_div - //Maximum recommened sample rate is 184000 - ADC(int sample_rate, int cclk_div); - - //Enable/disable ADC on pin according to state - //and also select/de-select for next conversion - void setup(PinName pin, int state); - - //Return enabled/disabled state of ADC on pin - int setup(PinName pin); - - //Enable/disable burst mode according to state - void burst(int state); - - //Select channel already setup - void select(PinName pin); - - //Return burst mode enabled/disabled - int burst(void); - - /*Set start condition and edge according to mode: - 0 - No start (this value should be used when clearing PDN to 0). - 1 - Start conversion now. - 2 - Start conversion when the edge selected by bit 27 occurs on the P2.10 / EINT0 / NMI pin. - 3 - Start conversion when the edge selected by bit 27 occurs on the P1.27 / CLKOUT / - USB_OVRCRn / CAP0.1 pin. - 4 - Start conversion when the edge selected by bit 27 occurs on MAT0.1. Note that this does - not require that the MAT0.1 function appear on a device pin. - 5 - Start conversion when the edge selected by bit 27 occurs on MAT0.3. Note that it is not - possible to cause the MAT0.3 function to appear on a device pin. - 6 - Start conversion when the edge selected by bit 27 occurs on MAT1.0. Note that this does - not require that the MAT1.0 function appear on a device pin. - 7 - Start conversion when the edge selected by bit 27 occurs on MAT1.1. Note that this does - not require that the MAT1.1 function appear on a device pin. - When mode >= 2, conversion is triggered by edge: - 0 - Rising edge - 1 - Falling edge - */ - void startmode(int mode, int edge); - - //Return startmode state according to mode_edge=0: mode and mode_edge=1: edge - int startmode(int mode_edge); - - //Start ADC conversion - void start(void); - - //Set interrupt enable/disable for pin to state - void interrupt_state(PinName pin, int state); - - //Return enable/disable state of interrupt for pin - int interrupt_state(PinName pin); - - //Attach custom interrupt handler replacing default - void attach(void(*fptr)(void)); - - //Restore default interrupt handler - void detach(void); - - //Append custom interrupt handler for pin - void append(PinName pin, void(*fptr)(uint32_t value)); - - //Unappend custom interrupt handler for pin - void unappend(PinName pin); - - //Append custom global interrupt handler - void append(void(*fptr)(int chan, uint32_t value)); - - //Unappend custom global interrupt handler - void unappend(void); - - //Set ADC offset to a value 0-7 - void offset(int offset); - - //Return current ADC offset - int offset(void); - - //Return value of ADC on pin - int read(PinName pin); - - //Return DONE flag of ADC on pin - int done(PinName pin); - - //Return OVERRUN flag of ADC on pin - int overrun(PinName pin); - - //Return actual ADC clock - int actual_adc_clock(void); - - //Return actual maximum sample rate - int actual_sample_rate(void); - - //Return pin ID of ADC channel - PinName channel_to_pin(int chan); - - //Return pin number of ADC channel - int channel_to_pin_number(int chan); - - -private: - int _pin_to_channel(PinName pin); - uint32_t _data_of_pin(PinName pin); - - int _adc_clk_freq; - void adcisr(void); - static void _adcisr(void); - static ADC *instance; - - uint32_t _adc_data[8]; - void(*_adc_isr[8])(uint32_t value); - void(*_adc_g_isr)(int chan, uint32_t value); - void(*_adc_m_isr)(void); -}; - -#endif \ No newline at end of file
diff -r a2562dfbf543 -r c88c8173b9b2 main.cpp --- a/main.cpp Wed Feb 10 13:11:26 2010 +0000 +++ b/main.cpp Mon Jan 18 08:28:25 2016 +0000 @@ -1,117 +1,49 @@ - -#define SAMPLE_RATE 150000 - #include "mbed.h" -#include "adc.h" - -DigitalOut int_led(LED1); - -//Initialise ADC to maximum SAMPLE_RATE and cclk divide set to 1 -ADC adc(SAMPLE_RATE, 1); +AnalogIn adc(A0); +DigitalOut myled1(LED1); +DigitalOut myled2(LED2); +DigitalOut myled3(LED3); -//Toggle LED on interrupt -void led_toggle(int chan, uint32_t value) { - int_led = !int_led; -} - -//Report ADC value on interrupt -void print_value(int chan, uint32_t value) { - printf("ADC interrupt on pin %u, value=%04u.\n", - adc.channel_to_pin_number(chan), (value >> 4) & 0xFFF); -} - - -int main() { - int i; +int meas; +int main() +{ - printf("Requested max sample rate is %u, actual max sample rate is %u.\n", - SAMPLE_RATE, adc.actual_sample_rate()); - while (1) { + printf("\n GSAS Micro Systems \r\n"); - //Set up ADC on pin 20 - adc.setup(p20,1); - //Set up ADC on pin 19 - adc.setup(p19,1); - wait(1); - - //Measure pin 20 - adc.select(p20); - //Start ADC conversion - adc.start(); - //Wait for it to complete - while(!adc.done(p20)); - printf("Measured value on pin 20 is %04u.\n", adc.read(p20)); - wait(1); - - //Measure pin 19 - adc.select(p19); - //Start ADC conversion - adc.start(); - //Wait for it to complete - while(!adc.done(p19)); - printf("Measured value on pin 19 is %04u.\n", adc.read(p19)); - wait(1); - + wait(0.1f); - //Append an interrupt handler that prints the channel and value - adc.append(print_value); - //Measure pin 20 - adc.select(p20); - //Enable the interrupt - adc.interrupt_state(p20,1); - //Start ADC conversion - adc.start(); - //Wait for it to complete - while(!adc.done(p20)); - wait(1); - - //Unset pin 20 - adc.setup(p20,0); - - //Togle LED on each converstion. - //Should be 12.5KHz on LED for all 6 pins. - //Sample rate=150KHz / 6 channels / 2 - adc.append(led_toggle); - - //Prepare for burst mode on all ADC pins - adc.startmode(0,0); - adc.burst(1); - adc.setup(p20,1); - adc.setup(p19,1); - adc.setup(p18,1); - adc.setup(p17,1); - adc.setup(p16,1); - adc.setup(p15,1); - //For burst mode, only one interrupt is required - //which can be on any enabled pin. We have enabled all - //of them here. - adc.interrupt_state(p15,1); - printf("Burst mode, printing once per second...\n"); - for (i=0; i<5; i++) - { - printf("%04u %04u %04u %04u %04u %04u\n", - adc.read(p20), - adc.read(p19), - adc.read(p18), - adc.read(p17), - adc.read(p16), - adc.read(p15)); - wait(1); + while(1) + { + meas = adc.read_u16(); + printf("meas is %d\r\n", meas); + + + if(meas<1000){ + myled1 = 1; + myled2 = 1; + myled3 = 0; + wait(0.5);} + else + myled3 = 1; + + if(meas>1000){ + if(meas<1100){ + myled1 = 0; + myled2 = 1; + myled3 = 1; + wait(0.5);} + else + myled1 = 1;} + if(meas>1100){ + myled1 = 1; + myled2 = 0; + myled3 = 1; + wait(0.5);} + else + myled2 = 1; + + + wait(0.3); } } - adc.burst(0); - adc.setup(p20,0); - adc.setup(p19,0); - adc.setup(p18,0); - adc.setup(p17,0); - adc.setup(p16,0); - adc.setup(p15,0); - adc.interrupt_state(p20,0); - adc.interrupt_state(p19,0); - adc.interrupt_state(p18,0); - adc.interrupt_state(p17,0); - adc.interrupt_state(p16,0); - adc.interrupt_state(p15,0); - printf("\n"); - } -} +
diff -r a2562dfbf543 -r c88c8173b9b2 mbed.bld --- a/mbed.bld Wed Feb 10 13:11:26 2010 +0000 +++ b/mbed.bld Mon Jan 18 08:28:25 2016 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/users/mbed_official/code/mbed/builds/49a220cc26e0 +http://mbed.org/users/mbed_official/code/mbed/builds/9296ab0bfc11 \ No newline at end of file