Sensorian  1.0
C API Reference Guide Library
Utilities.c
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (C) 2015 Sensorian
3  * *
4  * This file is part of Sensorian. *
5  * *
6  * Sensorian is free software: you can redistribute it and/or modify it *
7  * under the terms of the GNU Lesser General Public License as published *
8  * by the Free Software Foundation, either version 3 of the License, or *
9  * (at your option) any later version. *
10  * *
11  * Sensorian is distributed in the hope that it will be useful, *
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
14  * GNU Lesser General Public License for more details. *
15  * *
16  * You should have received a copy of the GNU Lesser General Public *
17  * License along with Sensorian. *
18  * If not, see <http://www.gnu.org/licenses/>. *
19  ****************************************************************************/
20 
28 #include "Utilities.h"
29 
33 
39 void delay_ms(unsigned int ms)
40 {
41  bcm2835_delay(ms);
42 }
43 
49 void pinModeOutput(PIN_t pin)
50 {
51  bcm2835_gpio_fsel(pin, BCM2835_GPIO_FSEL_OUTP);
52 }
53 
60 void digitalWrite(PIN_t pin, unsigned char level)
61 {
62  bcm2835_gpio_write(pin, level); // set to level
63 }
64 
71 {
72  bcm2835_gpio_fsel(pin,BCM2835_GPIO_FSEL_INPT); // Set the pin to be an input
73  bcm2835_gpio_set_pud(pin, BCM2835_GPIO_PUD_DOWN); // Enable pull up.
74  PinLevel_t pinLevel = (PinLevel_t)bcm2835_gpio_lev(pin); //read voltage level on MFP pin
75  return pinLevel;
76 }
77 
84 {
85  bcm2835_gpio_ren(pin); //enable rising edge detect on pin
86 }
87 
94 {
95  bcm2835_gpio_clr_ren(pin); //Disable rising edge detect on pin
96 }
97 
104 {
105  bcm2835_gpio_ren(pin); //enable rising edge detect on pin
106 }
107 
114 {
115  bcm2835_gpio_clr_ren(pin); //Disable rising edge detect on pin
116 }
117 
124 {
125  bcm2835_gpio_ren(pin); //enable rising edge detect on pin
126 }
127 
134 {
135  bcm2835_gpio_clr_ren(pin); //Disable rising edge detect on pin
136 }
137 
143 void EnableDetectLowLevel(PIN_t pin)
144 {
145  bcm2835_gpio_ren(pin); //enable rising edge detect on pin
146 }
147 
154 {
155  bcm2835_gpio_clr_ren(pin); //Disable rising edge detect on pin
156 }
157 
164 {
165  bcm2835_gpio_aren(pin); //enable rising edge detect on pin
166 }
167 
174 {
175  bcm2835_gpio_clr_aren(pin); //Disable rising edge detect on pin
176 }
177 
183 unsigned char CheckPinforEvent(PIN_t pin)
184 {
185  unsigned char event = bcm2835_gpio_eds(pin); //Check for event detection
186  bcm2835_gpio_set_eds(pin); //Clear even detection interrupt flags
187  return event;
188 }
189 
void pinModeOutput(PIN_t pin)
Configures the given pin as output.
Definition: Utilities.c:49
void DisableDetectRisingEdge(PIN_t pin)
Disables detection of rising edge.
Definition: Utilities.c:93
void EnableDetectFallingEdge(PIN_t pin)
Enables detection of falling edge.
Definition: Utilities.c:103
void DisableDetectFallinggEdge(PIN_t pin)
Dsiables detection of falling edge.
Definition: Utilities.c:113
void DisableDetectRisingInterrupt(PIN_t pin)
Disables detection of rising edge interrupt.
Definition: Utilities.c:173
void EnableDetectRisingEdge(PIN_t pin)
Enables detection of rising edge.
Definition: Utilities.c:83
unsigned char CheckPinforEvent(PIN_t pin)
Checks fro even on given pin.
Definition: Utilities.c:183
PinLevel_t ReadPinStatus(PIN_t pin)
Configures the pins as input and returns the pin status.
Definition: Utilities.c:70
Utilities driver.
void EnableDetectLowLevel(PIN_t pin)
Enables detection of low level.
Definition: Utilities.c:143
enum PinLev PinLevel_t
void DisableDetectHighLevel(PIN_t pin)
Disables detection of high level.
Definition: Utilities.c:133
uint8_t PIN_t
Definition: Utilities.h:37
void delay_ms(unsigned int ms)
Delay in ms.
Definition: Utilities.c:39
void digitalWrite(PIN_t pin, unsigned char level)
Write a logic level to the pin. The pin should be confgured as output.
Definition: Utilities.c:60
void EnableDetectHighLevel(PIN_t pin)
Enables detection of high level on pin.
Definition: Utilities.c:123
void DisableDetectLowLevel(PIN_t pin)
Disables detection of low level.
Definition: Utilities.c:153
void EnableDetectRisingInterrupt(PIN_t pin)
Enables detection of rising edge interrupt.
Definition: Utilities.c:163