[Tinyos-contrib-commits] CVS: tinyos-1.x/contrib/imote2/test/Display Display.nc, NONE, 1.1 DisplayM.nc, NONE, 1.1 Makefile, NONE, 1.1 image.h, NONE, 1.1 toolchain.txt, NONE, 1.1

Lama Nachman lnachman at users.sourceforge.net
Sun Mar 4 22:02:19 PST 2007


Update of /cvsroot/tinyos/tinyos-1.x/contrib/imote2/test/Display
In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv30999

Added Files:
	Display.nc DisplayM.nc Makefile image.h toolchain.txt 
Log Message:
Pushed out internal tree


--- NEW FILE: Display.nc ---

configuration Display {
}
implementation {
    components Main,
        DisplayM,
        TimerC,
        BluSHC,
        SSP2C,
        LedsC;
    
    Main.StdControl -> BluSHC.StdControl;
    Main.StdControl -> TimerC.StdControl;
    Main.StdControl -> DisplayM.StdControl;

    DisplayM.Timer -> TimerC.Timer[unique("Timer")];

    DisplayM.Leds -> LedsC;
 
    DisplayM.SSP -> SSP2C;
    DisplayM.RawData -> SSP2C;
}

--- NEW FILE: DisplayM.nc ---

module DisplayM{

    provides {
        interface StdControl;
    }
    uses {
        interface Timer;
        interface SSP;
        interface Leds;
        interface BulkTxRx as RawData;
    }
}

