From ed3887ac5c1e95308c2827bce3cdca8b0f146c22 Mon Sep 17 00:00:00 2001 From: Kaspar Schleiser Date: Wed, 26 Feb 2020 12:57:57 +0100 Subject: [PATCH] boards: remove chronos support --- boards/chronos/Kconfig | 15 - boards/chronos/Makefile | 5 - boards/chronos/Makefile.dep | 1 - boards/chronos/Makefile.features | 8 - boards/chronos/Makefile.include | 6 - boards/chronos/board_init.c | 106 ---- boards/chronos/doc.txt | 44 -- boards/chronos/drivers/Makefile | 3 - boards/chronos/drivers/battery.c | 38 -- boards/chronos/drivers/buzzer.c | 54 -- boards/chronos/drivers/display.c | 409 --------------- boards/chronos/drivers/display_chars.c | 218 -------- boards/chronos/drivers/display_putchar.c | 70 --- boards/chronos/drivers/include/battery.h | 22 - boards/chronos/drivers/include/buzzer.h | 24 - boards/chronos/drivers/include/display.h | 468 ------------------ .../chronos/drivers/include/display_putchar.h | 22 - boards/chronos/include/board.h | 59 --- boards/chronos/include/buttons.h | 27 - boards/chronos/include/periph_conf.h | 61 --- boards/chronos/stdio.c | 51 -- 21 files changed, 1711 deletions(-) delete mode 100644 boards/chronos/Kconfig delete mode 100644 boards/chronos/Makefile delete mode 100644 boards/chronos/Makefile.dep delete mode 100644 boards/chronos/Makefile.features delete mode 100644 boards/chronos/Makefile.include delete mode 100644 boards/chronos/board_init.c delete mode 100644 boards/chronos/doc.txt delete mode 100644 boards/chronos/drivers/Makefile delete mode 100644 boards/chronos/drivers/battery.c delete mode 100644 boards/chronos/drivers/buzzer.c delete mode 100644 boards/chronos/drivers/display.c delete mode 100644 boards/chronos/drivers/display_chars.c delete mode 100644 boards/chronos/drivers/display_putchar.c delete mode 100644 boards/chronos/drivers/include/battery.h delete mode 100644 boards/chronos/drivers/include/buzzer.h delete mode 100644 boards/chronos/drivers/include/display.h delete mode 100644 boards/chronos/drivers/include/display_putchar.h delete mode 100644 boards/chronos/include/board.h delete mode 100644 boards/chronos/include/buttons.h delete mode 100644 boards/chronos/include/periph_conf.h delete mode 100644 boards/chronos/stdio.c diff --git a/boards/chronos/Kconfig b/boards/chronos/Kconfig deleted file mode 100644 index 4cc9feaec81a..000000000000 --- a/boards/chronos/Kconfig +++ /dev/null @@ -1,15 +0,0 @@ -# Copyright (c) 2020 HAW Hamburg -# -# This file is subject to the terms and conditions of the GNU Lesser -# General Public License v2.1. See the file LICENSE in the top level -# directory for more details. - -config BOARD - default "chronos" if BOARD_CHRONOS - -config BOARD_CHRONOS - bool - default y - select CPU_MODEL_CC430F6137 - select HAS_PERIPH_TIMER - select HAS_PERIPH_RTC diff --git a/boards/chronos/Makefile b/boards/chronos/Makefile deleted file mode 100644 index 1f64a6ab7620..000000000000 --- a/boards/chronos/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -MODULE = board - -DIRS = drivers - -include $(RIOTBASE)/Makefile.base diff --git a/boards/chronos/Makefile.dep b/boards/chronos/Makefile.dep deleted file mode 100644 index 4e4bb9237d53..000000000000 --- a/boards/chronos/Makefile.dep +++ /dev/null @@ -1 +0,0 @@ -USEMODULE += chronos-drivers diff --git a/boards/chronos/Makefile.features b/boards/chronos/Makefile.features deleted file mode 100644 index 78e17d61bbf1..000000000000 --- a/boards/chronos/Makefile.features +++ /dev/null @@ -1,8 +0,0 @@ -CPU = cc430 -CPU_MODEL = cc430f6137 - -# Put defined MCU peripherals here (in alphabetical order) -FEATURES_PROVIDED += periph_timer -FEATURES_PROVIDED += periph_rtc - -# Various other features (if any) diff --git a/boards/chronos/Makefile.include b/boards/chronos/Makefile.include deleted file mode 100644 index 7f8e817e25df..000000000000 --- a/boards/chronos/Makefile.include +++ /dev/null @@ -1,6 +0,0 @@ -# flasher configuration -FLASHFILE ?= $(HEXFILE) -FLASHER = mspdebug -FFLAGS = rf2500 "prog $(FLASHFILE)" - -INCLUDES += -I$(RIOTBOARD)/chronos/drivers/include diff --git a/boards/chronos/board_init.c b/boards/chronos/board_init.c deleted file mode 100644 index da2ad5ef6c0d..000000000000 --- a/boards/chronos/board_init.c +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Copyright (C) 2014 INRIA - * - * This file is subject to the terms and conditions of the GNU Lesser - * General Public License v2.1. See the file LICENSE in the top level - * directory for more details. - */ - -/** - * @ingroup boards_chronos - * @{ - */ - -/** - * @file - * @brief eZ430-chronos board initialization - * - * @author Oliver Hahm - * @author Ludwig Knüpfer - * - */ - -#include - -#include "board.h" -#include "cpu.h" -#include "irq.h" -#include "debug.h" - -#include "display.h" -#include "display_putchar.h" - -void cc430_cpu_init(void) -{ - volatile uint16_t i; - volatile unsigned char *ptr; - - /* disable watchdog */ - WDTCTL = WDTPW + WDTHOLD; - - // --------------------------------------------------------------------- - // Enable 32kHz ACLK - P5SEL |= 0x03; // Select XIN, XOUT on P5.0 and P5.1 - UCSCTL6 &= ~XT1OFF; // XT1 On, Highest drive strength - UCSCTL6 |= XCAP_3; // Internal load cap - - UCSCTL3 = SELA__XT1CLK; // Select XT1 as FLL reference - UCSCTL4 = SELA__XT1CLK | SELS__DCOCLKDIV | SELM__DCOCLKDIV; - - // --------------------------------------------------------------------- - // Configure CPU clock for 12MHz - _BIS_SR(SCG0); // Disable the FLL control loop - UCSCTL0 = 0x0000; // Set lowest possible DCOx, MODx - UCSCTL1 = DCORSEL_5; // Select suitable range - UCSCTL2 = FLLD_1 + 0x16E; // Set DCO Multiplier - _BIC_SR(SCG0); // Enable the FLL control loop - - // Worst-case settling time for the DCO when the DCO range bits have been - // changed is n x 32 x 32 x f_MCLK / f_FLL_reference. See UCS chapter in 5xx - // UG for optimization. - // 32 x 32 x 8 MHz / 32,768 Hz = 250000 = MCLK cycles for DCO to settle - for (i = 0xFF; i > 0; i--); // Time for flag to set - - // Loop until XT1 & DCO stabilizes, use do-while to insure that - // body is executed at least once - do { - UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG); - SFRIFG1 &= ~OFIFG; // Clear fault flags - } - while ((SFRIFG1 & OFIFG)); - - // Disable all interrupts - __disable_interrupt(); - // Get write-access to port mapping registers: - PMAPPWD = 0x02D52; - // Allow reconfiguration during runtime: - PMAPCTL = PMAPRECFG; - - // P2.7 = TA0CCR1A or TA1CCR0A output (buzzer output) - ptr = &P2MAP0; - *(ptr + 7) = PM_TA1CCR0A; - P2OUT &= ~BIT7; - P2DIR |= BIT7; - - // P1.5 = SPI MISO input - ptr = &P1MAP0; - *(ptr + 5) = PM_UCA0SOMI; - // P1.6 = SPI MOSI output - *(ptr + 6) = PM_UCA0SIMO; - // P1.7 = SPI CLK output - *(ptr + 7) = PM_UCA0CLK; - - // Disable write-access to port mapping registers: - PMAPPWD = 0; - // Re-enable all interrupts - irq_enable(); - -} - -void board_init(void) -{ - cc430_cpu_init(); - lcd_init(); - init_display_putchar(); - DEBUG("DISP OK"); -} diff --git a/boards/chronos/doc.txt b/boards/chronos/doc.txt deleted file mode 100644 index c8bc1a4dbf69..000000000000 --- a/boards/chronos/doc.txt +++ /dev/null @@ -1,44 +0,0 @@ -/** -@defgroup boards_chronos Chronos -@ingroup boards -@brief Support for the chronos board - -# Hardware - -![TI eZ430-Chronos running RIOT] -(http://riot-os.org/images/hardware-watch-riot.png) - -# MCU -| MCU | TI CC430F6137 | -|:----------------------------- |:--------------------- | -| Family | MSP430 | -| Vendor | Texas Instruments | -| Package | 64VQFN | -| RAM | 4KiB | -| Flash | 32KiB | -| Frequency | 20MHz | -| FPU | no | -| Timers | 2 (2x 16bit) | -| ADCs | 1x 8 channel 12-bit | -| UARTs | 1 | -| SPIs | 2 | -| I2Cs | 1 | -| Vcc | 2.0V - 3.6V | -| Datasheet / Reference Manual | [Datasheet](http://www.ti.com/lit/gpn/cc430f6137) | -| Board Manual | [User Guide](http://www.ti.com/lit/pdf/slau292)| - -## Flashing RIOT - -Flashing RIOT on the eZ430-Chronos is quite straight forward, just connect -your eZ430-Chronos using the USB programming dongle to your host computer and -type: - -`make flash` - -This should take care of everything! - -# Vendor information - -[TI Wiki](http://processors.wiki.ti.com/index.php/EZ430-Chronos) -[MCU information](http://www.ti.com/product/cc430f6137) - */ diff --git a/boards/chronos/drivers/Makefile b/boards/chronos/drivers/Makefile deleted file mode 100644 index 12b85db41418..000000000000 --- a/boards/chronos/drivers/Makefile +++ /dev/null @@ -1,3 +0,0 @@ -MODULE = chronos-drivers - -include $(RIOTBASE)/Makefile.base diff --git a/boards/chronos/drivers/battery.c b/boards/chronos/drivers/battery.c deleted file mode 100644 index 6c4ec88b5b8f..000000000000 --- a/boards/chronos/drivers/battery.c +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright (C) 2014 INRIA - * - * This file is subject to the terms and conditions of the GNU Lesser - * General Public License v2.1. See the file LICENSE in the top level - * directory for more details. - */ - -/** - * @ingroup boards_chronos - * @{ - */ - -/** - * @file - * @brief eZ430-chronos battery readout (via ADC) - * - * @author Oliver Hahm - * @author Ludwig Knüpfer - * - */ - -#include -#include -#include - -#include "cc430-adc.h" - -uint32_t battery_get_voltage(void) -{ - uint32_t voltage; - voltage = adc12_single_conversion(REFVSEL_1, ADC12SHT0_10, ADC12INCH_11); - - /* Ideally we have A11=0->AVCC=0V ... A11=4095(2^12-1)->AVCC=4V - * --> (A11/4095)*4V=AVCC --> AVCC=(A11*4)/4095 */ - voltage = (voltage * 2 * 2 * 1000) / 4095; - return voltage; -} diff --git a/boards/chronos/drivers/buzzer.c b/boards/chronos/drivers/buzzer.c deleted file mode 100644 index 120e07a3b531..000000000000 --- a/boards/chronos/drivers/buzzer.c +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (C) 2014 INRIA - * - * This file is subject to the terms and conditions of the GNU Lesser - * General Public License v2.1. See the file LICENSE in the top level - * directory for more details. - */ - -/** - * @ingroup boards_chronos - * @{ - */ - -/** - * @file - * @brief eZ430-chronos beeper - * - * @author Oliver Hahm - * @author Ludwig Knüpfer - * @author mikoff - * - */ - -#include -#include -#include - -#include "buzzer.h" -#include "xtimer.h" - -void buzzer_beep(uint8_t pitch, uint32_t duration) -{ - // Reset TA1R, set up mode, TA1 runs from 32768Hz ACLK - TA1CTL = TACLR | MC_1 | TASSEL__ACLK; - - // Set PWM frequency - TA1CCR0 = pitch; - - // Enable IRQ, set output mode "toggle" - TA1CCTL0 = OUTMOD_4; - - // Allow buzzer PWM output on P2.7 - P2SEL |= BIT7; - - xtimer_usleep(duration); - - // Stop PWM timer - TA1CTL &= ~(BIT4 | BIT5); - - // Reset and disable buzzer PWM output - P2OUT &= ~BIT7; - P2SEL &= ~BIT7; - TA1CCTL0 &= ~CCIE; -} diff --git a/boards/chronos/drivers/display.c b/boards/chronos/drivers/display.c deleted file mode 100644 index a0071ddc4c8e..000000000000 --- a/boards/chronos/drivers/display.c +++ /dev/null @@ -1,409 +0,0 @@ -/** - * - * Copyright (C) 2009 Texas Instruments Incorporated - http://www.ti.com/ - * - * - * 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 following disclaimer. - * - * 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. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS 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. - * - */ - -/** - * @ingroup boards_chronos - * @{ - */ - -/** - * @file - * @brief eZ430-chronos display driver - * - * @author Oliver Hahm - * @author Ludwig Knüpfer - * @author Kaspar Schleiser - * @author mikoff - * - */ - -#include -#include - -#include "display.h" - -void write_lcd_mem(uint8_t *lcdmem, uint8_t bits, uint8_t bitmask, uint8_t state); -void clear_line(uint8_t line); -void display_symbol(uint8_t symbol, uint8_t mode); - -/** Display flags */ -volatile s_display_flags_t display; - -/** Global return string for itoa function */ -char itoa_str[8]; - -void lcd_init(void) -{ - /* Clear entire display memory */ - LCDBMEMCTL |= LCDCLRBM + LCDCLRM; - - /* LCD_FREQ = ACLK/16/8 = 256Hz */ - /* Frame frequency = 256Hz/4 = 64Hz, LCD mux 4, LCD on */ - LCDBCTL0 = (LCDDIV0 + LCDDIV1 + LCDDIV2 + LCDDIV3) | (LCDPRE0 + LCDPRE1) | LCD4MUX | LCDON; - - /* LCB_BLK_FREQ = ACLK/8/4096 = 1Hz */ - LCDBBLKCTL = LCDBLKPRE0 | LCDBLKPRE1 | LCDBLKDIV0 | LCDBLKDIV1 | LCDBLKDIV2 | LCDBLKMOD0; - - /* I/O to COM outputs */ - P5SEL |= (BIT5 | BIT6 | BIT7); - P5DIR |= (BIT5 | BIT6 | BIT7); - - /* Activate LCD output */ - LCDBPCTL0 = 0xFFFF; /* Select LCD segments S0-S15 */ - LCDBPCTL1 = 0x00FF; /* Select LCD segments S16-S22 */ - -#ifdef USE_LCD_CHARGE_PUMP - /* Charge pump voltage generated internally, internal bias (V2-V4) generation */ - LCDBVCTL = LCDCPEN | VLCD_2_72; -#endif -} - -void clear_display_all(void) -{ - // Clear generic content - clear_line(LINE1); - clear_line(LINE2); -} - -void clear_display(void) -{ - clear_line(LINE1); - clear_line(LINE2); -} - -void clear_line(uint8_t line) -{ - display_chars(switch_seg(line, LCD_SEG_L1_3_0, LCD_SEG_L2_5_0), NULL, SEG_OFF); - - if (line == LINE1) { - display_symbol(LCD_SEG_L1_DP1, SEG_OFF); - display_symbol(LCD_SEG_L1_DP0, SEG_OFF); - display_symbol(LCD_SEG_L1_COL, SEG_OFF); - } - /* line == LINE2 */ - else { - display_symbol(LCD_SEG_L2_DP, SEG_OFF); - display_symbol(LCD_SEG_L2_COL1, SEG_OFF); - display_symbol(LCD_SEG_L2_COL0, SEG_OFF); - } -} - -void write_lcd_mem(uint8_t *lcdmem, uint8_t bits, uint8_t bitmask, uint8_t state) -{ - if (state == SEG_ON) { - /* Clear segments before writing */ - *lcdmem = (uint8_t)(*lcdmem & ~bitmask); - - /* Set visible segments */ - *lcdmem = (uint8_t)(*lcdmem | bits); - } - else if (state == SEG_OFF) { - /* Clear segments */ - *lcdmem = (uint8_t)(*lcdmem & ~bitmask); - } - else if (state == SEG_ON_BLINK_ON) { - /* Clear visible / blink segments before writing */ - *lcdmem = (uint8_t)(*lcdmem & ~bitmask); - *(lcdmem + 0x20) = (uint8_t)(*(lcdmem + 0x20) & ~bitmask); - - /* Set visible / blink segments */ - *lcdmem = (uint8_t)(*lcdmem | bits); - *(lcdmem + 0x20) = (uint8_t)(*(lcdmem + 0x20) | bits); - } - else if (state == SEG_ON_BLINK_OFF) { - /* Clear visible segments before writing */ - *lcdmem = (uint8_t)(*lcdmem & ~bitmask); - - /* Set visible segments */ - *lcdmem = (uint8_t)(*lcdmem | bits); - - /* Clear blink segments */ - *(lcdmem + 0x20) = (uint8_t)(*(lcdmem + 0x20) & ~bitmask); - } - else if (state == SEG_OFF_BLINK_OFF) { - /* Clear segments */ - *lcdmem = (uint8_t)(*lcdmem & ~bitmask); - - /* Clear blink segments */ - *(lcdmem + 0x20) = (uint8_t)(*(lcdmem + 0x20) & ~bitmask); - } -} - -char *itoa(uint32_t n, uint8_t digits, uint8_t blanks) -{ - uint8_t digits1 = digits; - - /* Preset result string */ - memcpy(itoa_str, "0000000", 7); - - /* Return empty string if number of digits is invalid (valid range for digits: 1-7) */ - if ((digits == 0) || (digits > 7)) { - return (itoa_str); - } - - /* Numbers 0 .. 180 can be copied from itoa_conversion_table without conversion */ - if (n <= 180) { - if (digits >= 3) { - memcpy(itoa_str + (digits - 3), itoa_conversion_table[n], 3); - } - /* digits == 1 || 2 */ - else { - memcpy(itoa_str, itoa_conversion_table[n] + (3 - digits), digits); - } - } - /* For n > 180 need to calculate string content */ - else { - /* Calculate digits from least to most significant number */ - do { - itoa_str[digits - 1] = n % 10 + '0'; - n /= 10; - } - while (--digits > 0); - } - - /* Remove specified number of leading '0', always keep last one */ - uint8_t i = 0; - while ((i < digits1 - 1) && (itoa_str[i] == '0')) { - if (blanks > 0) { - /* Convert only specified number of leading '0' */ - itoa_str[i] = ' '; - blanks--; - } - - i++; - } - - return (itoa_str); -} - -void display_value1(uint8_t segments, uint32_t value, uint8_t digits, uint8_t blanks, uint8_t disp_mode) -{ - char *str; - - str = itoa(value, digits, blanks); - - /* Display string in blink mode */ - display_chars(segments, str, disp_mode); -} - -void display_symbol(uint8_t symbol, uint8_t mode) -{ - if (symbol <= LCD_SEG_L2_DP) { - /* Get LCD memory address for symbol from table */ - uint8_t *lcdmem = (uint8_t *)segments_lcdmem[symbol]; - - /* Get bits for symbol from table */ - uint8_t bits = segments_bitmask[symbol]; - - /* Bitmask for symbols equals bits */ - uint8_t bitmask = bits; - - /* Write LCD memory */ - write_lcd_mem(lcdmem, bits, bitmask, mode); - } -} - -void display_char(uint8_t segment, char chr, uint8_t mode) -{ - /* Write to single 7-segment character */ - if ((segment >= LCD_SEG_L1_3) && (segment <= LCD_SEG_L2_DP)) { - uint8_t bits; /* Bits to write */ - - /* Get LCD memory address for segment from table */ - uint8_t *lcdmem = (uint8_t *)segments_lcdmem[segment]; - - /* Get bitmask for character from table */ - uint8_t bitmask = segments_bitmask[segment]; - - /* Get bits from font set */ - if ((chr >= 0x30) && (chr <= 0x5A)) { - /* Use font set */ - bits = lcd_font[chr - 0x30]; - } - else if (chr == 0x2D) { - /* '-' not in font set */ - bits = BIT1; - } - else { - /* Other characters map to ' ' (blank) */ - bits = 0; - } - - /* When addressing LINE2 7-segment characters need to swap high- and low-nibble, */ - /* because LCD COM/SEG assignment is mirrored against LINE1 */ - if (segment >= LCD_SEG_L2_5) { - uint8_t bits1 = ((bits << 4) & 0xF0) | ((bits >> 4) & 0x0F); - bits = bits1; - - /* When addressing LCD_SEG_L2_5, need to convert ASCII '1' and 'L' to 1 bit, */ - /* because LCD COM/SEG assignment is special for this incomplete character */ - if (segment == LCD_SEG_L2_5) { - if ((chr == '1') || (chr == 'L')) { - bits = BIT7; - } - } - } - - /* Physically write to LCD memory */ - write_lcd_mem(lcdmem, bits, bitmask, mode); - } -} - -void display_chars(uint8_t segments, char *str, uint8_t mode) -{ - uint8_t length = 0; /* Write length */ - uint8_t char_start = 0; /* Starting point for consecutive write */ - - switch (segments) { - /* LINE1 */ - case LCD_SEG_L1_3_0: - length = 4; - char_start = LCD_SEG_L1_3; - break; - - case LCD_SEG_L1_2_0: - length = 3; - char_start = LCD_SEG_L1_2; - break; - - case LCD_SEG_L1_1_0: - length = 2; - char_start = LCD_SEG_L1_1; - break; - - case LCD_SEG_L1_3_1: - length = 3; - char_start = LCD_SEG_L1_3; - break; - - case LCD_SEG_L1_3_2: - length = 2; - char_start = LCD_SEG_L1_3; - break; - - /* LINE2 */ - case LCD_SEG_L2_5_0: - length = 6; - char_start = LCD_SEG_L2_5; - break; - - case LCD_SEG_L2_4_0: - length = 5; - char_start = LCD_SEG_L2_4; - break; - - case LCD_SEG_L2_3_0: - length = 4; - char_start = LCD_SEG_L2_3; - break; - - case LCD_SEG_L2_2_0: - length = 3; - char_start = LCD_SEG_L2_2; - break; - - case LCD_SEG_L2_1_0: - length = 2; - char_start = LCD_SEG_L2_1; - break; - - case LCD_SEG_L2_5_4: - length = 2; - char_start = LCD_SEG_L2_5; - break; - - case LCD_SEG_L2_5_2: - length = 4; - char_start = LCD_SEG_L2_5; - break; - - case LCD_SEG_L2_3_2: - length = 2; - char_start = LCD_SEG_L2_3; - break; - - case LCD_SEG_L2_4_2: - length = 3; - char_start = LCD_SEG_L2_4; - break; - } - - /* Write to consecutive digits */ - for (uint8_t i = 0; i < length; i++) { - /* Use single character routine to write display memory */ - display_char(char_start + i, *(str + i), mode); - } -} - -uint8_t switch_seg(uint8_t line, uint8_t index1, uint8_t index2) -{ - if (line == LINE1) { - return index1; - } - /* line == LINE2 */ - else { - return index2; - } -} - -void start_blink(void) -{ - LCDBBLKCTL |= LCDBLKMOD0; -} - -void stop_blink(void) -{ - LCDBBLKCTL &= ~LCDBLKMOD0; -} - -void clear_blink_mem(void) -{ - LCDBMEMCTL |= LCDCLRBM; -} - -void set_blink_rate(uint8_t bits) -{ - LCDBBLKCTL &= ~(BIT7 | BIT6 | BIT5); - LCDBBLKCTL |= bits; -} - -void display_all_off(void) -{ - uint8_t *lcdptr = (uint8_t *)0x0A20; - for (uint8_t i = 1; i <= 12; i++) { - *lcdptr = 0x00; - lcdptr++; - } -} diff --git a/boards/chronos/drivers/display_chars.c b/boards/chronos/drivers/display_chars.c deleted file mode 100644 index 7d0be455f3f4..000000000000 --- a/boards/chronos/drivers/display_chars.c +++ /dev/null @@ -1,218 +0,0 @@ -/* ************************************************************************************************* - * - * Copyright (C) 2009 Texas Instruments Incorporated - http://www.ti.com/ - * - * - * 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 following disclaimer. - * - * 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. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS 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. - * - * ************************************************************************************************/ - -/* Basic display functions. */ -/* ************************************************************************************************* */ - -/** - * @file - * @brief eZ430-chronos display driver character tables - * - * @author Oliver Hahm - * @author Kaspar Schleiser - * - */ - -/* ************************************************************************************************* */ -/* Include section */ -#include -#include - -#include "display.h" - -/* ************************************************************************************************* */ -/* Global Variable section */ - -/* Table with memory bit assignment for digits "0" to "9" and characters "A" to "Z" */ -/* A */ -/* F B */ -/* G */ -/* E C */ -/* D */ -const uint8_t lcd_font[] = { - SEG_A + SEG_B + SEG_C + SEG_D + SEG_E + SEG_F, /* Displays "0" */ - SEG_B + SEG_C, /* Displays "1" */ - SEG_A + SEG_B + SEG_D + SEG_E + SEG_G, /* Displays "2" */ - SEG_A + SEG_B + SEG_C + SEG_D + SEG_G, /* Displays "3" */ - SEG_B + SEG_C + SEG_F + SEG_G, /* Displays "4" */ - SEG_A + SEG_C + SEG_D + SEG_F + SEG_G, /* Displays "5" */ - SEG_A + SEG_C + SEG_D + SEG_E + SEG_F + SEG_G, /* Displays "6" */ - SEG_A + SEG_B + SEG_C, /* Displays "7" */ - SEG_A + SEG_B + SEG_C + SEG_D + SEG_E + SEG_F + SEG_G, /* Displays "8" */ - SEG_A + SEG_B + SEG_C + SEG_D + SEG_F + SEG_G, /* Displays "9" */ - 0, /* Displays " " (:) */ - 0, /* Displays " " (;) */ - SEG_A + SEG_F + SEG_G, /* Displays "<" as high c */ - SEG_D + SEG_G, /* Displays "=" */ - 0, /* Displays " " (>) */ - SEG_A + SEG_B + SEG_E + SEG_G, /* Displays "?" */ - 0, /* Displays " " (@) */ - SEG_A + SEG_B + SEG_C + SEG_E + SEG_F + SEG_G, /* Displays "A" */ - SEG_C + SEG_D + SEG_E + SEG_F + SEG_G, /* Displays "b" */ - SEG_D + SEG_E + SEG_G, /* Displays "c" */ - SEG_B + SEG_C + SEG_D + SEG_E + SEG_G, /* Displays "d" */ - SEG_A + SEG_D + SEG_E + SEG_F + SEG_G, /* Displays "E" */ - SEG_A + SEG_E + SEG_F + SEG_G, /* Displays "f" */ - SEG_A + SEG_B + SEG_C + SEG_D + SEG_F + SEG_G, /* Displays "g" same as 9 */ - SEG_C + SEG_E + SEG_F + SEG_G, /* Displays "h" */ - SEG_E, /* Displays "i" */ - SEG_A + SEG_B + SEG_C + SEG_D, /* Displays "J" */ - SEG_D + SEG_F + SEG_G, /* Displays "k" */ - SEG_D + SEG_E + SEG_F, /* Displays "L" */ - SEG_A + SEG_B + SEG_C + SEG_E + SEG_F, /* Displays "M" */ - SEG_C + SEG_E + SEG_G, /* Displays "n" */ - SEG_C + SEG_D + SEG_E + SEG_G, /* Displays "o" */ - SEG_A + SEG_B + SEG_E + SEG_F + SEG_G, /* Displays "P" */ - SEG_A + SEG_B + SEG_C + SEG_F + SEG_G, /* Displays "q" */ - SEG_E + SEG_G, /* Displays "r" */ - SEG_A + SEG_C + SEG_D + SEG_F + SEG_G, /* Displays "S" same as 5 */ - SEG_D + SEG_E + SEG_F + SEG_G, /* Displays "t" */ - SEG_C + SEG_D + SEG_E, /* Displays "u" */ - SEG_C + SEG_D + SEG_E, /* Displays "v" same as u */ - SEG_B + SEG_C + SEG_D + SEG_E + SEG_F + SEG_G, /* Displays "W" */ - SEG_B + SEG_C + SEG_E + SEG_F + SEG_G, /* Displays "X" as H */ - SEG_B + SEG_C + SEG_D + SEG_F + SEG_G, /* Displays "Y" */ - SEG_A + SEG_B + SEG_D + SEG_E + SEG_G, /* Displays "Z" same as 2 */ -}; - -/* Table with memory address for each display element */ -const uint8_t *segments_lcdmem[] = { - LCD_SYMB_AM_MEM, - LCD_SYMB_PM_MEM, - LCD_SYMB_ARROW_UP_MEM, - LCD_SYMB_ARROW_DOWN_MEM, - LCD_SYMB_PERCENT_MEM, - LCD_SYMB_TOTAL_MEM, - LCD_SYMB_AVERAGE_MEM, - LCD_SYMB_MAX_MEM, - LCD_SYMB_BATTERY_MEM, - LCD_UNIT_L1_FT_MEM, - LCD_UNIT_L1_K_MEM, - LCD_UNIT_L1_M_MEM, - LCD_UNIT_L1_I_MEM, - LCD_UNIT_L1_PER_S_MEM, - LCD_UNIT_L1_PER_H_MEM, - LCD_UNIT_L1_DEGREE_MEM, - LCD_UNIT_L2_KCAL_MEM, - LCD_UNIT_L2_KM_MEM, - LCD_UNIT_L2_MI_MEM, - LCD_ICON_HEART_MEM, - LCD_ICON_STOPWATCH_MEM, - LCD_ICON_RECORD_MEM, - LCD_ICON_ALARM_MEM, - LCD_ICON_BEEPER1_MEM, - LCD_ICON_BEEPER2_MEM, - LCD_ICON_BEEPER3_MEM, - LCD_SEG_L1_3_MEM, - LCD_SEG_L1_2_MEM, - LCD_SEG_L1_1_MEM, - LCD_SEG_L1_0_MEM, - LCD_SEG_L1_COL_MEM, - LCD_SEG_L1_DP1_MEM, - LCD_SEG_L1_DP0_MEM, - LCD_SEG_L2_5_MEM, - LCD_SEG_L2_4_MEM, - LCD_SEG_L2_3_MEM, - LCD_SEG_L2_2_MEM, - LCD_SEG_L2_1_MEM, - LCD_SEG_L2_0_MEM, - LCD_SEG_L2_COL1_MEM, - LCD_SEG_L2_COL0_MEM, - LCD_SEG_L2_DP_MEM, -}; - -/* Table with bit mask for each display element */ -const uint8_t segments_bitmask[] = { - LCD_SYMB_AM_MASK, - LCD_SYMB_PM_MASK, - LCD_SYMB_ARROW_UP_MASK, - LCD_SYMB_ARROW_DOWN_MASK, - LCD_SYMB_PERCENT_MASK, - LCD_SYMB_TOTAL_MASK, - LCD_SYMB_AVERAGE_MASK, - LCD_SYMB_MAX_MASK, - LCD_SYMB_BATTERY_MASK, - LCD_UNIT_L1_FT_MASK, - LCD_UNIT_L1_K_MASK, - LCD_UNIT_L1_M_MASK, - LCD_UNIT_L1_I_MASK, - LCD_UNIT_L1_PER_S_MASK, - LCD_UNIT_L1_PER_H_MASK, - LCD_UNIT_L1_DEGREE_MASK, - LCD_UNIT_L2_KCAL_MASK, - LCD_UNIT_L2_KM_MASK, - LCD_UNIT_L2_MI_MASK, - LCD_ICON_HEART_MASK, - LCD_ICON_STOPWATCH_MASK, - LCD_ICON_RECORD_MASK, - LCD_ICON_ALARM_MASK, - LCD_ICON_BEEPER1_MASK, - LCD_ICON_BEEPER2_MASK, - LCD_ICON_BEEPER3_MASK, - LCD_SEG_L1_3_MASK, - LCD_SEG_L1_2_MASK, - LCD_SEG_L1_1_MASK, - LCD_SEG_L1_0_MASK, - LCD_SEG_L1_COL_MASK, - LCD_SEG_L1_DP1_MASK, - LCD_SEG_L1_DP0_MASK, - LCD_SEG_L2_5_MASK, - LCD_SEG_L2_4_MASK, - LCD_SEG_L2_3_MASK, - LCD_SEG_L2_2_MASK, - LCD_SEG_L2_1_MASK, - LCD_SEG_L2_0_MASK, - LCD_SEG_L2_COL1_MASK, - LCD_SEG_L2_COL0_MASK, - LCD_SEG_L2_DP_MASK, -}; - -/* Quick integer to array conversion table for most common integer values - * discarding this would save aprox. 600 bytes codespace but increase cpu time - * for displaying values */ -const uint8_t itoa_conversion_table[][3] = { - "000", "001", "002", "003", "004", "005", "006", "007", "008", "009", "010", "011", "012", "013", "014", "015", - "016", "017", "018", "019", "020", "021", "022", "023", "024", "025", "026", "027", "028", "029", "030", "031", - "032", "033", "034", "035", "036", "037", "038", "039", "040", "041", "042", "043", "044", "045", "046", "047", - "048", "049", "050", "051", "052", "053", "054", "055", "056", "057", "058", "059", "060", "061", "062", "063", - "064", "065", "066", "067", "068", "069", "070", "071", "072", "073", "074", "075", "076", "077", "078", "079", - "080", "081", "082", "083", "084", "085", "086", "087", "088", "089", "090", "091", "092", "093", "094", "095", - "096", "097", "098", "099", "100", "101", "102", "103", "104", "105", "106", "107", "108", "109", "110", "111", - "112", "113", "114", "115", "116", "117", "118", "119", "120", "121", "122", "123", "124", "125", "126", "127", - "128", "129", "130", "131", "132", "133", "134", "135", "136", "137", "138", "139", "140", "141", "142", "143", - "144", "145", "146", "147", "148", "149", "150", "151", "152", "153", "154", "155", "156", "157", "158", "159", - "160", "161", "162", "163", "164", "165", "166", "167", "168", "169", "170", "171", "172", "173", "174", "175", - "176", "177", "178", "179", "180", -}; diff --git a/boards/chronos/drivers/display_putchar.c b/boards/chronos/drivers/display_putchar.c deleted file mode 100644 index f3f904551b24..000000000000 --- a/boards/chronos/drivers/display_putchar.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (C) 2014 INRIA - * - * This file is subject to the terms and conditions of the GNU Lesser - * General Public License v2.1. See the file LICENSE in the top level - * directory for more details. - */ - -/** - * @ingroup boards_chronos - * @{ - */ - -/** - * @file - * @brief eZ430-chronos putchar via display implementation - * - * @author Oliver Hahm - * @author Kaspar Schleiser - * @author Ludwig Knüpfer - * @author Aleksandr Mikoff - * - */ - -#include -#include -#include - -#include "display.h" - -extern void (*_putchar)(int c); - -static char display_buf[11]; - -void putchar_to_display(int c); - -void init_display_putchar(void) -{ - memset(display_buf, '\0', 11); - _putchar = putchar_to_display; -} - -void putchar_to_display(int c) -{ - if (c == '\n') { - display_buf[4] = 1; - return; - } - - if (display_buf[4]) { - memset(display_buf, '\0', 11); - } - else { - display_buf[0] = display_buf[1]; - display_buf[1] = display_buf[2]; - display_buf[2] = display_buf[3]; - display_buf[3] = display_buf[5]; - display_buf[5] = display_buf[6]; - display_buf[6] = display_buf[7]; - display_buf[7] = display_buf[8]; - display_buf[8] = display_buf[9]; - } - - display_buf[9] = toupper(c); - - clear_display_all(); - - display_chars(LCD_SEG_L1_3_0, display_buf, SEG_ON); - display_chars(LCD_SEG_L2_5_0, display_buf + 4, SEG_ON); -} diff --git a/boards/chronos/drivers/include/battery.h b/boards/chronos/drivers/include/battery.h deleted file mode 100644 index 5bf58dd9c4b2..000000000000 --- a/boards/chronos/drivers/include/battery.h +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright 2014 Freie Universität Berlin - * - * This file is subject to the terms and conditions of the GNU Lesser - * General Public License v2.1. See the file LICENSE in the top level - * directory for more details. - */ - -#ifndef BATTERY_H -#define BATTERY_H - -#ifdef __cplusplus -extern "C" { -#endif - -uint32_t battery_get_voltage(void); - -#ifdef __cplusplus -} -#endif - -#endif /* BATTERY_H */ diff --git a/boards/chronos/drivers/include/buzzer.h b/boards/chronos/drivers/include/buzzer.h deleted file mode 100644 index 5a323d5853f9..000000000000 --- a/boards/chronos/drivers/include/buzzer.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright 2014 Freie Universität Berlin - * - * This file is subject to the terms and conditions of the GNU Lesser - * General Public License v2.1. See the file LICENSE in the top level - * directory for more details. - */ - -#ifndef BUZZER_H -#define BUZZER_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -void buzzer_beep(uint8_t pitch, uint32_t duration); - -#ifdef __cplusplus -} -#endif - -#endif /* BUZZER_H */ diff --git a/boards/chronos/drivers/include/display.h b/boards/chronos/drivers/include/display.h deleted file mode 100644 index a38e0c9e2322..000000000000 --- a/boards/chronos/drivers/include/display.h +++ /dev/null @@ -1,468 +0,0 @@ -/* ************************************************************************************************* - * - * Copyright (C) 2009 Texas Instruments Incorporated - http://www.ti.com/ - * - * - * 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 following disclaimer. - * - * 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. - * - * Neither the name of Texas Instruments Incorporated nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS 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. - * - * ************************************************************************************************* - * Basic display functions. - * ************************************************************************************************/ - -#ifndef DISPLAY_H -#define DISPLAY_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#define CLOCK_24HR (0) -#define CLOCK_AM_PM (1) -#define CLOCK_DISPLAY_SELECT (2) - - -/* ************************************************************************************************* - * Global Variable section */ - -/** Set of display flags */ -typedef union { - struct { - /* Line1 + Line2 + Icons*/ - uint16_t full_update : 1; /**< 1 = Redraw all content */ - uint16_t partial_update : 1; /**< 1 = Update changes */ - - /* Line only */ - uint16_t line1_full_update : 1; /**< 1 = Redraw Line1 content */ - uint16_t line2_full_update : 1; /**< 1 = Redraw Line2 content */ - - /* Logic module data update flags */ - uint16_t update_time : 1; /**< 1 = Time was updated */ - uint16_t update_stopwatch : 1; /**< 1 = Stopwatch was updated */ - uint16_t update_temperature : 1; /**< 1 = Temperature was updated */ - uint16_t update_battery_voltage : 1; /**< 1 = Battery voltage was updated */ - uint16_t update_date : 1; /**< 1 = Date was updated */ - uint16_t update_alarm : 1; /**< 1 = Alarm time was updated */ - uint16_t update_acceleration : 1; /**< 1 = Acceleration data was updated */ - } flag; /**< Bitfield for the display flags */ - uint16_t all_flags; /**< Shortcut to all display flags (for reset) */ -} s_display_flags_t; - -extern volatile s_display_flags_t display; - -/* Constants defined in library */ -extern const uint8_t lcd_font[]; -extern const uint8_t *segments_lcdmem[]; -extern const uint8_t segments_bitmask[]; -extern const uint8_t itoa_conversion_table[][3]; - -/* ************************************************************************************************* */ -/* Defines section */ - -/* Display function modes */ -#define DISPLAY_LINE_UPDATE_FULL (BIT0) -#define DISPLAY_LINE_UPDATE_PARTIAL (BIT1) -#define DISPLAY_LINE_CLEAR (BIT2) - -/* Definitions for line view style */ -#define DISPLAY_DEFAULT_VIEW (0u) -#define DISPLAY_ALTERNATIVE_VIEW (1u) -#define DISPLAY_ALTERNATIVE2_VIEW (2u) - -/* Definitions for line access */ -#define LINE1 (1u) -#define LINE2 (2u) - -/* LCD display modes */ -#define SEG_OFF (0u) -#define SEG_ON (1u) -#define SEG_ON_BLINK_ON (2u) -#define SEG_ON_BLINK_OFF (3u) -#define SEG_OFF_BLINK_OFF (4u) - -/* 7-segment character bit assignments */ -#define SEG_A (BIT4) -#define SEG_B (BIT5) -#define SEG_C (BIT6) -#define SEG_D (BIT7) -#define SEG_E (BIT2) -#define SEG_F (BIT0) -#define SEG_G (BIT1) - -/* ------------------------------------------ - * LCD symbols for easier access - * - * xxx_SEG_xxx = Seven-segment character (sequence 5-4-3-2-1-0) - * xxx_SYMB_xxx = Display symbol, e.g. "AM" for ante meridiem - * xxx_UNIT_xxx = Display unit, e.g. "km/h" for kilometers per hour - * xxx_ICON_xxx = Display icon, e.g. heart to indicate reception of heart rate data - * xxx_L1_xxx = Item is part of Line1 information - * xxx_L2_xxx = Item is part of Line2 information - */ - -//* Symbols for Line1 */ -#define LCD_SYMB_AM 0 -#define LCD_SYMB_PM 1 -#define LCD_SYMB_ARROW_UP 2 -#define LCD_SYMB_ARROW_DOWN 3 -#define LCD_SYMB_PERCENT 4 - -/* Symbols for Line2 */ -#define LCD_SYMB_TOTAL 5 -#define LCD_SYMB_AVERAGE 6 -#define LCD_SYMB_MAX 7 -#define LCD_SYMB_BATTERY 8 - -/* Units for Line1 */ -#define LCD_UNIT_L1_FT 9 -#define LCD_UNIT_L1_K 10 -#define LCD_UNIT_L1_M 11 -#define LCD_UNIT_L1_I 12 -#define LCD_UNIT_L1_PER_S 13 -#define LCD_UNIT_L1_PER_H 14 -#define LCD_UNIT_L1_DEGREE 15 - -/* Units for Line2 */ -#define LCD_UNIT_L2_KCAL 16 -#define LCD_UNIT_L2_KM 17 -#define LCD_UNIT_L2_MI 18 - -/* Icons */ -#define LCD_ICON_HEART 19 -#define LCD_ICON_STOPWATCH 20 -#define LCD_ICON_RECORD 21 -#define LCD_ICON_ALARM 22 -#define LCD_ICON_BEEPER1 23 -#define LCD_ICON_BEEPER2 24 -#define LCD_ICON_BEEPER3 25 - -/* Line1 7-segments */ -#define LCD_SEG_L1_3 26 -#define LCD_SEG_L1_2 27 -#define LCD_SEG_L1_1 28 -#define LCD_SEG_L1_0 29 -#define LCD_SEG_L1_COL 30 -#define LCD_SEG_L1_DP1 31 -#define LCD_SEG_L1_DP0 32 - -/* Line2 7-segments */ -#define LCD_SEG_L2_5 33 -#define LCD_SEG_L2_4 34 -#define LCD_SEG_L2_3 35 -#define LCD_SEG_L2_2 36 -#define LCD_SEG_L2_1 37 -#define LCD_SEG_L2_0 38 -#define LCD_SEG_L2_COL1 39 -#define LCD_SEG_L2_COL0 40 -#define LCD_SEG_L2_DP 41 - -/* Line1 7-segment arrays */ -#define LCD_SEG_L1_3_0 70 -#define LCD_SEG_L1_2_0 71 -#define LCD_SEG_L1_1_0 72 -#define LCD_SEG_L1_3_1 73 -#define LCD_SEG_L1_3_2 74 - -/* Line2 7-segment arrays */ -#define LCD_SEG_L2_5_0 90 -#define LCD_SEG_L2_4_0 91 -#define LCD_SEG_L2_3_0 92 -#define LCD_SEG_L2_2_0 93 -#define LCD_SEG_L2_1_0 94 -#define LCD_SEG_L2_5_2 95 -#define LCD_SEG_L2_3_2 96 -#define LCD_SEG_L2_5_4 97 -#define LCD_SEG_L2_4_2 98 - -/* LCD controller memory map */ -#define LCD_MEM_1 ((uint8_t*)0x0A20) -#define LCD_MEM_2 ((uint8_t*)0x0A21) -#define LCD_MEM_3 ((uint8_t*)0x0A22) -#define LCD_MEM_4 ((uint8_t*)0x0A23) -#define LCD_MEM_5 ((uint8_t*)0x0A24) -#define LCD_MEM_6 ((uint8_t*)0x0A25) -#define LCD_MEM_7 ((uint8_t*)0x0A26) -#define LCD_MEM_8 ((uint8_t*)0x0A27) -#define LCD_MEM_9 ((uint8_t*)0x0A28) -#define LCD_MEM_10 ((uint8_t*)0x0A29) -#define LCD_MEM_11 ((uint8_t*)0x0A2A) -#define LCD_MEM_12 ((uint8_t*)0x0A2B) - -/* Memory assignment */ -#define LCD_SEG_L1_0_MEM (LCD_MEM_6) -#define LCD_SEG_L1_1_MEM (LCD_MEM_4) -#define LCD_SEG_L1_2_MEM (LCD_MEM_3) -#define LCD_SEG_L1_3_MEM (LCD_MEM_2) -#define LCD_SEG_L1_COL_MEM (LCD_MEM_1) -#define LCD_SEG_L1_DP1_MEM (LCD_MEM_1) -#define LCD_SEG_L1_DP0_MEM (LCD_MEM_5) -#define LCD_SEG_L2_0_MEM (LCD_MEM_8) -#define LCD_SEG_L2_1_MEM (LCD_MEM_9) -#define LCD_SEG_L2_2_MEM (LCD_MEM_10) -#define LCD_SEG_L2_3_MEM (LCD_MEM_11) -#define LCD_SEG_L2_4_MEM (LCD_MEM_12) -#define LCD_SEG_L2_5_MEM (LCD_MEM_12) -#define LCD_SEG_L2_COL1_MEM (LCD_MEM_1) -#define LCD_SEG_L2_COL0_MEM (LCD_MEM_5) -#define LCD_SEG_L2_DP_MEM (LCD_MEM_9) -#define LCD_SYMB_AM_MEM (LCD_MEM_1) -#define LCD_SYMB_PM_MEM (LCD_MEM_1) -#define LCD_SYMB_ARROW_UP_MEM (LCD_MEM_1) -#define LCD_SYMB_ARROW_DOWN_MEM (LCD_MEM_1) -#define LCD_SYMB_PERCENT_MEM (LCD_MEM_5) -#define LCD_SYMB_TOTAL_MEM (LCD_MEM_11) -#define LCD_SYMB_AVERAGE_MEM (LCD_MEM_10) -#define LCD_SYMB_MAX_MEM (LCD_MEM_8) -#define LCD_SYMB_BATTERY_MEM (LCD_MEM_7) -#define LCD_UNIT_L1_FT_MEM (LCD_MEM_5) -#define LCD_UNIT_L1_K_MEM (LCD_MEM_5) -#define LCD_UNIT_L1_M_MEM (LCD_MEM_7) -#define LCD_UNIT_L1_I_MEM (LCD_MEM_7) -#define LCD_UNIT_L1_PER_S_MEM (LCD_MEM_5) -#define LCD_UNIT_L1_PER_H_MEM (LCD_MEM_7) -#define LCD_UNIT_L1_DEGREE_MEM (LCD_MEM_5) -#define LCD_UNIT_L2_KCAL_MEM (LCD_MEM_7) -#define LCD_UNIT_L2_KM_MEM (LCD_MEM_7) -#define LCD_UNIT_L2_MI_MEM (LCD_MEM_7) -#define LCD_ICON_HEART_MEM (LCD_MEM_2) -#define LCD_ICON_STOPWATCH_MEM (LCD_MEM_3) -#define LCD_ICON_RECORD_MEM (LCD_MEM_1) -#define LCD_ICON_ALARM_MEM (LCD_MEM_4) -#define LCD_ICON_BEEPER1_MEM (LCD_MEM_5) -#define LCD_ICON_BEEPER2_MEM (LCD_MEM_6) -#define LCD_ICON_BEEPER3_MEM (LCD_MEM_7) - -/* Bit masks for write access */ -#define LCD_SEG_L1_0_MASK (BIT2+BIT1+BIT0+BIT7+BIT6+BIT5+BIT4) -#define LCD_SEG_L1_1_MASK (BIT2+BIT1+BIT0+BIT7+BIT6+BIT5+BIT4) -#define LCD_SEG_L1_2_MASK (BIT2+BIT1+BIT0+BIT7+BIT6+BIT5+BIT4) -#define LCD_SEG_L1_3_MASK (BIT2+BIT1+BIT0+BIT7+BIT6+BIT5+BIT4) -#define LCD_SEG_L1_COL_MASK (BIT5) -#define LCD_SEG_L1_DP1_MASK (BIT6) -#define LCD_SEG_L1_DP0_MASK (BIT2) -#define LCD_SEG_L2_0_MASK (BIT3+BIT2+BIT1+BIT0+BIT6+BIT5+BIT4) -#define LCD_SEG_L2_1_MASK (BIT3+BIT2+BIT1+BIT0+BIT6+BIT5+BIT4) -#define LCD_SEG_L2_2_MASK (BIT3+BIT2+BIT1+BIT0+BIT6+BIT5+BIT4) -#define LCD_SEG_L2_3_MASK (BIT3+BIT2+BIT1+BIT0+BIT6+BIT5+BIT4) -#define LCD_SEG_L2_4_MASK (BIT3+BIT2+BIT1+BIT0+BIT6+BIT5+BIT4) -#define LCD_SEG_L2_5_MASK (BIT7) -#define LCD_SEG_L2_COL1_MASK (BIT4) -#define LCD_SEG_L2_COL0_MASK (BIT0) -#define LCD_SEG_L2_DP_MASK (BIT7) -#define LCD_SYMB_AM_MASK (BIT1+BIT0) -#define LCD_SYMB_PM_MASK (BIT0) -#define LCD_SYMB_ARROW_UP_MASK (BIT2) -#define LCD_SYMB_ARROW_DOWN_MASK (BIT3) -#define LCD_SYMB_PERCENT_MASK (BIT4) -#define LCD_SYMB_TOTAL_MASK (BIT7) -#define LCD_SYMB_AVERAGE_MASK (BIT7) -#define LCD_SYMB_MAX_MASK (BIT7) -#define LCD_SYMB_BATTERY_MASK (BIT7) -#define LCD_UNIT_L1_FT_MASK (BIT5) -#define LCD_UNIT_L1_K_MASK (BIT6) -#define LCD_UNIT_L1_M_MASK (BIT1) -#define LCD_UNIT_L1_I_MASK (BIT0) -#define LCD_UNIT_L1_PER_S_MASK (BIT7) -#define LCD_UNIT_L1_PER_H_MASK (BIT2) -#define LCD_UNIT_L1_DEGREE_MASK (BIT1) -#define LCD_UNIT_L2_KCAL_MASK (BIT4) -#define LCD_UNIT_L2_KM_MASK (BIT5) -#define LCD_UNIT_L2_MI_MASK (BIT6) -#define LCD_ICON_HEART_MASK (BIT3) -#define LCD_ICON_STOPWATCH_MASK (BIT3) -#define LCD_ICON_RECORD_MASK (BIT7) -#define LCD_ICON_ALARM_MASK (BIT3) -#define LCD_ICON_BEEPER1_MASK (BIT3) -#define LCD_ICON_BEEPER2_MASK (BIT3) -#define LCD_ICON_BEEPER3_MASK (BIT3) - - -/* ************************************************************************************************* - * API section - */ - -/* Physical LCD memory write */ -/* ************************************************************************************************* - * @fn write_segment - * @brief Write to one or multiple LCD segments - * @param lcdmem Pointer to LCD byte memory - * bits Segments to address - * bitmask Bitmask for particular display item - * mode On, off or blink segments - * @return - * ************************************************************************************************/ -void write_lcd_mem(uint8_t *lcdmem, uint8_t bits, uint8_t bitmask, uint8_t state); - -/* Display init / clear */ -/* ************************************************************************************************* - * @fn lcd_init - * @brief Erase LCD memory. Init LCD peripheral. - * @param none - * @return none - * ************************************************************************************************/ -void lcd_init(void); - -/* ************************************************************************************************* - * @fn clear_display - * @brief Erase LINE1 and LINE2 segments. Keep icons. - * @param none - * @return none - * ************************************************************************************************/ -void clear_display(void); - -/* ************************************************************************************************* - * @fn clear_display_all - * @brief Erase LINE1 and LINE2 segments. Clear also function-specific content. - * @param none - * @return none - * ************************************************************************************************/ -void clear_display_all(void); - -/* ************************************************************************************************* - * @fn clear_line - * @brief Erase segments of a given line. - * @param uint8_t line LINE1, LINE2 - * @return none - * ************************************************************************************************/ -void clear_line(uint8_t line); - -/* Blinking function */ -/* ************************************************************************************************* - * @fn start_blink - * @brief Start blinking. - * @param none - * @return none - * ************************************************************************************************/ -void start_blink(void); - -/* ************************************************************************************************* - * @fn stop_blink - * @brief Stop blinking. - * @param none - * @return none - * ************************************************************************************************/ -void stop_blink(void); - -/* ************************************************************************************************* - * @fn stop_blink - * @brief Clear blinking memory. - * @param none - * @return none - * ************************************************************************************************/ -void clear_blink_mem(void); - -/* ************************************************************************************************* - * @fn set_blink_rate - * @brief Set blink rate register bits. - * @param none - * @return none - * ************************************************************************************************/ -void set_blink_rate(uint8_t bits); - -/* Character / symbol draw functions */ -/* ************************************************************************************************* - * @fn display_char - * @brief Write to 7-segment characters. - * @param uint8_t segment A valid LCD segment - * uint8_t chr Character to display - * uint8_t mode SEG_ON, SEG_OFF, SEG_BLINK - * @return none - * ************************************************************************************************/ -void display_char(uint8_t segment, char chr, uint8_t mode); - -/* ************************************************************************************************* - * @FN display_chars - * @brief Write to consecutive 7-segment characters. - * @param uint8_t segments LCD segment array - * uint8_t * str Pointer to a string - * uint8_t mode SEG_ON, SEG_OFF, SEG_BLINK - * @return none - * ************************************************************************************************/ -void display_chars(uint8_t segments, char *str, uint8_t mode); - -/* ************************************************************************************************* - * @fn display_symbol - * @brief Switch symbol on or off on LCD. - * @param uint8_t symbol A valid LCD symbol (index 0..42) - * uint8_t state SEG_ON, SEG_OFF, SEG_BLINK - * @return none - * ************************************************************************************************/ -void display_symbol(uint8_t symbol, uint8_t mode); - -/* Set_value display functions */ -/* ************************************************************************************************* - * @fn display_value1 - * @brief Generic decimal display routine. Used exclusively by set_value function. - * @param uint8_t segments LCD segments where value is displayed - * uint32_t value Integer value to be displayed - * uint8_t digits Number of digits to convert - * uint8_t blanks Number of leadings blanks in itoa result string - * @return none - * ************************************************************************************************/ -void display_value1(uint8_t segments, uint32_t value, uint8_t digits, uint8_t blanks, uint8_t disp_mode); - -/* Integer to string conversion */ -/* ************************************************************************************************* - * @fn itoa - * @brief Generic integer to array routine. Converts integer n to string. - * Default conversion result has leading zeros, e.g. "00123" - * Option to convert leading '0' into whitespace (blanks) - * @param uint32_t n integer to convert - * uint8_t digits number of digits - * uint8_t blanks fill up result string with number of whitespaces instead of leading zeros - * @return uint8_t string - * ************************************************************************************************/ -char *itoa(uint32_t n, uint8_t digits, uint8_t blanks); - -/* Segment index helper function */ -/* ************************************************************************************************* - * @fn switch_seg - * @brief Returns index of 7-segment character. Required for display routines that can draw - * information on both lines. - * @param uint8_t line LINE1, LINE2 - * uint8_t index1 Index of LINE1 - * uint8_t index2 Index of LINE2 - * @return uint8 - * ************************************************************************************************/ -uint8_t switch_seg(uint8_t line, uint8_t index1, uint8_t index2); - -/* ************************************************************************************************* - * @fn display_all_off - * @brief Sets everything of on the display - * @param none - * @return none - * ************************************************************************************************/ -void display_all_off(void); - -#ifdef __cplusplus -} -#endif - -#endif /* DISPLAY_H */ diff --git a/boards/chronos/drivers/include/display_putchar.h b/boards/chronos/drivers/include/display_putchar.h deleted file mode 100644 index e4e347c0a2f4..000000000000 --- a/boards/chronos/drivers/include/display_putchar.h +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright 2014 Freie Universität Berlin - * - * This file is subject to the terms and conditions of the GNU Lesser - * General Public License v2.1. See the file LICENSE in the top level - * directory for more details. - */ - -#ifndef DISPLAY_PUTCHAR_H -#define DISPLAY_PUTCHAR_H - -#ifdef __cplusplus -extern "C" { -#endif - -void init_display_putchar(void); - -#ifdef __cplusplus -} -#endif - -#endif /* DISPLAY_PUTCHAR_H */ diff --git a/boards/chronos/include/board.h b/boards/chronos/include/board.h deleted file mode 100644 index 30cee95acc4e..000000000000 --- a/boards/chronos/include/board.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (C) 2013,2015 Freie Universität Berlin - * - * This file is subject to the terms and conditions of the GNU Lesser - * General Public License v2.1. See the file LICENSE in the top level - * directory for more details. - */ - -/** - * @ingroup boards_chronos - * @{ - * - * @file - * @brief Header for the chronos board - * - * @author unknown - */ - -#ifndef BOARD_H -#define BOARD_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * @brief Define the CPU model for the - */ -#ifndef __CC430F6137__ -#define __CC430F6137__ -#endif - -/** - * @name Xtimer configuration - * @{ - */ -#define XTIMER_WIDTH (16) -/** @} */ - -/** - * @name MSP430 core configuration - * @{ - */ -/** @todo Move this to the periph_conf.h */ -#define MSP430_INITIAL_CPU_SPEED 7372800uL -#define F_CPU MSP430_INITIAL_CPU_SPEED -#define F_RC_OSCILLATOR 32768 -#define MSP430_HAS_DCOR 1 -#define MSP430_HAS_EXTERNAL_CRYSTAL 1 -/** @} */ - -#ifdef __cplusplus -} -#endif - -#endif /* BOARD_H */ -/** @} */ diff --git a/boards/chronos/include/buttons.h b/boards/chronos/include/buttons.h deleted file mode 100644 index ddaaf9a19de3..000000000000 --- a/boards/chronos/include/buttons.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright 2014 Freie Universität Berlin - * - * This file is subject to the terms and conditions of the GNU Lesser - * General Public License v2.1. See the file LICENSE in the top level - * directory for more details. - */ - -#ifndef BUTTONS_H -#define BUTTONS_H - -#ifdef __cplusplus -extern "C" { -#endif - -// Button ports -#define BUTTON_STAR_PIN (BIT2) -#define BUTTON_NUM_PIN (BIT1) -#define BUTTON_UP_PIN (BIT4) -#define BUTTON_DOWN_PIN (BIT0) -#define BUTTON_BACKLIGHT_PIN (BIT3) - -#ifdef __cplusplus -} -#endif - -#endif /* BUTTONS_H */ diff --git a/boards/chronos/include/periph_conf.h b/boards/chronos/include/periph_conf.h deleted file mode 100644 index b81b868891c6..000000000000 --- a/boards/chronos/include/periph_conf.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright (C) 2014 INRIA - * 2015 Freie Universität Berlin - * - * This file is subject to the terms and conditions of the GNU Lesser General - * Public License v2.1. See the file LICENSE in the top level directory for more - * details. - */ - -/** - * @ingroup boards_chronos - * @{ - * - * @file - * @brief Chronos peripheral configuration - * - * @author Oliver Hahm - * @author Hauke Petersen - */ - -#ifndef PERIPH_CONF_H -#define PERIPH_CONF_H - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * @name Clock configuration - * @{ - */ -/** @todo Move all clock configuration code here from the board.h */ -#define CLOCK_CORECLOCK (12000000U) - -#define CLOCK_CMCLK CLOCK_CORECLOCK /* no divider programmed */ -/** @} */ - -/** - * @name Timer configuration - * @{ - */ -#define TIMER_NUMOF (1U) -#define TIMER_BASE (TIMER_A0) -#define TIMER_CHAN (5) -#define TIMER_ISR_CC0 (TIMER0_A0_VECTOR) -#define TIMER_ISR_CCX (TIMER0_A1_VECTOR) -/** @} */ - -/** - * @name UART configuration - * @{ - */ -#define UART_NUMOF (0U) -/** @} */ - - -#ifdef __cplusplus -} -#endif - -#endif /* PERIPH_CONF_H */ diff --git a/boards/chronos/stdio.c b/boards/chronos/stdio.c deleted file mode 100644 index f94b9875aaf6..000000000000 --- a/boards/chronos/stdio.c +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (C) 2014 INRIA - * 2015 Kaspar Schleiser - * - * This file is subject to the terms and conditions of the GNU Lesser - * General Public License v2.1. See the file LICENSE in the top level - * directory for more details. - */ - -/** - * @ingroup boards_chronos - * @{ - */ - -/** - * @file - * @brief eZ430-chronos getchar/putchar dummy implementation - * - * @author Oliver Hahm - * @author Kaspar Schleiser - * - */ - -#include - -static void _dummy(int c) -{ - (void)c; -} - -void (*_putchar)(int c) = _dummy; - -int putchar(int c) -{ - _putchar(c); - return c; -} - -int getchar(void) -{ - /* dummy implementation */ - return EOF; -} - -ssize_t write(int fildes, const void *buf, size_t nbyte) -{ - (void)fildes; - (void)buf; - (void)nbyte; - return -1; -}