SMARTEST lib for MPS2
led.cpp@0:f1a413971403, 2018-08-23 (annotated)
- Committer:
- FelipeVR
- Date:
- Thu Aug 23 13:39:38 2018 +0000
- Revision:
- 0:f1a413971403
SMARTEST LCD
Who changed what in which revision?
User | Revision | Line number | New 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 | } |