board.h
来自「最新版IAR FOR ARM(EWARM)5.11中的代码例子」· C头文件 代码 · 共 405 行 · 第 1/2 页
H
405 行
/* ----------------------------------------------------------------------------
* ATMEL Microcontroller Software Support - ROUSSET -
* ----------------------------------------------------------------------------
* Copyright (c) 2006, Atmel Corporation
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the disclaiimer below.
*
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the disclaimer below in the documentation and/or
* other materials provided with the distribution.
*
* Atmel's name may not be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
* DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* ----------------------------------------------------------------------------
*/
/*
$Id: board.h,v 1.1.2.1 2006/12/05 08:33:25 danielru Exp $
*/
#ifndef _BOARD_H
#define _BOARD_H
//------------------------------------------------------------------------------
// Definitions
//------------------------------------------------------------------------------
// Board revisions
#define REV_A 0
#define REV_B 1
// Default revision is REV_B
#ifndef REVISION
#define REVISION REV_B
#endif
// Slow clock used at startup (32kHz)
#define SLOWCLOCK 32768
// Main clock
#if defined(AT91SAM7SEK) || defined(AT91SAM7XEK) || \
defined(AT91SAM7A3EK) || defined(AT91SAM7SEEK)
#define AT91C_MASTER_CLOCK 48000000
#elif defined(AT91RM9200)
#define AT91C_BAUDRATE 115200
#define AT91C_MASTER_CLOCK 60000000
#define PLLAR 0x20263E04 // 179,712000 MHz for PCK
#define PLLBR 0x10483E0E // 48,054857 MHz (divider by 2 for USB) // NAT first tests can be done with this config
// MUL= 72 0x48 DIV=14 0xE
#define PLLBR1 0x102E3E09 // 48,054857 MHz (divider by 2 for USB) // BENOIT suggestion
// MUL= 46 0x2E DIV=0x9
#define PLLBR2 0x10483E0E // 48,054857 MHz (divider by 2 for USB)
#define MCKR 0x00000202 // PCK/3 = MCK Master Clock = 59,904000MHz with PLLA selected
#elif defined(AT91SAM9260EK) || defined(AT91SAM9261EK) || defined(AT91SAM9263EK)
#define AT91C_MASTER_CLOCK 99300000
#define SDRAM_BASE_ADDR 0x20000000
#define PLLBR 0x10483E0E // 48,054857 MHz (divider by 2 for USB) // NAT first tests can be done with this config
// MUL= 72 0x48 DIV=14 0xE
#else
#error core_board.h Main clock
#endif
// Leds
#if defined(AT91SAM7SEK)
#define LED_POWER AT91C_PIO_PA0 // DS1
#define LED_USB AT91C_PIO_PA1 // DS2
#define LED_MEM AT91C_PIO_PA2 // DS3
// AT91C_PIO_PA3 // DS4
#define LED_PIO AT91C_BASE_PIOA
#define LED_PIO_ID AT91C_ID_PIOA
#elif defined(AT91SAM7A3EK)
#define LED_POWER AT91C_PIO_PA20 // DS1
#define LED_USB AT91C_PIO_PA21 // DS2
#define LED_MEM AT91C_PIO_PA24 // DS3
// AT91C_PIO_PA25 // DS4
#define LED_PIO AT91C_BASE_PIOA
#define LED_PIO_ID AT91C_ID_PIOA
#elif defined(AT91SAM7XEK)
#define LED_POWER AT91C_PIO_PB19 // DS1
#define LED_USB AT91C_PIO_PB20 // DS2
#define LED_MEM AT91C_PIO_PB21 // DS3
// AT91C_PIO_PB22 // DS4
#define LED_PIO AT91C_BASE_PIOB
#define LED_PIO_ID AT91C_ID_PIOB
#elif defined(AT91SAM7SEEK)
#define LED_POWER AT91C_PIO_PA0 // Yellow PowerLED
#define LED_USB AT91C_PIO_PA1 // Green DS1
#define LED_MEM AT91C_PIO_PA2 // Green DS2
#define LED_PIO AT91C_BASE_PIOA
#define LED_PIO_ID AT91C_ID_PIOA
#elif defined(AT91RM9200EK)
#define LED_POWER AT91C_PIO_PB0 // Green DS2
#define LED_USB AT91C_PIO_PB1 // Yellow DS4
#define LED_MEM AT91C_PIO_PB2 // Red DS6
#define LED_PIO AT91C_BASE_PIOB
#define LED_PIO_ID AT91C_ID_PIOB
#elif defined(AT91SAM9260EK)
#define LED_POWER AT91C_PIO_PA9 // Only 1 led
#define LED_USB AT91C_PIO_PA6 // DS5
#define LED_MEM AT91C_PIO_PA9 // Only 1 led
#define LED_PIO AT91C_BASE_PIOA
#define LED_PIO_ID AT91C_ID_PIOA
#elif defined(AT91SAM9261EK)
#define LED_POWER AT91C_PIO_PA23 // Power LED
#define LED_USB AT91C_PIO_PA13 // DS8
#define LED_MEM AT91C_PIO_PA14 // DS7
#define LED_PIO AT91C_BASE_PIOA
#define LED_PIO_ID AT91C_ID_PIOA
#elif defined(AT91SAM9263EK)
// PWM1
// PWM2
// theses values only for compil:
#define LED_POWER AT91C_PIO_PA23
#define LED_USB AT91C_PIO_PA13
#define LED_MEM AT91C_PIO_PA14
#define LED_PIO AT91C_BASE_PIOA
#define LED_PIO_ID AT91C_ID_PIOA
#else
#error message core_board.h led
#endif
// Switches
#if defined(AT91SAM7SEK)
#define SWITCH1 AT91C_PIO_PA19 // BP1
#define SWITCH2 AT91C_PIO_PA20 // BP2
#define SWITCH3 AT91C_PIO_PA15 // BP3
#define SWITCH4 AT91C_PIO_PA14 // BP4
#define SWITCH_PIO AT91C_BASE_PIOA
#define SWITCH_PIO_ID AT91C_ID_PIOA
#elif defined(AT91SAM7A3EK)
#define SWITCH1 AT91C_PIO_PB8 // Joystick UP
#define SWITCH2 AT91C_PIO_PB12 // Joystick LEFT
#define SWITCH3 AT91C_PIO_PB13 // Joystick RIGHT
#define SWITCH4 AT91C_PIO_PB9 // Joystick DOWN
#define SWITCH5 AT91C_PIO_PB14 // Joystick PUSH
#define SWITCH_PIO AT91C_BASE_PIOB
#define SWITCH_PIO_ID AT91C_ID_PIOB
#elif defined(AT91SAM7XEK)
#define SWITCH1 AT91C_PIO_PA21 // Joystick UP
#define SWITCH2 AT91C_PIO_PA23 // Joystick LEFT
#define SWITCH3 AT91C_PIO_PA24 // Joystick RIGHT
#define SWITCH4 AT91C_PIO_PA22 // Joystick DOWN
#define SWITCH5 AT91C_PIO_PA25 // Joystick PUSH
#define SWITCH_PIO AT91C_BASE_PIOA
#define SWITCH_PIO_ID AT91C_ID_PIOA
#elif defined(AT91SAM7SEEK)
#define SWITCH1 AT91C_PIO_PB23 // Joystick UP
#define SWITCH2 AT91C_PIO_PB24 // Joystick DOWN
#define SWITCH3 AT91C_PIO_PB26 // Joystick RIGHT
#define SWITCH4 AT91C_PIO_PB27 // Joystick LEFT
#define SWITCH5 AT91C_PIO_PB25 // Push Left Clic : PB25 : BP1
#define SWITCH6 AT91C_PIO_PB22 // Right Clic : PB22 : BP2
#define SWITCH_PIO AT91C_BASE_PIOB
#define SWITCH_PIO_ID AT91C_ID_PIOB
#elif defined(AT91RM9200EK)
// no button on the board
#define SWITCH1 AT91C_PIO_PB23 // NO BUTTON
#define SWITCH2 AT91C_PIO_PB24 // ONLY for COMPIL
#define SWITCH3 AT91C_PIO_PB26 // ONLY for COMPIL
#define SWITCH4 AT91C_PIO_PB27 // ONLY for COMPIL
#define SWITCH_PIO AT91C_BASE_PIOB// ONLY for COMPIL
#define SWITCH_PIO_ID AT91C_ID_PIOB
#elif defined(AT91SAM9260EK)
#define SWITCH1 AT91C_PIO_PA30 // BP3
#define SWITCH2 AT91C_PIO_PA31 // BP4
#define SWITCH3 AT91C_PIO_PA30 // Only 2 BP
#define SWITCH4 AT91C_PIO_PA31 // Only 2 BP
#define SWITCH_PIO AT91C_BASE_PIOA
#define SWITCH_PIO_ID AT91C_ID_PIOA
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?