A "Hello" program for MARMEX_VB library. This application may work 40pin type mbed platforms ;) This application expects to have the MARMEX_VB module on a "MAPLE mini type-B (MARM03-BASE)" baseboard (slot2) with a MARMEX_OB module (on slot1)
Dependencies: MARMEX_VB NokiaLCD mbed
Sample code for MARMEX-VB (MARY-VB) camera module.
This is a very simple program just copies the data from camera to OELD.
Diff: MARMEX_OB_oled.h
- Revision:
- 1:715bb00d7008
- Parent:
- 0:139f0c46d0fd
- Child:
- 2:7294334432d4
--- a/MARMEX_OB_oled.h Mon Jun 09 20:14:04 2014 +0000 +++ b/MARMEX_OB_oled.h Mon Jun 16 14:04:33 2014 +0000 @@ -2,8 +2,8 @@ * * @class MARMEX_OB_oled * @author tedd - * @version 0.52 - * @date 06-Jun-2014 + * @version 0.53 (optimized for "line data transfer") + * @date 16-Jun-2014 * * Released under the MIT License: http://mbed.org/license/mit * @@ -320,78 +320,41 @@ } void blit565( int x, int y, int width, int height, short* colour ) { - _cs = 0; _window( x, y, width, height ); -#define OPTIMIZE_BY_GPIO_REGISTER_ACCESS -#if defined( TARGET_MBED_LPC1768 ) && defined (OPTIMIZE_BY_GPIO_REGISTER_ACCESS ) - LPC_GPIO1->FIOMASK = ~0x80000000; - - for (int i = 0; i < width * height; i += 8 ) { - LPC_GPIO1->FIOCLR = 0x80000000; - _spi.write( 0x100 | (*colour >> 8) ); - LPC_GPIO1->FIOSET = 0x80000000; +#define OPTIMIZE_KEEP_ASSERTING_CS_DURING_LINE_DATA_TRANSFER +#ifdef OPTIMIZE_KEEP_ASSERTING_CS_DURING_LINE_DATA_TRANSFER - LPC_GPIO1->FIOCLR = 0x80000000; - _spi.write( 0x100 | *colour++ ); - LPC_GPIO1->FIOSET = 0x80000000; - - LPC_GPIO1->FIOCLR = 0x80000000; - _spi.write( 0x100 | (*colour >> 8) ); - LPC_GPIO1->FIOSET = 0x80000000; + _cs = 0; - LPC_GPIO1->FIOCLR = 0x80000000; + for (int i = 0; i < width * height; i += 8 ) { + _spi.write( 0x100 | (*colour >> 8) ); _spi.write( 0x100 | *colour++ ); - LPC_GPIO1->FIOSET = 0x80000000; - - LPC_GPIO1->FIOCLR = 0x80000000; - _spi.write( 0x100 | (*colour >> 8) ); - LPC_GPIO1->FIOSET = 0x80000000; - LPC_GPIO1->FIOCLR = 0x80000000; + _spi.write( 0x100 | (*colour >> 8) ); _spi.write( 0x100 | *colour++ ); - LPC_GPIO1->FIOSET = 0x80000000; - LPC_GPIO1->FIOCLR = 0x80000000; _spi.write( 0x100 | (*colour >> 8) ); - LPC_GPIO1->FIOSET = 0x80000000; + _spi.write( 0x100 | *colour++ ); - LPC_GPIO1->FIOCLR = 0x80000000; + _spi.write( 0x100 | (*colour >> 8) ); _spi.write( 0x100 | *colour++ ); - LPC_GPIO1->FIOSET = 0x80000000; - LPC_GPIO1->FIOCLR = 0x80000000; _spi.write( 0x100 | (*colour >> 8) ); - LPC_GPIO1->FIOSET = 0x80000000; - - LPC_GPIO1->FIOCLR = 0x80000000; _spi.write( 0x100 | *colour++ ); - LPC_GPIO1->FIOSET = 0x80000000; - LPC_GPIO1->FIOCLR = 0x80000000; _spi.write( 0x100 | (*colour >> 8) ); - LPC_GPIO1->FIOSET = 0x80000000; - - LPC_GPIO1->FIOCLR = 0x80000000; _spi.write( 0x100 | *colour++ ); - LPC_GPIO1->FIOSET = 0x80000000; - LPC_GPIO1->FIOCLR = 0x80000000; _spi.write( 0x100 | (*colour >> 8) ); - LPC_GPIO1->FIOSET = 0x80000000; - - LPC_GPIO1->FIOCLR = 0x80000000; _spi.write( 0x100 | *colour++ ); - LPC_GPIO1->FIOSET = 0x80000000; - LPC_GPIO1->FIOCLR = 0x80000000; _spi.write( 0x100 | (*colour >> 8) ); - LPC_GPIO1->FIOSET = 0x80000000; + _spi.write( 0x100 | *colour++ ); + } + + _cs = 0; - LPC_GPIO1->FIOCLR = 0x80000000; - _spi.write( 0x100 | *colour++ ); - LPC_GPIO1->FIOSET = 0x80000000; - } #else for (int i = 0; i < width * height; i++ ) { _putp565( colour[i] );