implementation {

#define DIS_CTL_PIN SSP2_RXD
#define RST_CTL_PIN (94)
#define DB_SIZE 4096 // Display RAM 128x64x4bit

    #include "image.h"

    TOSH_ASSIGN_PIN(DIS_CTL, A, DIS_CTL_PIN);
    TOSH_ASSIGN_PIN(RST_CTL, A, RST_CTL_PIN);

    uint8_t db[DB_SIZE];
    int ds = 1;
    int tim = 0;
    int ts;

    task void dis_init();
    task void dis_start();
    
    command result_t StdControl.init() {
        call Leds.init();
        call SSP.setMasterSCLK(TRUE);
        call SSP.setMasterSFRM(TRUE);
        call SSP.setSSPFormat(SSP_SPI);
        call SSP.setDataWidth(SSP_8bits);
        call SSP.enableInvertedSFRM(FALSE);
        call SSP.enableSPIClkHigh(TRUE);
        call SSP.shiftSPIClk(TRUE);
        call SSP.enableManualRxPinCtrl(TRUE);
        call SSP.setClkRate(1); // SPI clock = 13MHz / (x + 1)
        TOSH_MAKE_DIS_CTL_OUTPUT();
        TOSH_CLR_DIS_CTL_PIN();  // display command mode
        TOSH_MAKE_RST_CTL_OUTPUT();
        TOSH_CLR_RST_CTL_PIN();  // reset display
        return SUCCESS;
    }
 
    command result_t StdControl.start() {
        call Timer.start(TIMER_ONE_SHOT, 100); // wait 100ms
        return SUCCESS;
    }

    command result_t StdControl.stop() {
        call Timer.stop();
        return SUCCESS;
    }

    task void dis_reset() {
        TOSH_SET_RST_CTL_PIN();  // disable reset
        call Timer.start(TIMER_ONE_SHOT, 100); // wait 100ms
    }

    task void dis_clear() {
        int i, j, dx, ix;

        i = 0;
        ix = 0;
        for (dx = 0; dx < DB_SIZE; dx++) {
            if (i == 0) {
                db[dx] = (uint8_t)(ib[ix] & 0xff);
                i = 1;
            } else {
                db[dx] = (uint8_t)(ib[ix] >> 8);
                i = 0;
                j = dx % 64;
                if (j < 48) {
                    ix++;
                }
            }
            if (ix > 1535) {
                ix = 1535;
            }
        }
        TOSH_SET_DIS_CTL_PIN();  // data mode   
        if (call RawData.BulkTransmit(db, DB_SIZE) == FAIL) {
            trace(DBG_USR1, "Display init failed\r\n");
        } else {
            ;
        }
        ts = dx;
    }

    task void dis_init() {
        int ix;

        ix = 0;
        // SSD0323 Initialization Commands
        // Column Addressuint16_t ib[1536] = {
        db[ix++] = 0x15; /* Set Column Address */
        db[ix++] = 0x00; /* Start = 0 */
        db[ix++] = 0x3F; /* End = 127 */
        // Row Address
        db[ix++] = 0x75; /* Set Row Address */
        db[ix++] = 0x00; /* Start = 0 */
        db[ix++] = 0x3F; /* End = 63 */
        // Contrast Control
        db[ix++] = 0x81; /* Set Contrast Control */
        db[ix++] = 0x33; /* 0 ~ 127 */
        // Current Range
        db[ix++] = 0x86; /* Set Current Range 84h:Quarter, 85h:Half, 86h:Full*/
        // Re-map
        db[ix++] = 0xA0; /* Set Re-map */
        db[ix++] = 0x52; /* [0]:MX, [1]:Nibble, [2]:H/V address [4]:MY, [6]:Com Split Odd/Even "1000010"*/
        // Display Start Line
        db[ix++] = 0xA1; /* Set Display Start Line */
        db[ix++] = 0x00; /* Top */
        // Display Offset
        db[ix++] = 0xA2; /* Set Display Offset */
        db[ix++] = 0x40; /* No offset */
        // Display Mode
        db[ix++] = 0xA4; /* Set Display Mode, A4:Normal, A5:All ON, A6: All OFF, A7:Inverse */
        // Multiplex Ratio
        db[ix++] = 0xA8; /* Set Multiplex Ratio */
        db[ix++] = 0x3F; /* [6:0]16~128, 64 rows=3Fh*/
        // Phase Length
        db[ix++] = 0xB1; /* Set Phase Length */
        db[ix++] = 0x22; /* [3:0]:Phase 1 period of 1~16clocks [7:4]:Phase 2 period of 1~16 clocks POR = 0111 0100 */
        // Row Period
        db[ix++] = 0xB2; /* Set Row Period */
        db[ix++] = 0x46; /* [7:0]:18~255, K=P1+P2+GS15 (POR:4+7+29)*/
        // Display Clock Divide{
        db[ix++] = 0xB3; /* Set Clock Divide */
        db[ix++] = 0x41; /* [3:0]:1~16, [7:4]:0~16 POR = 0000 0001 */
        // VSL
        db[ix++] = 0xBF; /* Set VSL */
        db[ix++] = 0x0D; /* [3:0]:VSL */
        // CCOMH
        db[ix++] = 0xBE; /* Set VCOMH */
        db[ix++] = 0x00; /* [7:0]:VCOMH */
        // VP
        db[ix++] = 0xBC; /* Set VP */
        db[ix++] = 0x0B; /* [7:0]:VP */
        // Gamma
        db[ix++] = 0xB8; /* Set Gamma with next 8 bytes */
        db[ix++] = 0x01; /* L1[2:1] */
        db[ix++] = 0x11; /* L3[6:4], L2[2:0] 0001 0001 */
        db[ix++] = 0x22; /* L5[6:4], L4[2:0] 0010 0010 */
        db[ix++] = 0x32; /* L7[6:4], L6[2:0] 0011 1011 */
        db[ix++] = 0x43; /* L9[6:4], L8[2:0] 0100 0100 */
        db[ix++] = 0x54; /* LB[6:4], LA[2:0] 0101 0101 */
        db[ix++] = 0x65; /* LD[6:4], LC[2:0] 0110 0110 */
        db[ix++] = 0x76; /* LF[6:4], LE[2:0] 1000 0111 */
        // Set DC-DC
        db[ix++] = 0xAD; /* Set DC-DC */
        db[ix++] = 0x02; /* 03=ON, 02=Off */
        // Display ON/OFF
        db[ix++] = 0xAF; /* AF=ON, AE=Sleep Mode */

        TOSH_CLR_DIS_CTL_PIN();  // cmd mode
        if (call RawData.BulkTransmit(db, ix) == FAIL) {
            trace(DBG_USR1, "Display init failed\r\n");
        } else {
            ;
        }
        ts = ix;
    }

    async event uint8_t *RawData.BulkReceiveDone(uint8_t *RxBuffer, uint16_t NumBytes) {
        return NULL;
    }

    task void signalBulkTransmitFail() {
        trace(DBG_USR1, "BulkTransmit failed\r\n");
    }

    async event uint8_t *RawData.BulkTransmitDone(uint8_t *TxBuffer, uint16_t NumBytes) {
        if (NumBytes != ts) {
            call Leds.redOn();
        } else {
            // call Leds.greenOn();
        }
        if (ds == 1) {
            post dis_clear();
            ds = 0;
        }
        return NULL;
    }

    async event BulkTxRxBuffer_t *RawData.BulkTxRxDone(BulkTxRxBuffer_t *TxRxBuffer, uint16_t NumBytes) {
        return NULL;
    }

    event result_t Timer.fired() {
        // call Leds.redToggle();
        switch (tim) {
        case 0:
            post dis_reset();
            tim++;
            break;
        case 1:
            post dis_init();
            tim++;
            break;
        default:
            break;
        }
        return SUCCESS;
    }

}

