SMARTEST lib for MPS2

Dependents:   MSP2_LCD_HOLA

Committer:
FelipeVR
Date:
Thu Aug 23 13:39:38 2018 +0000
Revision:
0:f1a413971403
SMARTEST LCD

Who changed what in which revision?

UserRevisionLine numberNew contents of line
FelipeVR 0:f1a413971403 1 /*-----------------------------------------------------------------------------
FelipeVR 0:f1a413971403 2 * Name: LED.c
FelipeVR 0:f1a413971403 3 * Purpose: Low level LED functions
FelipeVR 0:f1a413971403 4 *-----------------------------------------------------------------------------
FelipeVR 0:f1a413971403 5 * This file is part of the uVision/ARM development tools.
FelipeVR 0:f1a413971403 6 * This software may only be used under the terms of a valid, current,
FelipeVR 0:f1a413971403 7 * end user licence from KEIL for a compatible version of KEIL software
FelipeVR 0:f1a413971403 8 * development tools. Nothing else gives you the right to use this software.
FelipeVR 0:f1a413971403 9 *
FelipeVR 0:f1a413971403 10 * This software is supplied "AS IS" without warranties of any kind.
FelipeVR 0:f1a413971403 11 *
FelipeVR 0:f1a413971403 12 * Copyright (c) 2013 KEIL - An ARM Company. All rights reserved.
FelipeVR 0:f1a413971403 13 *----------------------------------------------------------------------------*/
FelipeVR 0:f1a413971403 14
FelipeVR 0:f1a413971403 15 #include "SMM_MPS2.h" // MPS2 common header
FelipeVR 0:f1a413971403 16 #include "led.h" // led driver
FelipeVR 0:f1a413971403 17
FelipeVR 0:f1a413971403 18 /*----------------------------------------------------------------------------
FelipeVR 0:f1a413971403 19 Initialize LED pins
FelipeVR 0:f1a413971403 20 *----------------------------------------------------------------------------*/
FelipeVR 0:f1a413971403 21 void LED_Initialize (uint32_t port) {
FelipeVR 0:f1a413971403 22 uint32_t n;
FelipeVR 0:f1a413971403 23 uint32_t num_leds;
FelipeVR 0:f1a413971403 24 if (port == FPGA_LEDS)
FelipeVR 0:f1a413971403 25 num_leds = NUM_FPGA_LEDS;
FelipeVR 0:f1a413971403 26 else
FelipeVR 0:f1a413971403 27 num_leds = NUM_MCC_LEDS;
FelipeVR 0:f1a413971403 28
FelipeVR 0:f1a413971403 29 for (n = 0; n < num_leds; n++) {
FelipeVR 0:f1a413971403 30 LED_Off (n, port);
FelipeVR 0:f1a413971403 31 }
FelipeVR 0:f1a413971403 32 }
FelipeVR 0:f1a413971403 33
FelipeVR 0:f1a413971403 34
FelipeVR 0:f1a413971403 35 /*----------------------------------------------------------------------------
FelipeVR 0:f1a413971403 36 Uninitialize LED pins
FelipeVR 0:f1a413971403 37 *----------------------------------------------------------------------------*/
FelipeVR 0:f1a413971403 38 void LED_Uninitialize (void) {
FelipeVR 0:f1a413971403 39
FelipeVR 0:f1a413971403 40 }
FelipeVR 0:f1a413971403 41
FelipeVR 0:f1a413971403 42 /*-----------------------------------------------------------------------------
FelipeVR 0:f1a413971403 43 Turns on requested LED
FelipeVR 0:f1a413971403 44 num - LED number
FelipeVR 0:f1a413971403 45 *----------------------------------------------------------------------------*/
FelipeVR 0:f1a413971403 46 void LED_On (uint32_t num, uint32_t port) {
FelipeVR 0:f1a413971403 47
FelipeVR 0:f1a413971403 48 if (port == FPGA_LEDS){
FelipeVR 0:f1a413971403 49 if (num < NUM_FPGA_LEDS) {
FelipeVR 0:f1a413971403 50 MPS2_FPGAIO->LED |= (1ul << num);
FelipeVR 0:f1a413971403 51 }
FelipeVR 0:f1a413971403 52 }
FelipeVR 0:f1a413971403 53 else {
FelipeVR 0:f1a413971403 54 if (num < NUM_MCC_LEDS) {
FelipeVR 0:f1a413971403 55 MPS2_SCC->LEDS |= (1ul << num);
FelipeVR 0:f1a413971403 56 }
FelipeVR 0:f1a413971403 57 }
FelipeVR 0:f1a413971403 58 }
FelipeVR 0:f1a413971403 59
FelipeVR 0:f1a413971403 60 /*-----------------------------------------------------------------------------
FelipeVR 0:f1a413971403 61 Turns off requested LED
FelipeVR 0:f1a413971403 62 num - LED number
FelipeVR 0:f1a413971403 63 *----------------------------------------------------------------------------*/
FelipeVR 0:f1a413971403 64 void LED_Off (uint32_t num, uint32_t port) {
FelipeVR 0:f1a413971403 65
FelipeVR 0:f1a413971403 66 if (port == FPGA_LEDS){
FelipeVR 0:f1a413971403 67 if (num < NUM_FPGA_LEDS) {
FelipeVR 0:f1a413971403 68 MPS2_FPGAIO->LED &= ~(1ul << num);
FelipeVR 0:f1a413971403 69 }
FelipeVR 0:f1a413971403 70 }
FelipeVR 0:f1a413971403 71 else {
FelipeVR 0:f1a413971403 72 if (num < NUM_MCC_LEDS) {
FelipeVR 0:f1a413971403 73 MPS2_SCC->LEDS &= ~(1ul << num);
FelipeVR 0:f1a413971403 74 }
FelipeVR 0:f1a413971403 75 }
FelipeVR 0:f1a413971403 76 }
FelipeVR 0:f1a413971403 77
FelipeVR 0:f1a413971403 78 /*-----------------------------------------------------------------------------
FelipeVR 0:f1a413971403 79 Write value to LEDs
FelipeVR 0:f1a413971403 80 val - value to be displayed on LEDs
FelipeVR 0:f1a413971403 81 *----------------------------------------------------------------------------*/
FelipeVR 0:f1a413971403 82 void LED_Out (uint32_t val, uint32_t port) {
FelipeVR 0:f1a413971403 83 if (port == FPGA_LEDS)
FelipeVR 0:f1a413971403 84 MPS2_FPGAIO->LED = val & NUM_FPGA_LEDS_MASK;
FelipeVR 0:f1a413971403 85 else
FelipeVR 0:f1a413971403 86 MPS2_SCC->LEDS = val & NUM_MCC_LEDS_MASK;
FelipeVR 0:f1a413971403 87 }
FelipeVR 0:f1a413971403 88
FelipeVR 0:f1a413971403 89 /*-----------------------------------------------------------------------------
FelipeVR 0:f1a413971403 90 Get number of available LEDs
FelipeVR 0:f1a413971403 91 *----------------------------------------------------------------------------*/
FelipeVR 0:f1a413971403 92 uint32_t LED_NumLeds (uint32_t port) {
FelipeVR 0:f1a413971403 93 if (port == FPGA_LEDS)
FelipeVR 0:f1a413971403 94 return (NUM_FPGA_LEDS);
FelipeVR 0:f1a413971403 95 else
FelipeVR 0:f1a413971403 96 return (NUM_MCC_LEDS);
FelipeVR 0:f1a413971403 97 }