Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Purpose

Enables the use of a Digital Input/Output (DIO) Pin by telling the program if it should be considered as an Input or an Output.

When to use

Once for each DIO Pin used on the board. If you connect anything to a digital pin, its mode should be set.

Where to use

At the beginning of your code execution, in the void setup() part of your .ino file, so that the pin mode is set before the pin is referred to by your code.

Click here to learn more on the DIOs of the 9880 board.

This function requires the use of the following functions at some point of your .ino file in order to work properly:

Returns

This function does not return a value once it has completed its tasks.

Main prototype and parameters

static void Crc::CrcLib::SetDigitalPinMode(unsigned char pin, unsigned char mode)

The following parameters must be passed to the function for it to work properly:

  • pin: The name of the digital pin you want to set. Must be of the type unsigned char.

  • mode: The mode you want to set the pin to. Must be of the type unsigned char. Needs to be one of the following:

    • INPUT, if you are using the digital pin as as input.

    • OUTPUT, if you are using the digital pin as as output.

Overloads

This function does not have any overloads. It can only be used as described by the main prototype.

Examples

 #1: We want to connect a digital sensor, like a limit switch, to DIO Port 5. We want to connect a small light or a relay control signal, to DIO Port 9.
#include <CrcLib.h>

using namespace Crc;

void setup() {
    CrcLib::Initialize();

    //Set up DIO Port 5 as an Input
    CrcLib::SetDigitalPinMode(CRC_DIG_5, INPUT);

    //Set up DIO Port 9 as an Output
    CrcLib::SetDigitalPinMode(CRC_DIG_9, OUTPUT);
    
    /* 
    The rest of your setup code
    ...
     */
}
void loop() {
    CrcLib::Update();
    
    /* 
    The rest of your looping code
    ...
    */
}

More on this function

Why not use the native Arduino function pinMode() instead of CrcLib::SetDigitalPinMode() ?

We recommend using CrcLib::SetDigitalPinMode() because it adds a few layers of validation to make sure you don't assign a mode to an unsafe pin.

Are there any other mode than INPUT and OUTPUT ?

Click here to learn more about the different pin modes on an Arduino board. Note that a pull-up resistor is connected to all digital pins of the 9880 board, so using INPUT has the same effect as using INPUT_PULLUP. Google is a great place to learn about pull-up resistors (and its sister, the pull-down resistor), but this page is a good introduction.

More on this here.

Articles liés

  • No labels