--- NEW FILE: Makefile ---
COMPONENT=Display
include ../Makerules


--- NEW FILE: image.h ---
uint16_t ib[1536] = {
 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xf0ff,0xf708,0xff8f,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0x77ff,0x8780,0xff8f,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0x87ff,0x07ff,0xff8f,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xf7ff,0xf08f,0xff8f,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xf8ff,0x8f7f,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0x00ff,0x0808,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0x87ff,0x0070,0x0700,0xff78,0xffff,0xffff,0xffff,0xffff,0xffff,0x0ff8,0x700f,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0xffff,0xffff,0xffff,0x87ff,0x0000,0x7777,0x7077,0x0700,0xff7f,0xffff,0xffff,0xffff,0xffff,0x7ff7,0xf00f,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0xffff,0xffff,0xffff,0x0770,0xff78,0xffff,0xffff,0x87ff,0x7800,0xffff,0xffff,0xffff,0xffff,0x08f8,0x7708,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0xffff,0xffff,0x80ff,0x8f07,0xffff,0xffff,0xffff,0xffff,0x00f8,0xff7f,0xffff,0xffff,0xffff,0x70ff,0x0f00,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0xffff,0xffff,0x0780,0xffff,0xffff,0xffff,0xffff,0xffff,0xf8ff,0x8f00,0xffff,0xffff,0xffff,0x8fff,0xf888,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0xffff,0xf7ff,0xff07,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0x07f7,0xffff,0xffff,0xf8ff,0x7887,0x7088,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0xffff,0x70ff,0xff7f,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0x80ff,0xff08,0xffff,0xf8ff,0x0000,0x0700,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0xffff,0x08f7,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0x8f70,0xffff,0xffff,0x7ff8,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0xffff,0xff70,0xffff,0xffff,0x87ff,0x0070,0x7700,0xff8f,0xffff,0xffff,0x08f7,0xffff,0xffff,0x87ff,0x7f00,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0xf7ff,0xff0f,0xffff,0xffff,0x0070,0x7877,0x7077,0x7800,0xffff,0xffff,0x70ff,0xffff,0xffff,0x07f8,0x0777,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0x70ff,0xff8f,0xffff,0x70ff,0x8f07,0xffff,0xffff,0x70f8,0xff08,0xffff,0xf7ff,0xff0f,0xffff,0x7ff7,0x80ff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0x08f8,0xffff,0xffff,0x0780,0xffff,0xffff,0xffff,0xf8ff,0x7f70,0xffff,0xffff,0xff07,0xffff,0x7ff7,0x80ff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0x7ff0,0xffff,0xf7ff,0xff07,0xffff,0xffff,0xffff,0xffff,0x00f8,0xffff,0xffff,0x8f80,0xffff,0x07f8,0x0787,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0xff70,0xffff,0x70ff,0xff7f,0xffff,0xffff,0xffff,0xffff,0xf0ff,0xff0f,0xffff,0x0ff7,0xffff,0x80ff,0x7f00,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0xff08,0xffff,0x08f7,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xff70,0xffff,0x07ff,0xffff,0xf8ff,0x8888,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xf7ff,0xff0f,0xffff,0x7f80,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0x7ff0,0xffff,0x70ff,0xffff,0x00f8,0x0000,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xf0ff,0xff8f,0xffff,0xff07,0xffff,0xffff,0x77f8,0x8f77,0xffff,0xffff,0x07ff,0xffff,0xf0ff,0xff7f,0x78f7,0x8888,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0x80ff,0xffff,0xf7ff,0xff0f,0xffff,0x87ff,0x0000,0x0000,0xff7f,0xffff,0x80ff,0xffff,0xf7ff,0xff7f,0x7ff8,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0x77ff,0xffff,0xf0ff,0xff8f,0xffff,0x07f7,0xff8f,0xf7ff,0x8f00,0xffff,0xf7ff,0xff7f,0xffff,0xff0f,0x07ff,0x7777,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0xffff,0x70ff,0xffff,0xffff,0x8f70,0xffff,0xffff,0x08f7,0xffff,0xf8ff,0xff0f,0xffff,0xffff,0x00f8,0x0700,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0xffff,0x78ff,0xffff,0xf7ff,0xff0f,0xffff,0xffff,0x70ff,0xffff,0xffff,0xff78,0xffff,0xffff,0x7ff7,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0xffff,0xffff,0xffff,0x80ff,0xff8f,0xffff,0xffff,0xf7ff,0xff7f,0xffff,0xffff,0xffff,0xffff,0x08f8,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xff8f,0xffff,0xffff,0xffff,0xffff,0x00f8,0x0000,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0x88ff,0x8888,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0x77f7,0x8f77,0xf8ff,0x7777,0x7777,0x7777,0x7777,0x7777,0x7777,0x7777,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0x00f0,0x7f00,0xf8ff,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0x00f0,0x7f00,0xf8ff,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0x00f0,0x7f00,0xf8ff,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0x00f0,0x7f00,0xf8ff,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0x77f7,0x8f77,0xf8ff,0x7777,0x7777,0x7777,0x7777,0x7777,0x7777,0x7777,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0xffff,0xffff,0xffff,0x88ff,0xffff,0xffff,0xffff,0xffff,0xff8f,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0xffff,0xffff,0xffff,0x80ff,0xffff,0xffff,0xffff,0xf7ff,0xff7f,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0xffff,0x78ff,0xffff,0xf7ff,0xff0f,0xffff,0xffff,0x70ff,0xffff,0xffff,0xff78,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0x8fff,0xffff,0x77ff,0xffff,0xffff,0x8f00,0xffff,0xffff,0x08f7,0xffff,0xf8ff,0xff08,0xffff,0xff8f,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0x77ff,0xffff,0xf0ff,0xff8f,0xffff,0x07f7,0xff8f,0xf7ff,0x8f00,0xffff,0xf7ff,0xff7f,0xffff,0xff08,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0x80ff,0xffff,0xf7ff,0xff0f,0xffff,0x80ff,0x7700,0x0070,0xff7f,0xffff,0x80ff,0xff8f,0xf7ff,0xff7f,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xf0ff,0xff8f,0xffff,0xff07,0xffff,0xffff,0x7787,0x8f77,0xffff,0xffff,0x07ff,0xffff,0xf0ff,0xff7f,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xf7ff,0xff0f,0xffff,0x8f80,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0x0ff7,0xffff,0x80ff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0xff08,0xffff,0x08f7,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xff70,0xffff,0x07ff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0xff70,0xffff,0x70ff,0xff7f,0xffff,0xffff,0xffff,0xffff,0xf7ff,0xff08,0xffff,0x0ff7,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0x7ff0,0xffff,0xf7ff,0xff07,0xffff,0xffff,0xffff,0xffff,0x00f8,0xffff,0xffff,0x8f80,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0x08f8,0xffff,0xffff,0x0780,0xffff,0xffff,0xffff,0xffff,0x7f70,0xffff,0xffff,0xff07,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0x70ff,0xff8f,0xffff,0x70ff,0xff07,0xffff,0xffff,0x70f8,0xff08,0xffff,0xf7ff,0xff0f,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0xf7ff,0xff0f,0xffff,0xffff,0x0070,0x8877,0x7788,0x7800,0xffff,0xffff,0x70ff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0xffff,0xff70,0xffff,0xffff,0x87ff,0x0070,0x0700,0xff8f,0xffff,0xffff,0x08f7,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0xffff,0x08f7,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0x8f70,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0xffff,0x70ff,0xff8f,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0x80ff,0xff08,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0xffff,0xf7ff,0xff07,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0x07f7,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0xffff,0xffff,0x0780,0xffff,0xffff,0xffff,0xffff,0xffff,0xf8ff,0x7f00,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0xffff,0xffff,0x70ff,0xff07,0xffff,0xffff,0xffff,0xffff,0x00f8,0xff7f,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0xffff,0xffff,0xffff,0x0770,0xff78,0xffff,0xffff,0x87ff,0x7800,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0xffff,0xffff,0xffff,0x87ff,0x0000,0x7877,0x7777,0x0700,0xff7f,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0x87f8,0x0070,0x0700,0xff78,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
};

--- NEW FILE: toolchain.txt ---

Toolchain to create an Imote2 image (for 96x64x4bit OLED display)

1. Resize image to 96x64 pixels (colums x rows)
2. Convert image to 4-bit grayscale BMP (16 levels), e.g. with MS Paint
3. Convert to text with "od -x -j 118 -v --width=48 img.bmp > img.od"
4. Reverse file with "tac img.od > img.odr"
5. Edit img.odr, e.g., with Emacs:
   Remove addresses with set-mark, kill-rectangle
   Add header: "uint16_t ib[1536] = {"
   Add trailer: "};"
   Replace spaces " " with ",0x" after the first one (replace-regexp)
6. Save as "img.h"
7. Include in "FileM.nc" file below "implementation"



More information about the Tinyos-contrib-commits mailing list