initial upload
This commit is contained in:
parent
7ee65e72a5
commit
ff227b7a04
55
platform/osd-merkur/dev/batmon.c
Normal file
55
platform/osd-merkur/dev/batmon.c
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
#include "contiki.h"
|
||||||
|
#include "batmon.h"
|
||||||
|
#include <util/delay.h>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
int8_t batmon_init()
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int8_t batmon_get_voltage(uint16_t* voltage)
|
||||||
|
{
|
||||||
|
uint16_t volt = 0;
|
||||||
|
uint16_t resolution = 75;
|
||||||
|
uint16_t offset = 2550;
|
||||||
|
int8_t ctr = 0;
|
||||||
|
|
||||||
|
BATMON = 0 | BV(BATMON_HR);
|
||||||
|
_delay_us(2);
|
||||||
|
|
||||||
|
if(BATMON & BV(BATMON_OK))
|
||||||
|
{
|
||||||
|
// voltage above 2.550 V
|
||||||
|
resolution = 75;
|
||||||
|
offset = 2550;
|
||||||
|
for(ctr=15; ctr>=0; ctr--)
|
||||||
|
{
|
||||||
|
BATMON = (BATMON & 0xF0) | (ctr);
|
||||||
|
_delay_us(2);
|
||||||
|
if(BATMON & BV(BATMON_OK)) break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// voltage below 2.550 V
|
||||||
|
resolution = 50;
|
||||||
|
offset = 1700;
|
||||||
|
|
||||||
|
BATMON &= ~BV(BATMON_HR);
|
||||||
|
|
||||||
|
for(ctr=15; ctr>=0; ctr--)
|
||||||
|
{
|
||||||
|
BATMON = (BATMON & 0xF0) | (ctr);
|
||||||
|
_delay_us(2);
|
||||||
|
if(BATMON & BV(BATMON_OK)) break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
volt = resolution*ctr+offset;
|
||||||
|
*voltage=volt;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
8
platform/osd-merkur/dev/batmon.h
Normal file
8
platform/osd-merkur/dev/batmon.h
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
#ifndef BATMON_H_
|
||||||
|
#define BATMON_H_
|
||||||
|
|
||||||
|
int8_t batmon_init();
|
||||||
|
int8_t batmon_get_voltage(uint16_t* voltage);
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* BATMON_H_ */
|
Loading…
Reference in a new issue