Skip to content

Commit a4092a6

Browse files
committed
1.0.6
added VCC reading lib
1 parent 7b034fa commit a4092a6

File tree

4 files changed

+87
-0
lines changed

4 files changed

+87
-0
lines changed
Binary file not shown.

microNode/libraries/system/system.c

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
#include <system.h>
2+
3+
uint16_t readVCC(){
4+
5+
// disable ADC
6+
while (ADC->STATUS.bit.SYNCBUSY);
7+
ADC->CTRLA.bit.ENABLE = 0x00;
8+
9+
// internal 1V reference (default)
10+
analogReference(AR_INTERNAL1V0);
11+
// 12 bit resolution (default)
12+
analogWriteResolution(12);
13+
// MUXp 0x1B = SCALEDIOVCC/4 => connected to Vcc
14+
ADC->INPUTCTRL.bit.MUXPOS = 0x1B ;
15+
16+
// enable ADC
17+
while (ADC->STATUS.bit.SYNCBUSY);
18+
ADC->CTRLA.bit.ENABLE = 0x01;
19+
20+
// start conversion
21+
while (ADC->STATUS.bit.SYNCBUSY);
22+
ADC->SWTRIG.bit.START = 1;
23+
24+
// clear the Data Ready flag
25+
ADC->INTFLAG.bit.RESRDY = 1;
26+
27+
// start conversion again, reading after input change needs to be discarded
28+
while (ADC->STATUS.bit.SYNCBUSY);
29+
ADC->SWTRIG.bit.START = 1;
30+
31+
// waiting for conversion to complete
32+
while (!ADC->INTFLAG.bit.RESRDY);
33+
const uint32_t valueRead = ADC->RESULT.reg;
34+
35+
// disable ADC
36+
while (ADC->STATUS.bit.SYNCBUSY);
37+
ADC->CTRLA.bit.ENABLE = 0x00;
38+
39+
uint32_t voltage = valueRead * 4 * 1000;
40+
voltage /= 4096;
41+
42+
return voltage;
43+
}

microNode/libraries/system/system.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
#include <stdio.h>
2+
#include <Arduino.h>
3+
4+
uint16_t readVCC();

package_loranodes_index.json

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -352,6 +352,46 @@
352352
"version": "4.0.0-atmel"
353353
}
354354
]
355+
},
356+
{
357+
"version": "1.0.6",
358+
"boards": [
359+
{
360+
"name": "microNode"
361+
}
362+
],
363+
"archiveFileName": "microNode-1.0.6.tar.bz2",
364+
"checksum": "SHA-256:22266056f02077a0afd2cf22b303537a1988c1e80917ad11dd648dab0244f080",
365+
"url": "https://github.com/loranodes/arduino-core/raw/1.0.6/microNode-1.0.6.tar.bz2",
366+
"size": 1182020,
367+
"architecture": "samd",
368+
"name": "LoRaNodes M0 Boards",
369+
"category": "LoRaNodes",
370+
"help": {
371+
"online": "https://github.com/loranodes"
372+
},
373+
"toolsDependencies": [
374+
{
375+
"name": "arm-none-eabi-gcc",
376+
"packager": "arduino",
377+
"version": "4.8.3-2014q1"
378+
},
379+
{
380+
"name": "bossac",
381+
"packager": "arduino",
382+
"version": "1.6.1-arduino"
383+
},
384+
{
385+
"name": "openocd",
386+
"packager": "arduino",
387+
"version": "0.9.0-arduino"
388+
},
389+
{
390+
"name": "CMSIS",
391+
"packager": "arduino",
392+
"version": "4.0.0-atmel"
393+
}
394+
]
355395
}
356396
]
357397
}

0 commit comments

Comments
 (0)