atmel_support.h

来自「eCos操作系统源码」· C头文件 代码 · 共 142 行

H
142
字号
#ifndef CYGONCE_ATMEL_SUPPORT_H#define CYGONCE_ATMEL_SUPPORT_H//=============================================================================////      atmel_support.h////      Platform specific support (register layout, etc)////=============================================================================//####ECOSGPLCOPYRIGHTBEGIN####// -------------------------------------------// This file is part of eCos, the Embedded Configurable Operating System.// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.//// eCos is free software; you can redistribute it and/or modify it under// the terms of the GNU General Public License as published by the Free// Software Foundation; either version 2 or (at your option) any later version.//// eCos is distributed in the hope that it will be useful, but WITHOUT ANY// WARRANTY; without even the implied warranty of MERCHANTABILITY or// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License// for more details.//// You should have received a copy of the GNU General Public License along// with eCos; if not, write to the Free Software Foundation, Inc.,// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.//// As a special exception, if other files instantiate templates or use macros// or inline functions from this file, or you compile this file and link it// with other works to produce a work based on this file, this file does not// by itself cause the resulting work to be covered by the GNU General Public// License. However the source code for this file must still be made available// in accordance with section (3) of the GNU General Public License.//// This exception does not invalidate any other reasons why a work based on// this file might be covered by the GNU General Public License.//// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.// at http://sources.redhat.com/ecos/ecos-license/// -------------------------------------------//####ECOSGPLCOPYRIGHTEND####//=============================================================================//#####DESCRIPTIONBEGIN####//// Author(s):    gthomas// Contributors: gthomas// Date:         2001-02-27// Purpose:      Intel SA1110/iPAQ platform specific support routines// Description: // Usage:        #include <cyg/hal/atmel_support.h>////####DESCRIPTIONEND####////=============================================================================// Command codes #define ATMEL_CMD_VERSION      0#define ATMEL_CMD_UNKNOWN      1#define ATMEL_CMD_KEYBD        2#define ATMEL_CMD_TOUCH        3#define ATMEL_CMD_EEPROM_READ  4#define ATMEL_CMD_EEPROM_WRITE 5#define ATMEL_CMD_THERMAL      6#define ATMEL_CMD_LED          8#define ATMEL_CMD_BATTERY      9#define ATMEL_CMD_SPI_READ     11#define ATMEL_CMD_SPI_WRITE    12#define ATMEL_CMD_LIGHT        13#define NUM_ATMEL_CMDS         16// Structure of actual packets//// Byte 0 - SOF// Byte 1 - (cmd << 4) | length// Byte 2 - Data   |// ...             | 'length' bytes (0..15) // Byte m - Data   |// Byte n - Checksum //// Since the length must be less than 16, the entire// packet will fit in 18 bytes//#define ATMEL_PKT_LEN 18typedef struct _atmel_pkt {    struct _atmel_pkt *next;    unsigned char data[ATMEL_PKT_LEN];    int len, size;} atmel_pkt;#define ATMEL_PKT_SOF  0#define ATMEL_PKT_CMD  1#define ATMEL_PKT_DATA 2#define ATMEL_NUM_PKT  4#define SOF 0x02//// Keyboard events are one byte with the button code// and state or'd//#define ATMEL_BUTTON_STATE      0x80#define ATMEL_BUTTON_STATE_DOWN 0x00#define ATMEL_BUTTON_STATE_UP   0x80#define ATMEL_BUTTON_VALUE      0x7F#define ATMEL_BUTTON_RECORD     0x01#define ATMEL_BUTTON_CALENDAR   0x02#define ATMEL_BUTTON_MEMO       0x03#define ATMEL_BUTTON_Q          0x04#define ATMEL_BUTTON_RETURN     0x05#define ATMEL_BUTTON_JOY_UP     0x06#define ATMEL_BUTTON_JOY_RIGHT  0x07#define ATMEL_BUTTON_JOY_DOWN   0x09#define ATMEL_BUTTON_JOY_LEFT   0x08struct key_event {    unsigned char button_info;};//// Touch screen events// Note: up/down is really hard to discern//struct ts_event {    bool   up;    short  x, y;};// Functionsvoid atmel_init(void);bool atmel_send(int, unsigned char *, int);int  atmel_recv(unsigned char *, int);typedef void atmel_handler(atmel_pkt *);void atmel_register(int, atmel_handler *);void atmel_interrupt_mode(bool enable);bool ts_get_event(struct ts_event *);bool key_get_event(struct key_event *);#endif /* CYGONCE_ATMEL_SUPPORT_H */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?