GPIO#
Algemene informatie#
Deze functies en macro’s helpen om bitjes te setten en te clearen. Het is voornamelijk om de leesbaarheid te vergroten.
Te doen
Pull-up/down functies schrijven
Voorbeeld#
//P1.0 als input
gpioSetDirection(1, 0, INPUT);
//P2.5 als output
gpioSetDirection(2, 5, OUTPUT);
//zet P2.5 hoog
gpioSet(2, 5, HIGH)
//i2c functie selecteren pinnetjes 1.6 en 1.7
gpioSetFunction(1, 6, SECONDARY);
gpioSetFunction(1, 7, SECONDARY);
API#
Defines
-
clearBit(reg, bit)#
Macro om bitje 0 te maken binnen een register.
Deze regel beschrijft een zogenaamde macro. Deze specifieke macro kun je zien als een slim ‘search and replace’ commando voor de preprocessor (deel van het build proces). Overal waar ‘clearBit(reg,bit)’ staat zal dit worden vervangen met ‘reg |= (1<<bit)’. Een macro wordt nu toegepast omdat een functie pointers nodig zou hebben om hetzelfde te bereiken.
-
setBit(reg, bit)#
Zie ook
-
setBits(reg, bits)#
Zie ook
-
clearBits(reg, bits)#
Zie ook
Enums
Functions
-
void gpioSetDirection(uint8_t port, uint8_t pin, gpioDirection dir)#
Elke pin kan een ingang of uitgangspin worden. Met deze functie kun je het instellen.
//Stel P1.5 in als een output pin gpioSetDirection(1,5, OUTPUT);
- Parameters:
port – De port van de pin (1 of 2)
pin – De in te stellen pin (0 t/m 7)
dir – Kies OUTPUT (1) of INPUT (0)
-
bool gpioHigh(uint8_t port, uint8_t pin)#
controleer of de ingang hoog is
//Check P1.5 if (gpioHigh(1,5)) { //doe iets }
- Parameters:
port – De port van de pin (1 of 2)
pin – De in te stellen pin (0 t/m 7)
- Returns:
true als hoge ingang, false als lage ingang
-
void gpioSet(uint8_t port, uint8_t pin, gpioValue value)#
Stel de waarde in van de uitgangspin.
Stel met deze functie de logische waarde in van een uitgangspin. Let op: Kan een andere uitwerking hebben als de pin in kwestie niet is ingesteld als uitgang.
- Todo:
De functie houdt er momenteel geen rekening mee dat een pin ook als input ingesteld zou kunnen zijn.
- Parameters:
port – De port van de pin (1 of 2)
pin – De in te stellen pin (0 t/m 7)
value – Kies HIGH (1) of LOW (0)*
-
void gpioSetFunction(uint8_t port, uint8_t pin, gpioFunction function)#
Stel in aan welke functionaliteit de betreffende pin is gekoppeld.
De pinnen van de microcontroller zijn gekoppeld aan verschillende schakelingen en dus functies.
//stel P2.0 in voor de eerste alternatieve functie gpioSetFunction(2,0,PRIMARY); //Stel P1.7 in voor de tweede alternatieve functie gpioSetFunction(1,7,SECONDARY); //Stel P1.7 weer in als een digitale I/O pin gpioSetFunction(1,7,DIGITAL);
Deze tabel beschrijf alle primary en secundaire functies die zijn gekoppeld aan de pinnen. Let op: wanneer de pin wordt gebruikt voor ADC10, Capactieve Detectie of als JTAG, dan heeft deze functie geen invloed.
Pin
Primary
Secondary
P1.0
TACLK
P1.1
TA0.0
UCA0RXD
P1.2
TA0.1
UCA0TXD
P1.3
ADC10CLK
CAOUT
P1.4
SMCLK
UCB0STE/UCA0CLK
P1.5
TA0.0
UCB0CLK/UCA0STE
P1.6
TA0.1
UCB0SCL/UCB0SOMI
P1.7
CAOUT
UCB0SDA/UCB0SIMO
P2.X
TIMER1_A3
- Parameters:
port – De port van de pin (1 of 2)
pin – De in te stellen pin (0 t/m 7)
function – Mogelijk te selecteren functies zijn DIGITAL (standaard), PRIMARY, SECONDARY, CAPACITIVESENSING.