Add sensor.get_id function to return PID.

This commit is contained in:
iabdalkader 2016-02-10 19:00:05 +02:00
parent 4ed583380e
commit f8bfbfabe9
4 changed files with 26 additions and 5 deletions

@ -1 +1 @@
Subproject commit a1a09126d5837054c2603f957a5817d014db2f1a Subproject commit 95bf7ae229acf2c2244acaa53e2222ff36ac9e4c

View File

@ -28,6 +28,10 @@ static mp_obj_t py_sensor_reset() {
return mp_const_none; return mp_const_none;
} }
static mp_obj_t py_sensor_get_id() {
return mp_obj_new_int(sensor_get_id());
}
static mp_obj_t py_sensor_snapshot() { static mp_obj_t py_sensor_snapshot() {
mp_obj_t image = py_image(0, 0, 0, 0); mp_obj_t image = py_image(0, 0, 0, 0);
@ -182,6 +186,7 @@ static mp_obj_t py_sensor_read_reg(mp_obj_t addr) {
//} //}
STATIC MP_DEFINE_CONST_FUN_OBJ_0(py_sensor_reset_obj, py_sensor_reset); STATIC MP_DEFINE_CONST_FUN_OBJ_0(py_sensor_reset_obj, py_sensor_reset);
STATIC MP_DEFINE_CONST_FUN_OBJ_0(py_sensor_get_id_obj, py_sensor_get_id);
STATIC MP_DEFINE_CONST_FUN_OBJ_0(py_sensor_snapshot_obj, py_sensor_snapshot); STATIC MP_DEFINE_CONST_FUN_OBJ_0(py_sensor_snapshot_obj, py_sensor_snapshot);
STATIC MP_DEFINE_CONST_FUN_OBJ_1(py_sensor_set_pixformat_obj, py_sensor_set_pixformat); STATIC MP_DEFINE_CONST_FUN_OBJ_1(py_sensor_set_pixformat_obj, py_sensor_set_pixformat);
STATIC MP_DEFINE_CONST_FUN_OBJ_1(py_sensor_set_framerate_obj, py_sensor_set_framerate); STATIC MP_DEFINE_CONST_FUN_OBJ_1(py_sensor_set_framerate_obj, py_sensor_set_framerate);
@ -203,6 +208,9 @@ STATIC const mp_map_elem_t globals_dict_table[] = {
{ MP_OBJ_NEW_QSTR(MP_QSTR_YUV422), MP_OBJ_NEW_SMALL_INT(PIXFORMAT_YUV422)}, /* 2BPP/YUV422*/ { MP_OBJ_NEW_QSTR(MP_QSTR_YUV422), MP_OBJ_NEW_SMALL_INT(PIXFORMAT_YUV422)}, /* 2BPP/YUV422*/
{ MP_OBJ_NEW_QSTR(MP_QSTR_GRAYSCALE), MP_OBJ_NEW_SMALL_INT(PIXFORMAT_GRAYSCALE)},/* 1BPP/GRAYSCALE*/ { MP_OBJ_NEW_QSTR(MP_QSTR_GRAYSCALE), MP_OBJ_NEW_SMALL_INT(PIXFORMAT_GRAYSCALE)},/* 1BPP/GRAYSCALE*/
{ MP_OBJ_NEW_QSTR(MP_QSTR_JPEG), MP_OBJ_NEW_SMALL_INT(PIXFORMAT_JPEG)}, /* JPEG/COMPRESSED*/ { MP_OBJ_NEW_QSTR(MP_QSTR_JPEG), MP_OBJ_NEW_SMALL_INT(PIXFORMAT_JPEG)}, /* JPEG/COMPRESSED*/
{ MP_OBJ_NEW_QSTR(MP_QSTR_OV9650), MP_OBJ_NEW_SMALL_INT(OV9650_PID)},
{ MP_OBJ_NEW_QSTR(MP_QSTR_OV2640), MP_OBJ_NEW_SMALL_INT(OV2640_PID)},
{ MP_OBJ_NEW_QSTR(MP_QSTR_OV7725), MP_OBJ_NEW_SMALL_INT(OV7725_PID)},
// Special effects // Special effects
{ MP_OBJ_NEW_QSTR(MP_QSTR_NORMAL), MP_OBJ_NEW_SMALL_INT(SDE_NORMAL)}, /* Normal/No SDE */ { MP_OBJ_NEW_QSTR(MP_QSTR_NORMAL), MP_OBJ_NEW_SMALL_INT(SDE_NORMAL)}, /* Normal/No SDE */
@ -224,6 +232,7 @@ STATIC const mp_map_elem_t globals_dict_table[] = {
// Sensor functions // Sensor functions
{ MP_OBJ_NEW_QSTR(MP_QSTR_reset), (mp_obj_t)&py_sensor_reset_obj }, { MP_OBJ_NEW_QSTR(MP_QSTR_reset), (mp_obj_t)&py_sensor_reset_obj },
{ MP_OBJ_NEW_QSTR(MP_QSTR_snapshot), (mp_obj_t)&py_sensor_snapshot_obj }, { MP_OBJ_NEW_QSTR(MP_QSTR_snapshot), (mp_obj_t)&py_sensor_snapshot_obj },
{ MP_OBJ_NEW_QSTR(MP_QSTR_get_id), (mp_obj_t)&py_sensor_get_id_obj },
{ MP_OBJ_NEW_QSTR(MP_QSTR_set_pixformat), (mp_obj_t)&py_sensor_set_pixformat_obj }, { MP_OBJ_NEW_QSTR(MP_QSTR_set_pixformat), (mp_obj_t)&py_sensor_set_pixformat_obj },
{ MP_OBJ_NEW_QSTR(MP_QSTR_set_framerate), (mp_obj_t)&py_sensor_set_framerate_obj }, { MP_OBJ_NEW_QSTR(MP_QSTR_set_framerate), (mp_obj_t)&py_sensor_set_framerate_obj },
{ MP_OBJ_NEW_QSTR(MP_QSTR_set_framesize), (mp_obj_t)&py_sensor_set_framesize_obj }, { MP_OBJ_NEW_QSTR(MP_QSTR_set_framesize), (mp_obj_t)&py_sensor_set_framesize_obj },

View File

@ -25,10 +25,6 @@
#define REG_MIDH 0x1C #define REG_MIDH 0x1C
#define REG_MIDL 0x1D #define REG_MIDL 0x1D
#define OV9650_PID 0x96
#define OV2640_PID 0x26
#define OV7725_PID 0x77
#define XCLK_FREQ (12000000) #define XCLK_FREQ (12000000)
#define MAX_XFER_SIZE (0xFFFC) #define MAX_XFER_SIZE (0xFFFC)
@ -278,6 +274,11 @@ int sensor_reset()
return 0; return 0;
} }
int sensor_get_id()
{
return sensor.id.PID;
}
int sensor_read_reg(uint8_t reg) int sensor_read_reg(uint8_t reg)
{ {
return SCCB_Read(sensor.slv_addr, reg); return SCCB_Read(sensor.slv_addr, reg);

View File

@ -10,6 +10,11 @@
#define __SENSOR_H__ #define __SENSOR_H__
#include <stdint.h> #include <stdint.h>
#include "imlib.h" #include "imlib.h"
#define OV9650_PID (0x96)
#define OV2640_PID (0x26)
#define OV7725_PID (0x77)
struct sensor_id { struct sensor_id {
uint8_t MIDH; uint8_t MIDH;
uint8_t MIDL; uint8_t MIDL;
@ -134,6 +139,12 @@ void sensor_init0();
* @return On success, 0 is returned. If the sensor is not supported, or not detected, -1 is returned. * @return On success, 0 is returned. If the sensor is not supported, or not detected, -1 is returned.
*/ */
int sensor_reset(); int sensor_reset();
/**
* Return sensor PID.
*
* @return On success, sensor PID is returned. If the sensor is not supported, or not detected, -1 is returned.
*/
int sensor_get_id();
/** /**
* Read a sensor register. * Read a sensor register.
* *