Team 6

Dependencies:   HTTPClient PowerControl SNICInterface_mod mbed-rtos mbed

Fork of HTTPClient_WiFi_HelloWorld by KDDI Fx0 hackathon

Committer:
daisukekmr
Date:
Sun Feb 15 04:34:59 2015 +0000
Revision:
10:4f206e833249
add light sensor.; make http get request a function.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
daisukekmr 10:4f206e833249 1 /* mbed Library - ADC
daisukekmr 10:4f206e833249 2 * Copyright (c) 2010, sblandford
daisukekmr 10:4f206e833249 3 * released under MIT license http://mbed.org/licence/mit
daisukekmr 10:4f206e833249 4 */
daisukekmr 10:4f206e833249 5
daisukekmr 10:4f206e833249 6 #ifndef MBED_ADC_H
daisukekmr 10:4f206e833249 7 #define MBED_ADC_H
daisukekmr 10:4f206e833249 8
daisukekmr 10:4f206e833249 9 #include "mbed.h"
daisukekmr 10:4f206e833249 10 #define XTAL_FREQ 12000000
daisukekmr 10:4f206e833249 11 #define MAX_ADC_CLOCK 13000000
daisukekmr 10:4f206e833249 12 #define CLKS_PER_SAMPLE 64
daisukekmr 10:4f206e833249 13
daisukekmr 10:4f206e833249 14 class ADC {
daisukekmr 10:4f206e833249 15 public:
daisukekmr 10:4f206e833249 16
daisukekmr 10:4f206e833249 17 //Initialize ADC with ADC maximum sample rate of
daisukekmr 10:4f206e833249 18 //sample_rate and system clock divider of cclk_div
daisukekmr 10:4f206e833249 19 //Maximum recommened sample rate is 184000
daisukekmr 10:4f206e833249 20 ADC(int sample_rate, int cclk_div);
daisukekmr 10:4f206e833249 21
daisukekmr 10:4f206e833249 22 //Enable/disable ADC on pin according to state
daisukekmr 10:4f206e833249 23 //and also select/de-select for next conversion
daisukekmr 10:4f206e833249 24 void setup(PinName pin, int state);
daisukekmr 10:4f206e833249 25
daisukekmr 10:4f206e833249 26 //Return enabled/disabled state of ADC on pin
daisukekmr 10:4f206e833249 27 int setup(PinName pin);
daisukekmr 10:4f206e833249 28
daisukekmr 10:4f206e833249 29 //Enable/disable burst mode according to state
daisukekmr 10:4f206e833249 30 void burst(int state);
daisukekmr 10:4f206e833249 31
daisukekmr 10:4f206e833249 32 //Select channel already setup
daisukekmr 10:4f206e833249 33 void select(PinName pin);
daisukekmr 10:4f206e833249 34
daisukekmr 10:4f206e833249 35 //Return burst mode enabled/disabled
daisukekmr 10:4f206e833249 36 int burst(void);
daisukekmr 10:4f206e833249 37
daisukekmr 10:4f206e833249 38 /*Set start condition and edge according to mode:
daisukekmr 10:4f206e833249 39 0 - No start (this value should be used when clearing PDN to 0).
daisukekmr 10:4f206e833249 40 1 - Start conversion now.
daisukekmr 10:4f206e833249 41 2 - Start conversion when the edge selected by bit 27 occurs on the P2.10 / EINT0 / NMI pin.
daisukekmr 10:4f206e833249 42 3 - Start conversion when the edge selected by bit 27 occurs on the P1.27 / CLKOUT /
daisukekmr 10:4f206e833249 43 USB_OVRCRn / CAP0.1 pin.
daisukekmr 10:4f206e833249 44 4 - Start conversion when the edge selected by bit 27 occurs on MAT0.1. Note that this does
daisukekmr 10:4f206e833249 45 not require that the MAT0.1 function appear on a device pin.
daisukekmr 10:4f206e833249 46 5 - Start conversion when the edge selected by bit 27 occurs on MAT0.3. Note that it is not
daisukekmr 10:4f206e833249 47 possible to cause the MAT0.3 function to appear on a device pin.
daisukekmr 10:4f206e833249 48 6 - Start conversion when the edge selected by bit 27 occurs on MAT1.0. Note that this does
daisukekmr 10:4f206e833249 49 not require that the MAT1.0 function appear on a device pin.
daisukekmr 10:4f206e833249 50 7 - Start conversion when the edge selected by bit 27 occurs on MAT1.1. Note that this does
daisukekmr 10:4f206e833249 51 not require that the MAT1.1 function appear on a device pin.
daisukekmr 10:4f206e833249 52 When mode >= 2, conversion is triggered by edge:
daisukekmr 10:4f206e833249 53 0 - Rising edge
daisukekmr 10:4f206e833249 54 1 - Falling edge
daisukekmr 10:4f206e833249 55 */
daisukekmr 10:4f206e833249 56 void startmode(int mode, int edge);
daisukekmr 10:4f206e833249 57
daisukekmr 10:4f206e833249 58 //Return startmode state according to mode_edge=0: mode and mode_edge=1: edge
daisukekmr 10:4f206e833249 59 int startmode(int mode_edge);
daisukekmr 10:4f206e833249 60
daisukekmr 10:4f206e833249 61 //Start ADC conversion
daisukekmr 10:4f206e833249 62 void start(void);
daisukekmr 10:4f206e833249 63
daisukekmr 10:4f206e833249 64 //Set interrupt enable/disable for pin to state
daisukekmr 10:4f206e833249 65 void interrupt_state(PinName pin, int state);
daisukekmr 10:4f206e833249 66
daisukekmr 10:4f206e833249 67 //Return enable/disable state of interrupt for pin
daisukekmr 10:4f206e833249 68 int interrupt_state(PinName pin);
daisukekmr 10:4f206e833249 69
daisukekmr 10:4f206e833249 70 //Attach custom interrupt handler replacing default
daisukekmr 10:4f206e833249 71 void attach(void(*fptr)(void));
daisukekmr 10:4f206e833249 72
daisukekmr 10:4f206e833249 73 //Restore default interrupt handler
daisukekmr 10:4f206e833249 74 void detach(void);
daisukekmr 10:4f206e833249 75
daisukekmr 10:4f206e833249 76 //Append custom interrupt handler for pin
daisukekmr 10:4f206e833249 77 void append(PinName pin, void(*fptr)(uint32_t value));
daisukekmr 10:4f206e833249 78
daisukekmr 10:4f206e833249 79 //Unappend custom interrupt handler for pin
daisukekmr 10:4f206e833249 80 void unappend(PinName pin);
daisukekmr 10:4f206e833249 81
daisukekmr 10:4f206e833249 82 //Append custom global interrupt handler
daisukekmr 10:4f206e833249 83 void append(void(*fptr)(int chan, uint32_t value));
daisukekmr 10:4f206e833249 84
daisukekmr 10:4f206e833249 85 //Unappend custom global interrupt handler
daisukekmr 10:4f206e833249 86 void unappend(void);
daisukekmr 10:4f206e833249 87
daisukekmr 10:4f206e833249 88 //Set ADC offset to a value 0-7
daisukekmr 10:4f206e833249 89 void offset(int offset);
daisukekmr 10:4f206e833249 90
daisukekmr 10:4f206e833249 91 //Return current ADC offset
daisukekmr 10:4f206e833249 92 int offset(void);
daisukekmr 10:4f206e833249 93
daisukekmr 10:4f206e833249 94 //Return value of ADC on pin
daisukekmr 10:4f206e833249 95 int read(PinName pin);
daisukekmr 10:4f206e833249 96
daisukekmr 10:4f206e833249 97 //Return DONE flag of ADC on pin
daisukekmr 10:4f206e833249 98 int done(PinName pin);
daisukekmr 10:4f206e833249 99
daisukekmr 10:4f206e833249 100 //Return OVERRUN flag of ADC on pin
daisukekmr 10:4f206e833249 101 int overrun(PinName pin);
daisukekmr 10:4f206e833249 102
daisukekmr 10:4f206e833249 103 //Return actual ADC clock
daisukekmr 10:4f206e833249 104 int actual_adc_clock(void);
daisukekmr 10:4f206e833249 105
daisukekmr 10:4f206e833249 106 //Return actual maximum sample rate
daisukekmr 10:4f206e833249 107 int actual_sample_rate(void);
daisukekmr 10:4f206e833249 108
daisukekmr 10:4f206e833249 109 //Return pin ID of ADC channel
daisukekmr 10:4f206e833249 110 PinName channel_to_pin(int chan);
daisukekmr 10:4f206e833249 111
daisukekmr 10:4f206e833249 112 //Return pin number of ADC channel
daisukekmr 10:4f206e833249 113 int channel_to_pin_number(int chan);
daisukekmr 10:4f206e833249 114
daisukekmr 10:4f206e833249 115
daisukekmr 10:4f206e833249 116 private:
daisukekmr 10:4f206e833249 117 int _pin_to_channel(PinName pin);
daisukekmr 10:4f206e833249 118 uint32_t _data_of_pin(PinName pin);
daisukekmr 10:4f206e833249 119
daisukekmr 10:4f206e833249 120 int _adc_clk_freq;
daisukekmr 10:4f206e833249 121 void adcisr(void);
daisukekmr 10:4f206e833249 122 static void _adcisr(void);
daisukekmr 10:4f206e833249 123 static ADC *instance;
daisukekmr 10:4f206e833249 124
daisukekmr 10:4f206e833249 125 uint32_t _adc_data[8];
daisukekmr 10:4f206e833249 126 void(*_adc_isr[8])(uint32_t value);
daisukekmr 10:4f206e833249 127 void(*_adc_g_isr)(int chan, uint32_t value);
daisukekmr 10:4f206e833249 128 void(*_adc_m_isr)(void);
daisukekmr 10:4f206e833249 129 };
daisukekmr 10:4f206e833249 130
daisukekmr 10:4f206e833249 131 #endif