1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/Display_COG_Process.h Sun Apr 07 18:35:52 2013 +0000
1.3 @@ -0,0 +1,120 @@
1.4 +// Copyright 2013 Pervasive Displays, Inc.
1.5 +//
1.6 +// Licensed under the Apache License, Version 2.0 (the "License");
1.7 +// you may not use this file except in compliance with the License.
1.8 +// You may obtain a copy of the License at:
1.9 +//
1.10 +// http://www.apache.org/licenses/LICENSE-2.0
1.11 +//
1.12 +// Unless required by applicable law or agreed to in writing,
1.13 +// software distributed under the License is distributed on an
1.14 +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
1.15 +// express or implied. See the License for the specific language
1.16 +// governing permissions and limitations under the License.
1.17 +
1.18 +#ifndef __Display_COG_Process_H_
1.19 +#define __Display_COG_Process_H_
1.20 +
1.21 +/******************************************************************************
1.22 + * Includes
1.23 + *****************************************************************************/
1.24 +
1.25 + #include "bsp.h"
1.26 +
1.27 +/******************************************************************************
1.28 + * Defines and typedefs
1.29 + *****************************************************************************/
1.30 +#define BLACK0 (0x03)
1.31 +#define BLACK1 (0x0C)
1.32 +#define BLACK2 (0x30)
1.33 +#define BLACK3 (0xc0)
1.34 +#define WHITE0 (0x02)
1.35 +#define WHITE1 (0x08)
1.36 +#define WHITE2 (0x20)
1.37 +#define WHITE3 (0x80)
1.38 +
1.39 +#define NOTHING (0x00)
1.40 +#define SCANON (0xC0)
1.41 +#define __LineDataSize 111
1.42 +
1.43 +/*
1.44 +enum
1.45 +{
1.46 + _5ms,
1.47 + _10ms,
1.48 + _25ms,
1.49 + _30ms,
1.50 + _40ms,
1.51 + _120ms,
1.52 + _150ms,
1.53 + _300ms
1.54 +};
1.55 +*/
1.56 +
1.57 +typedef enum
1.58 +{
1.59 + EPDType_144 = 0, //1.44" display
1.60 + EPDType_200 = 1, //2.0" display
1.61 + EPDType_270 = 2 //2.7" display
1.62 +} EPDType_t;
1.63 +#define EPD_TYPE_144 0
1.64 +#define EPD_TYPE_200 1
1.65 +#define EPD_TYPE_270 2
1.66 +
1.67 +typedef struct
1.68 +{
1.69 + uint8_t Even[16];
1.70 + uint8_t Scan[24];
1.71 + uint8_t Odd [16];
1.72 +} COG_144_LineData_t;
1.73 +
1.74 +typedef struct
1.75 +{
1.76 + uint8_t Even[25];
1.77 + uint8_t Scan[24];
1.78 + uint8_t Odd [25];
1.79 + uint8_t DummyData;
1.80 +} COG_20_LineData_t;
1.81 +
1.82 +typedef struct
1.83 +{
1.84 + uint8_t Even[33];
1.85 + uint8_t Scan[44];
1.86 + uint8_t Odd [33];
1.87 + uint8_t DummyData;
1.88 +} COG_27_LineData_t;
1.89 +
1.90 +typedef union
1.91 +{
1.92 + union
1.93 + {
1.94 + COG_144_LineData_t COG_144LineData;
1.95 + COG_20_LineData_t COG_20LineData;
1.96 + COG_27_LineData_t COG_27LineData;
1.97 + } LineDatas;
1.98 + uint8_t uint8[__LineDataSize];
1.99 +} COG_LineDataPacket_t;
1.100 +
1.101 +typedef struct
1.102 +{
1.103 + uint8_t ChannelSelect[8];
1.104 + uint8_t VoltageLevel;
1.105 + uint16_t HORIZONTAL;
1.106 + uint16_t VERTICAL;
1.107 + uint8_t DataLineSize;
1.108 + uint16_t FrameTime;
1.109 + uint16_t StageTime;
1.110 +} COG_Parameters_t;
1.111 +
1.112 +extern const COG_Parameters_t COG_Parameters[3];
1.113 +
1.114 +/******************************************************************************
1.115 + * Prototypes
1.116 + *****************************************************************************/
1.117 +void epd_HwInit(void);
1.118 +void epd_PowerOn(void);
1.119 +void epd_InitializeDriver(uint8_t EPDIndex);
1.120 +void epd_Display(uint8_t *pNewImg, uint8_t *pPrevImg);
1.121 +void epd_PowerOff(void);
1.122 +
1.123 +#endif //__Display_COG_Process_H_