A simple oscilloscope using Adafruit 2.8" TFT with touch. Runs on FRDM-KL25Z, FRDM-K22F, FRDM-K64F, NUCLEO-F411RE. 2 channel analog inputs with 4 trigger modes and time division.
Dependencies: SPI_STMPE610 UniGraphic mbed vt100
My first attempt of implementing an oscilloscope using FRDM-KL25Z and Adafruit 2.8" TFT with touch.
FRDM-KL25Z と Adafruit 2.8" TFT with touch を使用して作ってみた最初のオシロスコープです。
On 25-Sep-2017, wrong calculation of trigger pos/val fixed.
On 25-Nov-2015, FRDM-K64F and NUCLEO-F411RE platforms were added.
On 26-Nov-2015, FRDM-K22F is added (tested).
Note: Now ch2 is A2 instead of A1!
25-Sep-2017, トリガー値と位置の計算の誤りを修正しました。
25-Nov-2015, FRDM-K64F と NUCLEO-F411RE でも動くようになりました。
26-Nov-2015, FRDM-K22F でも動作確認が出来ました。
※一身上の都合で、アナログ入力の ch2 は A1 から A2 に変更しましたので、ご注意ください。m(_ _)m
This supports two analog inputs A0 for channel 1 and A2 for channel 2
and four trigger modes (NONE, RISE, FALL, LEVEL),
time division is 30us to 20ms per pixel which will make 300us/div to 200.0ms/div (as 10 pixels per div)
A0と A2 のアナログ2入力にて、
4種類のトリガーモード(NONE: フリーラン RISE: 立ち上がりエッジ、FALL: 立下りエッジ、LEVEL: レベル) 。
サンプリングは30us から 20ms, チャートの1メモリが10ピクセルなので、300us/dev から 200.0ms/div となっています。
The analog signals and gnd was picked at the pins in the picture above.
Note: now you need to pick A0 and A2 instead of A0 and A1.
信号は上記の写真のように、Adafruit のピンからつまみました。
変更により、A0とA2が入力となります。
When powered on or reset, the program starts in Trigger Mode = NONE (Free Run Mode)
電源投入、リセット後 プログラムはトリガーモード NONE (フリーランモード) で起動します。
To change trigger mode and/or time division, press run/stop button.
トリガーモードを変えたり、サンプリング時間を変えるのには run/stop ボタンを押してください。
Each time you push Trig button, the trigger mode changes
NONE -> RISE -> FALL -> LEVEL ( -> NONE).
トリガーボタンを押すたびにトリガーモードは
NONE(フリーラン) -> RISE (立ち上がりエッジ) -> FALL (立下りエッジ) -> LEVEL (レベル)
と変化します。
When trigger mode is not NONE,
to specify the trigger position, level and channel, push inside the wave frame.
Then green trigger marks will be shown and value of trigger position and voltage will be printed.
トリガーモードが NONE でないときに、チャネルの枠内をタッチしますと、
その位置がトリガーのポジション、レベル、チャネルになります。
そして、緑色のトリガーマークが表示され、下部にはトリガーの具体的なポジションとボルテージが表示されます。
To change time division push
"1/2" to Zoom Out (sampling interval will be bigger) or
"x2" to Zoom In (Sampling interval will be smaller).
サンプリングタイムを変更するのには
"1/2" ズームアウト (サンプリング間隔が長くなります) か
"x2" ズームイン (サンプリング間隔が短くなります。) を押してください。
On 7-Mar-2015 updated to UniGraphic library version!
2015年3月7日 UniGraphic ライブラリ使用版にアップデートしました。
FRDM-KL25Z
FRDM-K64F
NUCLEO-F411RE
main.h@10:bd3d8d71ee73, 2017-09-25 (annotated)
- Committer:
- Rhyme
- Date:
- Mon Sep 25 02:09:53 2017 +0000
- Revision:
- 10:bd3d8d71ee73
- Parent:
- 9:657155f03cb8
miss calc of trigger value/pos fixed
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Rhyme | 0:2b9a6c5fcd52 | 1 | /** mbed oscilloscope my implementation of a oscillo scope |
Rhyme | 0:2b9a6c5fcd52 | 2 | * Copyright (c) 2014, 2015 Motoo Tanaka @ Design Methodology Lab |
Rhyme | 0:2b9a6c5fcd52 | 3 | * |
Rhyme | 0:2b9a6c5fcd52 | 4 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
Rhyme | 0:2b9a6c5fcd52 | 5 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
Rhyme | 0:2b9a6c5fcd52 | 6 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
Rhyme | 0:2b9a6c5fcd52 | 7 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
Rhyme | 0:2b9a6c5fcd52 | 8 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
Rhyme | 0:2b9a6c5fcd52 | 9 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |
Rhyme | 0:2b9a6c5fcd52 | 10 | * THE SOFTWARE. |
Rhyme | 0:2b9a6c5fcd52 | 11 | */ |
Rhyme | 0:2b9a6c5fcd52 | 12 | #ifndef _MAIN_H_ |
Rhyme | 6:c93e2f12b789 | 13 | #define _MAIN_H_ included |
Rhyme | 4:6f3532a1a962 | 14 | |
Rhyme | 6:c93e2f12b789 | 15 | #if defined (TARGET_KL25Z) |
Rhyme | 6:c93e2f12b789 | 16 | #define PIN_SCLK PTD1 |
Rhyme | 6:c93e2f12b789 | 17 | #define PIN_MISO PTD3 |
Rhyme | 0:2b9a6c5fcd52 | 18 | #define PIN_MOSI PTD2 |
Rhyme | 0:2b9a6c5fcd52 | 19 | #define PIN_CS_TFT PTD0 |
Rhyme | 0:2b9a6c5fcd52 | 20 | #define PIN_DC_TFT PTD5 |
Rhyme | 6:c93e2f12b789 | 21 | #define PIN_CS_TSC PTA13 |
Rhyme | 9:657155f03cb8 | 22 | #define PIN_BL_TFT PTA12 |
Rhyme | 0:2b9a6c5fcd52 | 23 | #define PIN_CS_SD PTA4 |
Rhyme | 6:c93e2f12b789 | 24 | #define PIN_TSC_INTR PTC9 /* place holder */ |
Rhyme | 6:c93e2f12b789 | 25 | #define PIN_RESET_TFT PTB10 /* place holder */ |
Rhyme | 4:6f3532a1a962 | 26 | #define PIN_ADC_CH0 PTB0 |
Rhyme | 6:c93e2f12b789 | 27 | #define PIN_ADC_CH1 PTB2 |
Rhyme | 0:2b9a6c5fcd52 | 28 | |
Rhyme | 2:4b9260139892 | 29 | #elif defined (TARGET_KL46Z) |
Rhyme | 6:c93e2f12b789 | 30 | #define PIN_SCLK PTD5 |
Rhyme | 2:4b9260139892 | 31 | #define PIN_MISO PTD7 |
Rhyme | 6:c93e2f12b789 | 32 | #define PIN_MOSI PTD6 |
Rhyme | 2:4b9260139892 | 33 | #define PIN_CS_TFT PTD4 |
Rhyme | 2:4b9260139892 | 34 | #define PIN_DC_TFT PTD2 |
Rhyme | 6:c93e2f12b789 | 35 | #define PIN_CS_TSC PTA13 |
Rhyme | 2:4b9260139892 | 36 | #define PIN_BL_TFT PTC9 |
Rhyme | 2:4b9260139892 | 37 | #define PIN_CS_SD PTA4 |
Rhyme | 6:c93e2f12b789 | 38 | #define PIN_TSC_INTR PTC7 /* place holder */ |
Rhyme | 6:c93e2f12b789 | 39 | #define PIN_RESET_TFT PTC6 /* place holder */ |
Rhyme | 4:6f3532a1a962 | 40 | #define PIN_ADC_CH0 PTB0 |
Rhyme | 6:c93e2f12b789 | 41 | #define PIN_ADC_CH1 PTB2 |
Rhyme | 4:6f3532a1a962 | 42 | |
Rhyme | 4:6f3532a1a962 | 43 | #elif defined (TARGET_K64F) |
Rhyme | 6:c93e2f12b789 | 44 | #define PIN_SCLK PTD1 |
Rhyme | 4:6f3532a1a962 | 45 | #define PIN_MISO PTD3 |
Rhyme | 6:c93e2f12b789 | 46 | #define PIN_MOSI PTD2 |
Rhyme | 4:6f3532a1a962 | 47 | #define PIN_CS_TFT PTD0 |
Rhyme | 4:6f3532a1a962 | 48 | #define PIN_DC_TFT PTC4 |
Rhyme | 6:c93e2f12b789 | 49 | // for board rev E or later |
Rhyme | 6:c93e2f12b789 | 50 | #define PIN_CS_TSC PTC12 |
Rhyme | 6:c93e2f12b789 | 51 | // for earlier boards use following line |
Rhyme | 6:c93e2f12b789 | 52 | // #define PIN_CS_TSC PTA0 |
Rhyme | 4:6f3532a1a962 | 53 | #define PIN_BL_TFT PTC3 |
Rhyme | 4:6f3532a1a962 | 54 | #define PIN_CS_SD PTB23 |
Rhyme | 6:c93e2f12b789 | 55 | #define PIN_TSC_INTR PTC0 /* place holder */ |
Rhyme | 6:c93e2f12b789 | 56 | #define PIN_RESET_TFT PTC9 /* place holder */ |
Rhyme | 4:6f3532a1a962 | 57 | #define PIN_ADC_CH0 PTB2 |
Rhyme | 6:c93e2f12b789 | 58 | #define PIN_ADC_CH1 PTB10 |
Rhyme | 6:c93e2f12b789 | 59 | |
Rhyme | 6:c93e2f12b789 | 60 | #elif defined (TARGET_K22F) |
Rhyme | 6:c93e2f12b789 | 61 | #define PIN_SCLK PTD5 |
Rhyme | 6:c93e2f12b789 | 62 | #define PIN_MISO PTD7 |
Rhyme | 6:c93e2f12b789 | 63 | #define PIN_MOSI PTD6 |
Rhyme | 6:c93e2f12b789 | 64 | #define PIN_CS_TFT PTD4 |
Rhyme | 6:c93e2f12b789 | 65 | #define PIN_DC_TFT PTA1 |
Rhyme | 6:c93e2f12b789 | 66 | #define PIN_CS_TSC PTB19 |
Rhyme | 6:c93e2f12b789 | 67 | #define PIN_BL_TFT PTC6 |
Rhyme | 6:c93e2f12b789 | 68 | #define PIN_CS_SD PTA4 |
Rhyme | 6:c93e2f12b789 | 69 | #define PIN_TSC_INTR PTC7 /* place holder */ |
Rhyme | 6:c93e2f12b789 | 70 | #define PIN_RESET_TFT PTC9 /* place holder */ |
Rhyme | 6:c93e2f12b789 | 71 | #define PIN_ADC_CH0 PTB0 |
Rhyme | 6:c93e2f12b789 | 72 | #define PIN_ADC_CH1 PTC1 |
Rhyme | 6:c93e2f12b789 | 73 | |
Rhyme | 6:c93e2f12b789 | 74 | #elif defined (TARGET_NUCLEO_F411RE) |
Rhyme | 6:c93e2f12b789 | 75 | #define PIN_SCLK PA_5 |
Rhyme | 6:c93e2f12b789 | 76 | #define PIN_MISO PA_6 |
Rhyme | 6:c93e2f12b789 | 77 | #define PIN_MOSI PA_7 |
Rhyme | 6:c93e2f12b789 | 78 | #define PIN_CS_TFT PB_6 |
Rhyme | 6:c93e2f12b789 | 79 | #define PIN_DC_TFT PC_7 |
Rhyme | 6:c93e2f12b789 | 80 | #define PIN_CS_TSC PA_9 |
Rhyme | 6:c93e2f12b789 | 81 | #define PIN_BL_TFT PA_8 |
Rhyme | 6:c93e2f12b789 | 82 | #define PIN_CS_SD PB_5 |
Rhyme | 6:c93e2f12b789 | 83 | #define PIN_TSC_INTR PA_8 /* place holder */ |
Rhyme | 6:c93e2f12b789 | 84 | #define PIN_RESET_TFT PA_13 /* place holder */ |
Rhyme | 6:c93e2f12b789 | 85 | #define PIN_ADC_CH0 PA_0 |
Rhyme | 6:c93e2f12b789 | 86 | #define PIN_ADC_CH1 PA_4 |
Rhyme | 2:4b9260139892 | 87 | |
Rhyme | 8:62982cc8e5d8 | 88 | #elif defined (TARGET_K20D50M) |
Rhyme | 8:62982cc8e5d8 | 89 | #define PIN_SCLK PTD1 |
Rhyme | 8:62982cc8e5d8 | 90 | #define PIN_MISO PTD3 |
Rhyme | 8:62982cc8e5d8 | 91 | #define PIN_MOSI PTD2 |
Rhyme | 8:62982cc8e5d8 | 92 | #define PIN_CS_TFT PTC2 |
Rhyme | 8:62982cc8e5d8 | 93 | #define PIN_DC_TFT PTA2 |
Rhyme | 8:62982cc8e5d8 | 94 | #define PIN_CS_TSC PTA12 |
Rhyme | 8:62982cc8e5d8 | 95 | #define PIN_BL_TFT PTC4 |
Rhyme | 8:62982cc8e5d8 | 96 | #define PIN_CS_SD PTC8 |
Rhyme | 8:62982cc8e5d8 | 97 | #define PIN_TSC_INTR PTA4 /* place holder */ |
Rhyme | 8:62982cc8e5d8 | 98 | #define PIN_RESET_TFT PTC7 /* place holder */ |
Rhyme | 8:62982cc8e5d8 | 99 | #define PIN_ADC_CH0 PTC0 |
Rhyme | 8:62982cc8e5d8 | 100 | #define PIN_ADC_CH1 PTD6 |
Rhyme | 8:62982cc8e5d8 | 101 | |
Rhyme | 8:62982cc8e5d8 | 102 | #elif defined (TARGET_RZ_A1H) |
Rhyme | 8:62982cc8e5d8 | 103 | #define PIN_SCLK P10_12 |
Rhyme | 8:62982cc8e5d8 | 104 | #define PIN_MISO P10_15 |
Rhyme | 8:62982cc8e5d8 | 105 | #define PIN_MOSI P10_14 |
Rhyme | 8:62982cc8e5d8 | 106 | #define PIN_CS_TFT P10_13 |
Rhyme | 8:62982cc8e5d8 | 107 | #define PIN_DC_TFT P8_14 |
Rhyme | 8:62982cc8e5d8 | 108 | #define PIN_CS_TSC P8_15 |
Rhyme | 8:62982cc8e5d8 | 109 | #define PIN_BL_TFT P8_11 |
Rhyme | 8:62982cc8e5d8 | 110 | #define PIN_CS_SD P4_5 |
Rhyme | 8:62982cc8e5d8 | 111 | #define PIN_TSC_INTR P2_9 /* place holder */ |
Rhyme | 8:62982cc8e5d8 | 112 | #define PIN_RESET_TFT P2_10 /* place holder */ |
Rhyme | 8:62982cc8e5d8 | 113 | #define PIN_ADC_CH0 P1_8 |
Rhyme | 8:62982cc8e5d8 | 114 | #define PIN_ADC_CH1 P1_10 |
Rhyme | 8:62982cc8e5d8 | 115 | #elif defined (TARGET_MAX32600MBED) |
Rhyme | 8:62982cc8e5d8 | 116 | /* I2C */ |
Rhyme | 8:62982cc8e5d8 | 117 | #define PIN_SCL P2_7 |
Rhyme | 8:62982cc8e5d8 | 118 | #define PIN_SDA P2_6 |
Rhyme | 8:62982cc8e5d8 | 119 | /* SPI */ |
Rhyme | 8:62982cc8e5d8 | 120 | #define PIN_SCLK P2_0 |
Rhyme | 8:62982cc8e5d8 | 121 | #define PIN_MISO P2_2 |
Rhyme | 8:62982cc8e5d8 | 122 | #define PIN_MOSI P2_1 |
Rhyme | 8:62982cc8e5d8 | 123 | #define PIN_CS0 P2_3 |
Rhyme | 8:62982cc8e5d8 | 124 | /* Interrupt */ |
Rhyme | 8:62982cc8e5d8 | 125 | #define PIN_INT0 P2_4 |
Rhyme | 8:62982cc8e5d8 | 126 | #define PIN_INT1 P2_5 |
Rhyme | 8:62982cc8e5d8 | 127 | #define PIN_INT2 P1_7 |
Rhyme | 8:62982cc8e5d8 | 128 | #define PIN_INT3 P1_6 |
Rhyme | 8:62982cc8e5d8 | 129 | #define PIN_INT4 P1_5 |
Rhyme | 8:62982cc8e5d8 | 130 | #define PIN_INT5 P1_4 |
Rhyme | 8:62982cc8e5d8 | 131 | /* Analog In */ |
Rhyme | 8:62982cc8e5d8 | 132 | #define PIN_AN0 AIN_0P |
Rhyme | 8:62982cc8e5d8 | 133 | #define PIN_AN1 AIN_1P |
Rhyme | 8:62982cc8e5d8 | 134 | #define PIN_AN2 AIN_2P |
Rhyme | 8:62982cc8e5d8 | 135 | #define PIN_AN3 AIN_3P |
Rhyme | 8:62982cc8e5d8 | 136 | #define PIN_AN4 AIN_4P |
Rhyme | 8:62982cc8e5d8 | 137 | #define PIN_AN5 AIN_5P |
Rhyme | 8:62982cc8e5d8 | 138 | #define BOARD_NAME "MAX32600MBED" |
Rhyme | 8:62982cc8e5d8 | 139 | |
Rhyme | 8:62982cc8e5d8 | 140 | #define PIN_CS_TFT P2_3 // D10 PTD0 |
Rhyme | 8:62982cc8e5d8 | 141 | #define PIN_DC_TFT P2_4 // D9 PTD5 |
Rhyme | 8:62982cc8e5d8 | 142 | #define PIN_CS_TSC P2_5 // D8 PTA13 |
Rhyme | 8:62982cc8e5d8 | 143 | #define PIN_BL_TFT P1_7 // D7 PTC9 |
Rhyme | 8:62982cc8e5d8 | 144 | #define PIN_CS_SD P1_4 // D4 PTA4 |
Rhyme | 8:62982cc8e5d8 | 145 | #define PIN_TSC_INTR P5_4 // PTC9 /* place holder */ |
Rhyme | 8:62982cc8e5d8 | 146 | #define PIN_RESET_TFT P5_5 /// PTB10 /* place holder */ |
Rhyme | 8:62982cc8e5d8 | 147 | #define PIN_ADC_CH0 AIN_0P // A0 PTB0 |
Rhyme | 8:62982cc8e5d8 | 148 | #define PIN_ADC_CH1 AIN_2P // A2 PTB2 |
Rhyme | 8:62982cc8e5d8 | 149 | |
Rhyme | 2:4b9260139892 | 150 | #else |
Rhyme | 6:c93e2f12b789 | 151 | #error TARGET NOT DEFINED |
Rhyme | 6:c93e2f12b789 | 152 | #define PIN_SCLK D13 |
Rhyme | 6:c93e2f12b789 | 153 | #define PIN_MISO D12 |
Rhyme | 6:c93e2f12b789 | 154 | #define PIN_MOSI D11 |
Rhyme | 6:c93e2f12b789 | 155 | #define PIN_CS_TFT D10 |
Rhyme | 6:c93e2f12b789 | 156 | #define PIN_DC_TFT D9 |
Rhyme | 6:c93e2f12b789 | 157 | #define PIN_CS_TSC D8 |
Rhyme | 6:c93e2f12b789 | 158 | #define PIN_BL_TFT D7 |
Rhyme | 6:c93e2f12b789 | 159 | #define PIN_CS_SD D4 |
Rhyme | 6:c93e2f12b789 | 160 | #define PIN_TSC_INTR D5-inside /* place holder */ |
Rhyme | 6:c93e2f12b789 | 161 | #define PIN_RESET_TFT D4-inside /* place holder */ |
Rhyme | 6:c93e2f12b789 | 162 | #define PIN_ADC_CH0 A0 |
Rhyme | 6:c93e2f12b789 | 163 | #define PIN_ADC_CH1 A2 |
Rhyme | 6:c93e2f12b789 | 164 | |
Rhyme | 2:4b9260139892 | 165 | #endif |
Rhyme | 2:4b9260139892 | 166 | |
Rhyme | 0:2b9a6c5fcd52 | 167 | #define CHART_LEN 198 |
Rhyme | 0:2b9a6c5fcd52 | 168 | |
Rhyme | 0:2b9a6c5fcd52 | 169 | // NOTE: in case MIN_INTERVAL is too small |
Rhyme | 0:2b9a6c5fcd52 | 170 | // the program hangs during ADC and timer interrupt |
Rhyme | 8:62982cc8e5d8 | 171 | #if defined (TARGET_MAX32600MBED) |
Rhyme | 8:62982cc8e5d8 | 172 | #define MIN_INTERVAL 60 |
Rhyme | 8:62982cc8e5d8 | 173 | #else |
Rhyme | 0:2b9a6c5fcd52 | 174 | #define MIN_INTERVAL 30 |
Rhyme | 8:62982cc8e5d8 | 175 | #endif |
Rhyme | 0:2b9a6c5fcd52 | 176 | #define MAX_INTERVAL 20000 |
Rhyme | 0:2b9a6c5fcd52 | 177 | #define NUM_MAX_MENU 20 |
Rhyme | 0:2b9a6c5fcd52 | 178 | #define NUM_MAX_ANALOG_CH 2 |
Rhyme | 0:2b9a6c5fcd52 | 179 | #define MODE_RUN 1 |
Rhyme | 0:2b9a6c5fcd52 | 180 | #define MODE_STOP 0 |
Rhyme | 0:2b9a6c5fcd52 | 181 | |
Rhyme | 0:2b9a6c5fcd52 | 182 | extern vt100 tty ; |
Rhyme | 0:2b9a6c5fcd52 | 183 | extern AnalogIn *ach[] ; |
Rhyme | 0:2b9a6c5fcd52 | 184 | extern Ticker timer ; |
Rhyme | 0:2b9a6c5fcd52 | 185 | |
Rhyme | 0:2b9a6c5fcd52 | 186 | extern DigitalOut backlight ; |
Rhyme | 3:ea0c3cffa988 | 187 | extern ILI9341 TFT ; |
Rhyme | 0:2b9a6c5fcd52 | 188 | extern SPI_STMPE610 TSC ; |
Rhyme | 0:2b9a6c5fcd52 | 189 | extern TFTMenuItem *menu[] ; |
Rhyme | 0:2b9a6c5fcd52 | 190 | extern int numMenu ; |
Rhyme | 0:2b9a6c5fcd52 | 191 | |
Rhyme | 0:2b9a6c5fcd52 | 192 | extern float vref ; // input range 0 - 3.3V |
Rhyme | 0:2b9a6c5fcd52 | 193 | |
Rhyme | 0:2b9a6c5fcd52 | 194 | extern uint16_t udata[2][NUM_MAX_ANALOG_CH][CHART_LEN] ; |
Rhyme | 0:2b9a6c5fcd52 | 195 | extern int data_index ; |
Rhyme | 0:2b9a6c5fcd52 | 196 | extern uint16_t bor[2] ; // begin of ring buffer |
Rhyme | 0:2b9a6c5fcd52 | 197 | |
Rhyme | 0:2b9a6c5fcd52 | 198 | extern int numAnalogIn ; |
Rhyme | 0:2b9a6c5fcd52 | 199 | extern int memLength ; |
Rhyme | 0:2b9a6c5fcd52 | 200 | extern int us_interval ; // 20us = 50KHz |
Rhyme | 0:2b9a6c5fcd52 | 201 | extern bool frame_full ; |
Rhyme | 0:2b9a6c5fcd52 | 202 | extern int page ; // |
Rhyme | 0:2b9a6c5fcd52 | 203 | extern int prev_page ; |
Rhyme | 0:2b9a6c5fcd52 | 204 | extern int mode ; |
Rhyme | 0:2b9a6c5fcd52 | 205 | |
Rhyme | 0:2b9a6c5fcd52 | 206 | float u2v(uint16_t uvalue) ; |
Rhyme | 0:2b9a6c5fcd52 | 207 | uint16_t v2u(float voltage) ; |
Rhyme | 0:2b9a6c5fcd52 | 208 | float u2f(uint16_t value) ; |
Rhyme | 0:2b9a6c5fcd52 | 209 | |
Rhyme | 0:2b9a6c5fcd52 | 210 | void initADC(void) ; |
Rhyme | 0:2b9a6c5fcd52 | 211 | void envChanged(void) ; |
Rhyme | 0:2b9a6c5fcd52 | 212 | bool checkTrigger(void) ; |
Rhyme | 0:2b9a6c5fcd52 | 213 | void sampleAD(void) ; |
Rhyme | 0:2b9a6c5fcd52 | 214 | #endif /* _MAIN_H_ */ |