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

clearBit()

setBits(reg, bits)#

Zie ook

clearBit()

clearBits(reg, bits)#

Zie ook

clearBit()

Enums

enum gpioDirection#

Pin richting.

Values:

enumerator INPUT#
enumerator OUTPUT#
enum gpioValue#

Pin waarde.

Values:

enumerator LOW#
enumerator HIGH#
enum gpioFunction#

Alternatieve pin functies.

Values:

enumerator DIGITAL#
enumerator PRIMARY#
enumerator SECONDARY#
enumerator CAPACITIVESENSING#

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.