Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
MARY_CAMERA.h
- Committer:
- okano
- Date:
- 2014-02-14
- Revision:
- 0:f4584dba3bac
- Child:
- 1:1e51936de820
- Child:
- 2:ee71ffdf317e
File content as of revision 0:f4584dba3bac:
#ifndef MBED_MARY_CAMERA #define MBED_MARY_CAMERA #define PARAM_NUM 99 #define CAM_I2C_ADDR 0x42 #define COMMAND_WRITE 0x00 #define COMMAND_READ 0x80 #define COMMAND_ADDR_INCREMENT 0x20 #define MEMORY_ADDR_LOW__REGISTER 0x0 #define MEMORY_ADDR_MID__REGISTER 0x1 #define MEMORY_ADDR_HIGH_REGISTER 0x2 #define CAMERA_DATA_REGISTER 0x8 #define CONTROL_DATA_REGISTER 0x3 #define STATUS_REGISTER 0x4 #define CONTROL__PAUSE_BUFFER_UPDATE 0x01 #define CONTROL__RESUME_BUFFER_UPDATE 0x00 #define PIXEL_PER_LINE 176 #define BYTE_PER_PIXEL 2 #define BYTE_PER_LINE (PIXEL_PER_LINE * BYTE_PER_PIXEL) #define SPI_FREQUENCY 1000000 // sample MARY_CAMERA camera( p5, p6, p7, p22, p9, p26, p28, p27 ) class MARY_CAMERA { public: /** Create a MARY_CAMERA instance connected to specified SPI and DigitalOut pins with specified address * * @param I2C_sda I2C-bus SDA pin * @param I2C_scl I2C-bus SCL pin * @param steps_per_rotation motor specific setting. This determines how many steps are needed to execute one full turn of motor shaft (360°). * @param I2C_address I2C-bus address (default: 0x42) */ MARY_CAMERA( PinName spi_mosi, PinName spi_miso, PinName spi_sck, PinName spi_cs, PinName cam_vsync, PinName cam_reset, PinName i2c_sda, PinName i2c_scl ); void init( void ); void open_transfer( void ); void close_transfer( void ); void transfer_a_line( short *p, int line_number, int x_offset, int n_of_pixels ); private: int send_spi( char data ); void write_register( char reg, char value ); int read_register( char reg ); void set_address( int address ); SPI spi; DigitalOut cs; DigitalOut vsync; DigitalOut reset; I2C i2c; }; #if 0 SPI camspi( p5, p6, p7 ); DigitalOut cs2( p22 ); DigitalOut vsync( p9 ); DigitalOut camera_reset( p26 ); #endif #define COMMAND_WRITE 0x00 #define COMMAND_READ 0x80 #define COMMAND_ADDR_INCREMENT 0x20 #define MEMORY_ADDR_LOW__REGISTER 0x0 #define MEMORY_ADDR_MID__REGISTER 0x1 #define MEMORY_ADDR_HIGH_REGISTER 0x2 #define CAMERA_DATA_REGISTER 0x8 #define CONTROL_DATA_REGISTER 0x3 #define STATUS_REGISTER 0x4 #define CONTROL__PAUSE_BUFFER_UPDATE 0x01 #define CONTROL__RESUME_BUFFER_UPDATE 0x00 #endif // MBED_MARY_CAMERA