diff options
author | David Madison <dmadison@users.noreply.github.com> | 2019-02-15 13:00:46 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-02-15 13:00:46 -0500 |
commit | 7d65dd08142eda767eb822bf2d92c3a1bd9f8b8f (patch) | |
tree | 5609dee433e7d089e6c4f974fa1d870b4068d613 /firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/BOARDS/ARDUINO | |
parent | 2663be17272e19f00c55f3f2d8f1ebfac47158d6 (diff) | |
parent | 91e267bcc42442d4e9da09aab30065ad5d44025a (diff) |
Merge pull request #1 from dmadison/forking
Forking
Diffstat (limited to 'firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/BOARDS/ARDUINO')
3 files changed, 0 insertions, 774 deletions
diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/BOARDS/ARDUINO/arduino.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/BOARDS/ARDUINO/arduino.h deleted file mode 100644 index e687723..0000000 --- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/BOARDS/ARDUINO/arduino.h +++ /dev/null @@ -1,237 +0,0 @@ -/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */ - -/*This file is prepared for Doxygen automatic documentation generation.*/ -/*! \file ********************************************************************* - * - * \brief AT32UC3A EVK1100 board header file. - * - * This file contains definitions and services related to the features of the - * EVK1100 board rev. B and C. - * - * To use this board, define BOARD=EVK1100. - * - * - Compiler: IAR EWAVR32 and GNU GCC for AVR32 - * - Supported devices: All AVR32 AT32UC3A devices can be used. - * - AppNote: - * - * \author Atmel Corporation: http://www.atmel.com \n - * Support and FAQ: http://support.atmel.no/ - * - ******************************************************************************/ - -/* Copyright (c) 2009 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: - * - * 1. Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * 3. The name of Atmel may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 4. This software may only be redistributed and used in connection with an Atmel - * AVR product. - * - * 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 - * EXPRESSLY AND SPECIFICALLY 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 - * - */ - -#ifndef _ARDUINO_H_ -#define _ARDUINO_H_ - -#include "compiler.h" - -#ifdef __AVR32_ABI_COMPILER__ // Automatically defined when compiling for AVR32, not when assembling. -# include "led.h" -#endif // __AVR32_ABI_COMPILER__ - - -/*! \name Oscillator Definitions - */ -//! @{ - -// RCOsc has no custom calibration by default. Set the following definition to -// the appropriate value if a custom RCOsc calibration has been applied to your -// part. -//#define FRCOSC AVR32_PM_RCOSC_FREQUENCY //!< RCOsc frequency: Hz. - -#define FOSC32 32768 //!< Osc32 frequency: Hz. -#define OSC32_STARTUP AVR32_PM_OSCCTRL32_STARTUP_8192_RCOSC //!< Osc32 startup time: RCOsc periods. - -#define FOSC0 12000000 //!< Osc0 frequency: Hz. -#define OSC0_STARTUP AVR32_PM_OSCCTRL0_STARTUP_2048_RCOSC //!< Osc0 startup time: RCOsc periods. - -// Osc1 crystal is not mounted by default. Set the following definitions to the -// appropriate values if a custom Osc1 crystal is mounted on your board. -//#define FOSC1 12000000 //!< Osc1 frequency: Hz. -//#define OSC1_STARTUP AVR32_PM_OSCCTRL1_STARTUP_2048_RCOSC //!< Osc1 startup time: RCOsc periods. - -//! @} - - -//! Number of LEDs. -#define LED_COUNT 0 - -/*! \name GPIO Connections of LEDs - */ -//! @{ -#define LED0_GPIO AVR32_PIN_PB19 -#define LED1_GPIO AVR32_PIN_PB20 -#define LED2_GPIO AVR32_PIN_PB21 -#define DEB_PIN_GPIO AVR32_PIN_PA20 -#define DEB2_PIN_GPIO AVR32_PIN_PB00 -//! @} - -/*! \name PWM Channels of LEDs - */ -//! @{ -#define LED0_PWM 0 -#define LED1_PWM 1 -#define LED2_PWM 2 -//! @} - -/*! \name PWM Functions of LEDs - */ -//! @{ -#define LED0_PWM_FUNCTION AVR32_PWM_0_FUNCTION -#define LED1_PWM_FUNCTION AVR32_PWM_1_FUNCTION -#define LED2_PWM_FUNCTION AVR32_PWM_2_FUNCTION -//! @} - -/*! \name Color Identifiers of LEDs to Use with LED Functions - */ -//! @{ -#define LED_MONO0_GREEN LED0 -#define LED_MONO1_RED LED1 -#define LED_MONO2_BLU LED2 -//! @} - -#if 0 -/*! \name SPI Connections of the DIP204 LCD - */ -//! @{ -#define DIP204_SPI (&AVR32_SPI1) -#define DIP204_SPI_NPCS 2 -#define DIP204_SPI_SCK_PIN AVR32_SPI1_SCK_0_0_PIN -#define DIP204_SPI_SCK_FUNCTION AVR32_SPI1_SCK_0_0_FUNCTION -#define DIP204_SPI_MISO_PIN AVR32_SPI1_MISO_0_0_PIN -#define DIP204_SPI_MISO_FUNCTION AVR32_SPI1_MISO_0_0_FUNCTION -#define DIP204_SPI_MOSI_PIN AVR32_SPI1_MOSI_0_0_PIN -#define DIP204_SPI_MOSI_FUNCTION AVR32_SPI1_MOSI_0_0_FUNCTION -#define DIP204_SPI_NPCS_PIN AVR32_SPI1_NPCS_2_0_PIN -#define DIP204_SPI_NPCS_FUNCTION AVR32_SPI1_NPCS_2_0_FUNCTION -//! @} - -/*! \name GPIO and PWM Connections of the DIP204 LCD Backlight - */ -//! @{ -#define DIP204_BACKLIGHT_PIN AVR32_PIN_PB18 -#define DIP204_PWM_CHANNEL 6 -#define DIP204_PWM_PIN AVR32_PWM_6_PIN -#define DIP204_PWM_FUNCTION AVR32_PWM_6_FUNCTION -//! @} -#endif - -/*! \name SPI Connections of the AT45DBX Data Flash Memory - */ -//! @{ -#define AT45DBX_SPI (&AVR32_SPI1) -#define AT45DBX_SPI_NPCS 2 -#define AT45DBX_SPI_SCK_PIN AVR32_SPI1_SCK_0_0_PIN -#define AT45DBX_SPI_SCK_FUNCTION AVR32_SPI1_SCK_0_0_FUNCTION -#define AT45DBX_SPI_MISO_PIN AVR32_SPI1_MISO_0_0_PIN -#define AT45DBX_SPI_MISO_FUNCTION AVR32_SPI1_MISO_0_0_FUNCTION -#define AT45DBX_SPI_MOSI_PIN AVR32_SPI1_MOSI_0_0_PIN -#define AT45DBX_SPI_MOSI_FUNCTION AVR32_SPI1_MOSI_0_0_FUNCTION -#define AT45DBX_SPI_NPCS2_PIN AVR32_SPI1_NPCS_2_0_PIN -#define AT45DBX_SPI_NPCS2_FUNCTION AVR32_SPI1_NPCS_2_0_FUNCTION -#define AT45DBX_CHIP_RESET AVR32_PIN_PA02 -//! @} - - -/*! \name GPIO and SPI Connections of the SD/MMC Connector - */ -//! @{ -//#define SD_MMC_CARD_DETECT_PIN AVR32_PIN_PA02 -//#define SD_MMC_WRITE_PROTECT_PIN AVR32_PIN_PA07 -#define SD_MMC_SPI (&AVR32_SPI1) -#define SD_MMC_SPI_NPCS 1 -#define SD_MMC_SPI_SCK_PIN AVR32_SPI1_SCK_0_0_PIN -#define SD_MMC_SPI_SCK_FUNCTION AVR32_SPI1_SCK_0_0_FUNCTION -#define SD_MMC_SPI_MISO_PIN AVR32_SPI1_MISO_0_0_PIN -#define SD_MMC_SPI_MISO_FUNCTION AVR32_SPI1_MISO_0_0_FUNCTION -#define SD_MMC_SPI_MOSI_PIN AVR32_SPI1_MOSI_0_0_PIN -#define SD_MMC_SPI_MOSI_FUNCTION AVR32_SPI1_MOSI_0_0_FUNCTION -#define SD_MMC_SPI_NPCS_PIN AVR32_SPI1_NPCS_1_0_PIN -#define SD_MMC_SPI_NPCS_FUNCTION AVR32_SPI1_NPCS_1_0_FUNCTION -//! @} - -/* Timer Counter to generate clock for WiFi chip*/ -# define WIFI_TC (&AVR32_TC) -# define WIFI_TC_CHANNEL_ID 0 -# define WIFI_TC_CHANNEL_PIN AVR32_TC_A0_0_0_PIN -# define WIFI_TC_CHANNEL_FUNCTION AVR32_TC_A0_0_0_FUNCTION -// Note that TC_A0_0_0 pin is pin 6 (PB23) on AT32UC3A1512 QFP100. - -/* Pin related to WiFi chip communication */ -#ifndef USE_POLL - #define USE_POLL -#endif - #define SPI_CS 0 - #define AVR32_SPI AVR32_SPI1 - #define GPIO_IRQ_PIN AVR32_PIN_PA03 - #define GPIO_IRQ AVR32_GPIO_IRQ_7 - #define GPIO_W_RESET_PIN AVR32_PIN_PA07 - #define GPIO_W_SHUTDOWN_PIN AVR32_PIN_PA09 - -/* Pin related to shield communication */ - #define ARDUINO_HANDSHAKE_PIN AVR32_PIN_PA25 - #define ARDUINO_EXTINT_PIN AVR32_PIN_PA04 //not used - - #define AVR32_PDCA_PID_TX AVR32_PDCA_PID_SPI1_TX - #define AVR32_PDCA_PID_RX AVR32_PDCA_PID_SPI1_RX - - -#if 0 -/*! \name TWI Connections of the Spare TWI Connector - */ -//! @{ -#define SPARE_TWI (&AVR32_TWI) -#define SPARE_TWI_SCL_PIN AVR32_TWI_SCL_0_0_PIN -#define SPARE_TWI_SCL_FUNCTION AVR32_TWI_SCL_0_0_FUNCTION -#define SPARE_TWI_SDA_PIN AVR32_TWI_SDA_0_0_PIN -#define SPARE_TWI_SDA_FUNCTION AVR32_TWI_SDA_0_0_FUNCTION -//! @} - - -/*! \name SPI Connections of the Spare SPI Connector - */ -//! @{ -#define SPARE_SPI (&AVR32_SPI0) -#define SPARE_SPI_NPCS 0 -#define SPARE_SPI_SCK_PIN AVR32_SPI0_SCK_0_0_PIN -#define SPARE_SPI_SCK_FUNCTION AVR32_SPI0_SCK_0_0_FUNCTION -#define SPARE_SPI_MISO_PIN AVR32_SPI0_MISO_0_0_PIN -#define SPARE_SPI_MISO_FUNCTION AVR32_SPI0_MISO_0_0_FUNCTION -#define SPARE_SPI_MOSI_PIN AVR32_SPI0_MOSI_0_0_PIN -#define SPARE_SPI_MOSI_FUNCTION AVR32_SPI0_MOSI_0_0_FUNCTION -#define SPARE_SPI_NPCS_PIN AVR32_SPI0_NPCS_0_0_PIN -#define SPARE_SPI_NPCS_FUNCTION AVR32_SPI0_NPCS_0_0_FUNCTION -//! @} -#endif - -#endif // _ARDUINO_H_ diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/BOARDS/ARDUINO/led.c b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/BOARDS/ARDUINO/led.c deleted file mode 100644 index d7cd439..0000000 --- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/BOARDS/ARDUINO/led.c +++ /dev/null @@ -1,346 +0,0 @@ -/* This source file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */ - -/*This file is prepared for Doxygen automatic documentation generation.*/ -/*! \file ********************************************************************* - * - * \brief AT32UC3A EVK1100 board LEDs support package. - * - * This file contains definitions and services related to the LED features of - * the EVK1100 board. - * - * - Compiler: IAR EWAVR32 and GNU GCC for AVR32 - * - Supported devices: All AVR32 AT32UC3A devices can be used. - * - AppNote: - * - * \author Atmel Corporation: http://www.atmel.com \n - * Support and FAQ: http://support.atmel.no/ - * - ******************************************************************************/ - -/* Copyright (c) 2009 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: - * - * 1. Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * 3. The name of Atmel may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 4. This software may only be redistributed and used in connection with an Atmel - * AVR product. - * - * 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 - * EXPRESSLY AND SPECIFICALLY 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 - * - */ - -#include <avr32/io.h> -#include "preprocessor.h" -#include "compiler.h" -#include "arduino.h" -#include "led.h" - - -//! Structure describing LED hardware connections. -typedef const struct -{ - struct - { - U32 PORT; //!< LED GPIO port. - U32 PIN_MASK; //!< Bit-mask of LED pin in GPIO port. - } GPIO; //!< LED GPIO descriptor. - struct - { - S32 CHANNEL; //!< LED PWM channel (< 0 if N/A). - S32 FUNCTION; //!< LED pin PWM function (< 0 if N/A). - } PWM; //!< LED PWM descriptor. -} tLED_DESCRIPTOR; - - -//! Hardware descriptors of all LEDs. -static tLED_DESCRIPTOR LED_DESCRIPTOR[LED_COUNT] = -{ -#define INSERT_LED_DESCRIPTOR(LED_NO, unused) \ - { \ - {LED##LED_NO##_GPIO / 32, 1 << (LED##LED_NO##_GPIO % 32)},\ - {LED##LED_NO##_PWM, LED##LED_NO##_PWM_FUNCTION } \ - }, - MREPEAT(LED_COUNT, INSERT_LED_DESCRIPTOR, ~) -#undef INSERT_LED_DESCRIPTOR -}; - - -//! Saved state of all LEDs. -static volatile U32 LED_State = (1 << LED_COUNT) - 1; - - -U32 LED_Read_Display(void) -{ - return LED_State; -} - - -void LED_Display(U32 leds) -{ - // Use the LED descriptors to get the connections of a given LED to the MCU. - tLED_DESCRIPTOR *led_descriptor; - volatile avr32_gpio_port_t *led_gpio_port; - - // Make sure only existing LEDs are specified. - leds &= (1 << LED_COUNT) - 1; - - // Update the saved state of all LEDs with the requested changes. - LED_State = leds; - - // For all LEDs... - for (led_descriptor = &LED_DESCRIPTOR[0]; - led_descriptor < LED_DESCRIPTOR + LED_COUNT; - led_descriptor++) - { - // Set the LED to the requested state. - led_gpio_port = &AVR32_GPIO.port[led_descriptor->GPIO.PORT]; - if (leds & 1) - { - led_gpio_port->ovrc = led_descriptor->GPIO.PIN_MASK; - } - else - { - led_gpio_port->ovrs = led_descriptor->GPIO.PIN_MASK; - } - led_gpio_port->oders = led_descriptor->GPIO.PIN_MASK; - led_gpio_port->gpers = led_descriptor->GPIO.PIN_MASK; - leds >>= 1; - } -} - - -U32 LED_Read_Display_Mask(U32 mask) -{ - return Rd_bits(LED_State, mask); -} - - -void LED_Display_Mask(U32 mask, U32 leds) -{ - // Use the LED descriptors to get the connections of a given LED to the MCU. - tLED_DESCRIPTOR *led_descriptor = &LED_DESCRIPTOR[0] - 1; - volatile avr32_gpio_port_t *led_gpio_port; - U8 led_shift; - - // Make sure only existing LEDs are specified. - mask &= (1 << LED_COUNT) - 1; - - // Update the saved state of all LEDs with the requested changes. - Wr_bits(LED_State, mask, leds); - - // While there are specified LEDs left to manage... - while (mask) - { - // Select the next specified LED and set it to the requested state. - led_shift = 1 + ctz(mask); - led_descriptor += led_shift; - led_gpio_port = &AVR32_GPIO.port[led_descriptor->GPIO.PORT]; - leds >>= led_shift - 1; - if (leds & 1) - { - led_gpio_port->ovrc = led_descriptor->GPIO.PIN_MASK; - } - else - { - led_gpio_port->ovrs = led_descriptor->GPIO.PIN_MASK; - } - led_gpio_port->oders = led_descriptor->GPIO.PIN_MASK; - led_gpio_port->gpers = led_descriptor->GPIO.PIN_MASK; - leds >>= 1; - mask >>= led_shift; - } -} - - -Bool LED_Test(U32 leds) -{ - return Tst_bits(LED_State, leds); -} - - -void LED_Off(U32 leds) -{ - // Use the LED descriptors to get the connections of a given LED to the MCU. - tLED_DESCRIPTOR *led_descriptor = &LED_DESCRIPTOR[0] - 1; - volatile avr32_gpio_port_t *led_gpio_port; - U8 led_shift; - - // Make sure only existing LEDs are specified. - leds &= (1 << LED_COUNT) - 1; - - // Update the saved state of all LEDs with the requested changes. - Clr_bits(LED_State, leds); - - // While there are specified LEDs left to manage... - while (leds) - { - // Select the next specified LED and turn it off. - led_shift = 1 + ctz(leds); - led_descriptor += led_shift; - led_gpio_port = &AVR32_GPIO.port[led_descriptor->GPIO.PORT]; - led_gpio_port->ovrs = led_descriptor->GPIO.PIN_MASK; - led_gpio_port->oders = led_descriptor->GPIO.PIN_MASK; - led_gpio_port->gpers = led_descriptor->GPIO.PIN_MASK; - leds >>= led_shift; - } -} - - -void LED_On(U32 leds) -{ - // Use the LED descriptors to get the connections of a given LED to the MCU. - tLED_DESCRIPTOR *led_descriptor = &LED_DESCRIPTOR[0] - 1; - volatile avr32_gpio_port_t *led_gpio_port; - U8 led_shift; - - // Make sure only existing LEDs are specified. - leds &= (1 << LED_COUNT) - 1; - - // Update the saved state of all LEDs with the requested changes. - Set_bits(LED_State, leds); - - // While there are specified LEDs left to manage... - while (leds) - { - // Select the next specified LED and turn it on. - led_shift = 1 + ctz(leds); - led_descriptor += led_shift; - led_gpio_port = &AVR32_GPIO.port[led_descriptor->GPIO.PORT]; - led_gpio_port->ovrc = led_descriptor->GPIO.PIN_MASK; - led_gpio_port->oders = led_descriptor->GPIO.PIN_MASK; - led_gpio_port->gpers = led_descriptor->GPIO.PIN_MASK; - leds >>= led_shift; - } -} - - -void LED_Toggle(U32 leds) -{ - // Use the LED descriptors to get the connections of a given LED to the MCU. - tLED_DESCRIPTOR *led_descriptor = &LED_DESCRIPTOR[0] - 1; - volatile avr32_gpio_port_t *led_gpio_port; - U8 led_shift; - - // Make sure only existing LEDs are specified. - leds &= (1 << LED_COUNT) - 1; - - // Update the saved state of all LEDs with the requested changes. - Tgl_bits(LED_State, leds); - - // While there are specified LEDs left to manage... - while (leds) - { - // Select the next specified LED and toggle it. - led_shift = 1 + ctz(leds); - led_descriptor += led_shift; - led_gpio_port = &AVR32_GPIO.port[led_descriptor->GPIO.PORT]; - led_gpio_port->ovrt = led_descriptor->GPIO.PIN_MASK; - led_gpio_port->oders = led_descriptor->GPIO.PIN_MASK; - led_gpio_port->gpers = led_descriptor->GPIO.PIN_MASK; - leds >>= led_shift; - } -} - - -U32 LED_Read_Display_Field(U32 field) -{ - return Rd_bitfield(LED_State, field); -} - - -void LED_Display_Field(U32 field, U32 leds) -{ - // Move the bit-field to the appropriate position for the bit-mask. - LED_Display_Mask(field, leds << ctz(field)); -} - - -U8 LED_Get_Intensity(U32 led) -{ - tLED_DESCRIPTOR *led_descriptor; - - // Check that the argument value is valid. - led = ctz(led); - led_descriptor = &LED_DESCRIPTOR[led]; - if (led >= LED_COUNT || led_descriptor->PWM.CHANNEL < 0) return 0; - - // Return the duty cycle value if the LED PWM channel is enabled, else 0. - return (AVR32_PWM.sr & (1 << led_descriptor->PWM.CHANNEL)) ? - AVR32_PWM.channel[led_descriptor->PWM.CHANNEL].cdty : 0; -} - - -void LED_Set_Intensity(U32 leds, U8 intensity) -{ - tLED_DESCRIPTOR *led_descriptor = &LED_DESCRIPTOR[0] - 1; - volatile avr32_pwm_channel_t *led_pwm_channel; - volatile avr32_gpio_port_t *led_gpio_port; - U8 led_shift; - - // For each specified LED... - for (leds &= (1 << LED_COUNT) - 1; leds; leds >>= led_shift) - { - // Select the next specified LED and check that it has a PWM channel. - led_shift = 1 + ctz(leds); - led_descriptor += led_shift; - if (led_descriptor->PWM.CHANNEL < 0) continue; - - // Initialize or update the LED PWM channel. - led_pwm_channel = &AVR32_PWM.channel[led_descriptor->PWM.CHANNEL]; - if (!(AVR32_PWM.sr & (1 << led_descriptor->PWM.CHANNEL))) - { - led_pwm_channel->cmr = (AVR32_PWM_CPRE_MCK << AVR32_PWM_CPRE_OFFSET) & - ~(AVR32_PWM_CALG_MASK | - AVR32_PWM_CPOL_MASK | - AVR32_PWM_CPD_MASK); - led_pwm_channel->cprd = 0x000000FF; - led_pwm_channel->cdty = intensity; - AVR32_PWM.ena = 1 << led_descriptor->PWM.CHANNEL; - } - else - { - AVR32_PWM.isr; - while (!(AVR32_PWM.isr & (1 << led_descriptor->PWM.CHANNEL))); - led_pwm_channel->cupd = intensity; - } - - // Switch the LED pin to its PWM function. - led_gpio_port = &AVR32_GPIO.port[led_descriptor->GPIO.PORT]; - if (led_descriptor->PWM.FUNCTION & 0x1) - { - led_gpio_port->pmr0s = led_descriptor->GPIO.PIN_MASK; - } - else - { - led_gpio_port->pmr0c = led_descriptor->GPIO.PIN_MASK; - } - if (led_descriptor->PWM.FUNCTION & 0x2) - { - led_gpio_port->pmr1s = led_descriptor->GPIO.PIN_MASK; - } - else - { - led_gpio_port->pmr1c = led_descriptor->GPIO.PIN_MASK; - } - led_gpio_port->gperc = led_descriptor->GPIO.PIN_MASK; - } -} diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/BOARDS/ARDUINO/led.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/BOARDS/ARDUINO/led.h deleted file mode 100644 index a577124..0000000 --- a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/BOARDS/ARDUINO/led.h +++ /dev/null @@ -1,191 +0,0 @@ -/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */ - -/*This file is prepared for Doxygen automatic documentation generation.*/ -/*! \file ********************************************************************* - * - * \brief AT32UC3A EVK1100 board LEDs support package. - * - * This file contains definitions and services related to the LED features of - * the EVK1100 board. - * - * - Compiler: IAR EWAVR32 and GNU GCC for AVR32 - * - Supported devices: All AVR32 AT32UC3A devices can be used. - * - AppNote: - * - * \author Atmel Corporation: http://www.atmel.com \n - * Support and FAQ: http://support.atmel.no/ - * - ******************************************************************************/ - -/* Copyright (c) 2009 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: - * - * 1. Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * 3. The name of Atmel may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * 4. This software may only be redistributed and used in connection with an Atmel - * AVR product. - * - * 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 - * EXPRESSLY AND SPECIFICALLY 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 - * - */ - -#ifndef _LED_H_ -#define _LED_H_ - -#include "compiler.h" - - -/*! \name Identifiers of LEDs to Use with LED Functions - */ -//! @{ -#define LED0 0x01 -#define LED1 0x02 -#define LED2 0x04 -#define LED3 0x08 -#define LED4 0x10 -#define LED5 0x20 -#define LED6 0x40 -#define LED7 0x80 -//! @} - - -/*! \brief Gets the last state of all LEDs set through the LED API. - * - * \return State of all LEDs (1 bit per LED). - * - * \note The GPIO pin configuration of all LEDs is left unchanged. - */ -extern U32 LED_Read_Display(void); - -/*! \brief Sets the state of all LEDs. - * - * \param leds New state of all LEDs (1 bit per LED). - * - * \note The pins of all LEDs are set to GPIO output mode. - */ -extern void LED_Display(U32 leds); - -/*! \brief Gets the last state of the specified LEDs set through the LED API. - * - * \param mask LEDs of which to get the state (1 bit per LED). - * - * \return State of the specified LEDs (1 bit per LED). - * - * \note The GPIO pin configuration of all LEDs is left unchanged. - */ -extern U32 LED_Read_Display_Mask(U32 mask); - -/*! \brief Sets the state of the specified LEDs. - * - * \param mask LEDs of which to set the state (1 bit per LED). - * - * \param leds New state of the specified LEDs (1 bit per LED). - * - * \note The pins of the specified LEDs are set to GPIO output mode. - */ -extern void LED_Display_Mask(U32 mask, U32 leds); - -/*! \brief Tests the last state of the specified LEDs set through the LED API. - * - * \param leds LEDs of which to test the state (1 bit per LED). - * - * \return \c TRUE if at least one of the specified LEDs has a state on, else - * \c FALSE. - * - * \note The GPIO pin configuration of all LEDs is left unchanged. - */ -extern Bool LED_Test(U32 leds); - -/*! \brief Turns off the specified LEDs. - * - * \param leds LEDs to turn off (1 bit per LED). - * - * \note The pins of the specified LEDs are set to GPIO output mode. - */ -extern void LED_Off(U32 leds); - -/*! \brief Turns on the specified LEDs. - * - * \param leds LEDs to turn on (1 bit per LED). - * - * \note The pins of the specified LEDs are set to GPIO output mode. - */ -extern void LED_On(U32 leds); - -/*! \brief Toggles the specified LEDs. - * - * \param leds LEDs to toggle (1 bit per LED). - * - * \note The pins of the specified LEDs are set to GPIO output mode. - */ -extern void LED_Toggle(U32 leds); - -/*! \brief Gets as a bit-field the last state of the specified LEDs set through - * the LED API. - * - * \param field LEDs of which to get the state (1 bit per LED). - * - * \return State of the specified LEDs (1 bit per LED, beginning with the first - * specified LED). - * - * \note The GPIO pin configuration of all LEDs is left unchanged. - */ -extern U32 LED_Read_Display_Field(U32 field); - -/*! \brief Sets as a bit-field the state of the specified LEDs. - * - * \param field LEDs of which to set the state (1 bit per LED). - * \param leds New state of the specified LEDs (1 bit per LED, beginning with - * the first specified LED). - * - * \note The pins of the specified LEDs are set to GPIO output mode. - */ -extern void LED_Display_Field(U32 field, U32 leds); - -/*! \brief Gets the intensity of the specified LED. - * - * \param led LED of which to get the intensity (1 bit per LED; only the least - * significant set bit is used). - * - * \return Intensity of the specified LED (0x00 to 0xFF). - * - * \warning The PWM channel of the specified LED is supposed to be used only by - * this module. - * - * \note The GPIO pin configuration of all LEDs is left unchanged. - */ -extern U8 LED_Get_Intensity(U32 led); - -/*! \brief Sets the intensity of the specified LEDs. - * - * \param leds LEDs of which to set the intensity (1 bit per LED). - * \param intensity New intensity of the specified LEDs (0x00 to 0xFF). - * - * \warning The PWM channels of the specified LEDs are supposed to be used only - * by this module. - * - * \note The pins of the specified LEDs are set to PWM output mode. - */ -extern void LED_Set_Intensity(U32 leds, U8 intensity); - - -#endif // _LED_H_ |