add i2c sample

This commit is contained in:
pvvx 2017-05-06 17:50:18 +03:00
parent 1752a87a8e
commit 60ffc5c30f
8 changed files with 929 additions and 8 deletions

View file

@ -0,0 +1,43 @@
/**************************************************************************
* Драйвер для INA219
**************************************************************************/
#ifndef _INA219DRV_H_
#define _INA219DRV_H_
#include "ina219/ina219.h"
#include "device.h"
#include "timer_api.h"
#include "driver/i2c_drv.h"
typedef struct _ina219data {
signed short voltage; // Voltage, 1mV
signed short current; // Current, 50uA?
signed short power; // Power, 1mW
unsigned short shunt; // 10uV
} INA219DATA, *PINA219DATA;
typedef struct _ina219drv {
unsigned char status;
unsigned char addr;
signed char init;
unsigned char tmp;
unsigned short config; // регистр конфигурации INA219
unsigned short calibration; // коэф. шунта для INA219
unsigned int count;
unsigned int errs;
gtimer_t timer;
union { // буфер
unsigned char uc[4];
unsigned short us[2];
signed short ss[2];
unsigned int ui;
} buf_i2c;
volatile i2c_drv_t i2c;
} INA219DRV, *PINA219DRV;
#define INA219_I2C_PIN_SDA PC_4
#define INA219_I2C_PIN_SCL PC_5
#define INA219_I2C_BUS_CLK 300000 //hz
#define INA219_TIMER TIMER3 // используемый таймер
#endif // _INA219DRV_H_