mirror of
https://github.com/arduino/Arduino.git
synced 2025-01-17 06:52:18 +01:00
[sam] LED Blink test app working on Arduino Due
This commit is contained in:
parent
6f2d59ed2f
commit
80d5368b52
@ -1,5 +1,5 @@
|
||||
#VARIANTS = sam3s_ek sam3u_ek arduino_due
|
||||
VARIANTS = sam3u_ek
|
||||
VARIANTS = arduino_due
|
||||
|
||||
SUBMAKE_OPTIONS=--no-builtin-rules --no-builtin-variables
|
||||
|
||||
|
@ -1,6 +1,3 @@
|
||||
# Makefile for compiling libboard
|
||||
BOARD =
|
||||
|
||||
SUBMAKE_OPTIONS=--no-builtin-rules --no-builtin-variables
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
@ -1,11 +1,21 @@
|
||||
# Makefile for compiling libArduino
|
||||
.SUFFIXES: .o .a .c .s
|
||||
|
||||
#CHIP=__SAM3S4C__
|
||||
CHIP=__SAM3U4E__
|
||||
# putting default variant
|
||||
ifeq ("$(VARIANT)", "")
|
||||
#VARIANT=sam3s_ek
|
||||
VARIANT=sam3u_ek
|
||||
#VARIANT=arduino_due
|
||||
#VARIANT=sam3u_ek
|
||||
VARIANT=arduino_due
|
||||
endif
|
||||
|
||||
ifeq ("$(VARIANT)", "sam3s_ek")
|
||||
CHIP=__SAM3S4C__
|
||||
else ifeq ("$(VARIANT)", "sam3u_ek")
|
||||
CHIP=__SAM3U4E__
|
||||
else ifeq ("$(VARIANT)", "arduino_due")
|
||||
CHIP=__SAM3U4E__
|
||||
endif
|
||||
|
||||
TOOLCHAIN=gcc
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
@ -11,9 +11,9 @@ void setup( void )
|
||||
pinMode( PIN_LED, OUTPUT ) ;
|
||||
digitalWrite( PIN_LED, LOW ) ;
|
||||
|
||||
// Initialize the PIN_LED_GREEN digital pin as an output.
|
||||
pinMode( PIN_LED_GREEN, OUTPUT ) ;
|
||||
digitalWrite( PIN_LED_GREEN, HIGH ) ;
|
||||
// Initialize the PIN_LED2 digital pin as an output.
|
||||
pinMode( PIN_LED2, OUTPUT ) ;
|
||||
digitalWrite( PIN_LED2, HIGH ) ;
|
||||
|
||||
Serial.begin( 19200 ) ;
|
||||
}
|
||||
@ -21,10 +21,10 @@ void setup( void )
|
||||
void loop( void )
|
||||
{
|
||||
digitalWrite( PIN_LED, HIGH ) ; // set the LED on
|
||||
digitalWrite( PIN_LED_GREEN, LOW ) ; // set the red LED off
|
||||
digitalWrite( PIN_LED2, LOW ) ; // set the red LED off
|
||||
delay( 1000 ) ; // wait for a second
|
||||
digitalWrite( PIN_LED, LOW ) ; // set the LED off
|
||||
digitalWrite( PIN_LED_GREEN, HIGH ) ; // set the red LED on
|
||||
digitalWrite( PIN_LED2, HIGH ) ; // set the red LED on
|
||||
delay( 1000 ) ; // wait for a second
|
||||
|
||||
// Serial.write( '*' ) ; // send an initial char
|
||||
|
@ -210,10 +210,20 @@ typedef struct {
|
||||
/* -------- PMC_PCK[3] : (PMC Offset: 0x0040) Programmable Clock 0 Register -------- */
|
||||
#define PMC_PCK_CSS_Pos 0
|
||||
#define PMC_PCK_CSS_Msk (0x7u << PMC_PCK_CSS_Pos) /**< \brief (PMC_PCK[3]) Master Clock Source Selection */
|
||||
#define PMC_PCK_CSS(value) ((PMC_PCK_CSS_Msk & ((value) << PMC_PCK_CSS_Pos)))
|
||||
#define PMC_PCK_CSS_SLOW_CLK (0x0u << 0) /**< \brief (PMC_PCK[3]) Slow Clock is selected */
|
||||
#define PMC_PCK_CSS_MAIN_CLK (0x1u << 0) /**< \brief (PMC_PCK[3]) Main Clock is selected */
|
||||
#define PMC_PCK_CSS_PLLA_CLK (0x2u << 0) /**< \brief (PMC_PCK[3]) PLLA Clock is selected */
|
||||
#define PMC_PCK_CSS_PLLB_CLK (0x3u << 0) /**< \brief (PMC_PCK[3]) PLLB Clock is selected */
|
||||
#define PMC_PCK_CSS_MCK (0x4u << 0) /**< \brief (PMC_PCK[3]) Master Clock is selected */
|
||||
#define PMC_PCK_PRES_Pos 4
|
||||
#define PMC_PCK_PRES_Msk (0x7u << PMC_PCK_PRES_Pos) /**< \brief (PMC_PCK[3]) Programmable Clock Prescaler */
|
||||
#define PMC_PCK_PRES(value) ((PMC_PCK_PRES_Msk & ((value) << PMC_PCK_PRES_Pos)))
|
||||
#define PMC_PCK_PRES_Msk (0x7u << PMC_PCK_PRES_Pos) /**< \brief (PMC_PCK[3]) Processor Clock Prescaler */
|
||||
#define PMC_PCK_PRES_CLK (0x0u << 4) /**< \brief (PMC_PCK[3]) Selected clock */
|
||||
#define PMC_PCK_PRES_CLK_2 (0x1u << 4) /**< \brief (PMC_PCK[3]) Selected clock divided by 2 */
|
||||
#define PMC_PCK_PRES_CLK_4 (0x2u << 4) /**< \brief (PMC_PCK[3]) Selected clock divided by 4 */
|
||||
#define PMC_PCK_PRES_CLK_8 (0x3u << 4) /**< \brief (PMC_PCK[3]) Selected clock divided by 8 */
|
||||
#define PMC_PCK_PRES_CLK_16 (0x4u << 4) /**< \brief (PMC_PCK[3]) Selected clock divided by 16 */
|
||||
#define PMC_PCK_PRES_CLK_32 (0x5u << 4) /**< \brief (PMC_PCK[3]) Selected clock divided by 32 */
|
||||
#define PMC_PCK_PRES_CLK_64 (0x6u << 4) /**< \brief (PMC_PCK[3]) Selected clock divided by 64 */
|
||||
/* -------- PMC_IER : (PMC Offset: 0x0060) Interrupt Enable Register -------- */
|
||||
#define PMC_IER_MOSCXTS (0x1u << 0) /**< \brief (PMC_IER) Main Crystal Oscillator Status Interrupt Enable */
|
||||
#define PMC_IER_LOCKA (0x1u << 1) /**< \brief (PMC_IER) PLL A Lock Interrupt Enable */
|
||||
|
@ -25,13 +25,13 @@ extern "C" {
|
||||
/**INDENT-ON**/
|
||||
/* @endcond */
|
||||
|
||||
/* Clock settings (48MHz) */
|
||||
/* Clock settings (96MHz) */
|
||||
#define BOARD_OSCOUNT (CKGR_MOR_MOSCXTST(0x8))
|
||||
#define BOARD_PLLAR (CKGR_PLLAR_STUCKTO1 \
|
||||
| CKGR_PLLAR_MULA(0x7) \
|
||||
| CKGR_PLLAR_PLLACOUNT(0x3f) \
|
||||
| CKGR_PLLAR_DIVA(0x1))
|
||||
#define BOARD_MCKR (PMC_MCKR_PRES_CLK_2 | PMC_MCKR_CSS_PLLA_CLK)
|
||||
#define BOARD_MCKR (PMC_MCKR_PRES_CLK | PMC_MCKR_CSS_PLLA_CLK)
|
||||
|
||||
/* Clock Definitions */
|
||||
#define XTAL32 ( 32768UL) /* 32k crystal frequency */
|
||||
|
@ -18,7 +18,7 @@
|
||||
*/
|
||||
typedef enum _EPioType
|
||||
{
|
||||
PIO_NOT_A_PIN, /* The pin is controlled by the associated signal of peripheral A. */
|
||||
PIO_NOT_A_PIN, /* Not under control of a peripheral. */
|
||||
PIO_PERIPH_A, /* The pin is controlled by the associated signal of peripheral A. */
|
||||
PIO_PERIPH_B, /* The pin is controlled by the associated signal of peripheral B. */
|
||||
#if (defined _SAM3S_) || (defined _SAM3S8_) || (defined _SAM3N_)
|
||||
|
@ -152,9 +152,12 @@ RingBuffer rx_buffer2 ;
|
||||
RingBuffer tx_buffer2 ;
|
||||
RingBuffer rx_buffer3 ;
|
||||
RingBuffer tx_buffer3 ;
|
||||
RingBuffer rx_buffer4 ;
|
||||
RingBuffer tx_buffer4 ;
|
||||
|
||||
USARTClass Serial2( USART0, USART0_IRQn, ID_USART0, &rx_buffer2, &tx_buffer2 ) ;
|
||||
USARTClass Serial3( USART1, USART1_IRQn, ID_USART1, &rx_buffer3, &tx_buffer3 ) ;
|
||||
USARTClass Serial4( USART2, USART2_IRQn, ID_USART2, &rx_buffer4, &tx_buffer4 ) ;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
@ -171,6 +174,11 @@ extern void USART1_IrqHandler( void )
|
||||
Serial3.IrqHandler() ;
|
||||
}
|
||||
|
||||
extern void USART2_IrqHandler( void )
|
||||
{
|
||||
Serial4.IrqHandler() ;
|
||||
}
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
@ -198,14 +206,9 @@ extern void init( void )
|
||||
/* Disable watchdog, common to all SAM variants */
|
||||
WDT_Disable( WDT ) ;
|
||||
|
||||
// Initialize Serial port UART0, common to all SAM3 variants
|
||||
// Initialize Serial port UART, common to all SAM3 variants
|
||||
PIO_Configure( g_APinDescription[PINS_UART].pPort, g_APinDescription[PINS_UART].ulPinType,
|
||||
g_APinDescription[PINS_UART].ulPin, g_APinDescription[PINS_UART].ulPinAttribute ) ;
|
||||
|
||||
// Switch off Power LED
|
||||
PIO_Configure( g_APinDescription[PIN_LED_RED].pPort, g_APinDescription[PIN_LED_RED].ulPinType,
|
||||
g_APinDescription[PIN_LED_RED].ulPin, g_APinDescription[PIN_LED_RED].ulPinAttribute ) ;
|
||||
PIO_Clear( g_APinDescription[PIN_LED_RED].pPort, g_APinDescription[PIN_LED_RED].ulPin ) ;
|
||||
}
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
@ -48,17 +48,23 @@
|
||||
* Pins
|
||||
*----------------------------------------------------------------------------*/
|
||||
|
||||
#define PIN_LED_BLUE (0u)
|
||||
#define PIN_LED_GREEN (1u)
|
||||
#define PIN_LED_RED (2u)
|
||||
#define PIN_LED PIN_LED_BLUE
|
||||
#define PIN_LED_13 (0u)
|
||||
#define PIN_LED_RXL (1u)
|
||||
#define PIN_LED_TXL (2u)
|
||||
#define PIN_LED PIN_LED_13
|
||||
#define PIN_LED2 PIN_LED_RXL
|
||||
#define PIN_LED3 PIN_LED_TXL
|
||||
|
||||
static const uint8_t SS = 23 ;
|
||||
static const uint8_t MOSI = 21 ;
|
||||
static const uint8_t MISO = 20 ;
|
||||
static const uint8_t SCK = 22 ;
|
||||
static const uint8_t SS = 15 ;
|
||||
static const uint8_t MOSI = 13 ;
|
||||
static const uint8_t MISO = 12 ;
|
||||
static const uint8_t SCK = 14 ;
|
||||
|
||||
#define PINS_UART (6u)
|
||||
#define PINS_UART (5u)
|
||||
|
||||
#define PINS_USART0 (5u)
|
||||
#define PINS_USART1 (5u)
|
||||
#define PINS_USART2 (5u)
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
* Arduino objects - C++ only
|
||||
@ -70,6 +76,7 @@ extern UARTClass Serial ;
|
||||
|
||||
extern USARTClass Serial2 ;
|
||||
extern USARTClass Serial3 ;
|
||||
extern USARTClass Serial4 ;
|
||||
|
||||
#endif
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user