PIC32MX: Digital Inputs
From Mech
(Redirected from PIC32: Digital Inputs)
Jump to navigationJump to searchWorking with digital inputs and outputs is fundamental to circuit design, and PIC microcontrollers add versatility to design by allowing programming and re-programming of the logic associated with input and output pins. In this way, one PIC microcontroller can take the place of many pre-programmed digital logic ICs.
Digital Inputs Example
This section uses an example to describe how to set up and read digital inputs using a PIC32MX460F512L.
Sample Code
Program to display push-button input as LED (on board) output
/******************************************************************** Digital Input Code Andrew Long ********************************************************************/ #include "HardwareProfile.h" #include <plib.h> // NOTE THAT BECAUSE WE USE THE BOOTLOADER, NO CONFIGURATION IS NECESSARY // THE BOOTLOADER PROJECT ACTUALLY CONTROLS ALL OF OUR CONFIG BITS // Define a constant INPUT_A9 which reads the digital input. // PORTx reads on port x the current value of the pin (in this case A9). #define INPUT_A9 PORTAbits.RA9 int main(void) { // Configure the proper PB frequency and the number of wait states SYSTEMConfigPerformance(SYS_FREQ); // Set all analog pins to be digital I/O AD1PCFG = 0xFFFF; //Initialize all of the LED pins mInitAllLEDs(); // The pin that we want to use as an input must be initialized as an input. // TRISx is a register that sets the pin as an input (1) or an output(0). // You can set entire ports as inputs / outputs by using TRISA &= Hex number; // We use &= hex number to only change the pins that we want to set as inputs / outputs. //Set A9 as a digital input TRISAbits.TRISA9=1; while(1) { mLED_2_On(); // What we're going to do is blink an LED on and off // depending on whether or not digital input is high or low. if (INPUT_A9 == 0) { mLED_3_On(); } else { mLED_3_Off(); } } }