Search Engine

15 Threads found on Porta Digital Input
Debugging : 0. Make sure your port is working fine...!!! (very common mistake). Put some leds on your port and turn them on and off. In PIC16f877a whole porta is an analog input and NOT digital I/O 1. Turn Off all the unused peripherals of microcontroller which are not in use...LIKE ADC, Timer...etc (Some are ON by default in PIC micr
Compiler? Sensor - Analog - digital? If analog, connect it to Analog channel (porta), setting ADC, and read ADC. For example (this is for PIC16F1827): main(){ //initiate ADC: Setting PORT A bits as Analog inputs (if Sensor Outputs connected to RA0, RA1 AND RA2): TRISA = 0b00000111; // setting ANSEL ANSELA = 0b00000111; init_ADC(); (...)
Hi Kazi, porta is bidirectional port, can be digital or analog, Data direction register is TRISA, if you set "1" in TRISA reg the pin will be input, if you set "0" pin will be output (Hemnath explaine this in previous post) ADCON1 register configures the function of pins on porta, to be digital or analog, if (...)
These two settings are wrong ADCON1= 0b00000000; //set porta as analog input ADCON0= 0b01000011; //configure AN0 and AN1 as analog channel You are using switches on RA0 and RA1. They have to be digital inputs. Change the code like this and try. if(porta==0b00000001) { PORTC=0b00001000; (...)
Hi there, I have problems in configuring my MCU as input and also Output in my simple project. My goal on my program is like example, when RA0 of porta is toggled, all PORTB will blink ON-OFF, if I toggle RB0 of PORTB, all PORTC will blink ON-OFF, and if I toggle RC0, all PORTD will blink ON-OFF, etc.... I have a little background of programmi
porta normally can function as analog input. So, you need set address (ADCON0) to set as digital I/O.
for setting port A and E as digital and disable PSP, is the below code enough, or we need any further declaration ? ADCON1 = 0x07 ; //Disable all analogs CMCON = 7; //Disable all comparators TRISE.f4 = 0; //PSP off trisa=0xff; // porta as input trise=0xff; // porte as (...)
Also, remember that porta pins may have alternate analogue functions (depending on your microcontroller). So, you need to set the PORT to digital. You may need to disable ADC and comparator. Check the respective datasheet for details. Hope this helps. Tahmid.
Hi, The port of ATMEGA is pin addressable. The way each pin is addressed depends on your compiler. eg: In mikroC, I can do porta.1 = 1;or RA1_bit = 1;In AVR Studio GCC (WinAVR), I can do porta |= (1<porta,1You should know that each pin has additional functions, e
you are taking input on porta and by default porta is assigned to ADC you need to first configure porta as a digital port in ADCON1 register then proceed forward. it will work
Hi, Try this instead: program ADC_on_LEDs dim temp_res as word main: ANSEL = 0x04 ' Configure AN2 pin as analog ANSELH = 0 ' Configure other AN pins as digital I/O C1ON_bit = 0 ' Disable comparators C2ON_bit = 0 TRISA = 0xFF ' porta is input TRISC = 0 ' PORTC is output TRISD = 0 ' P
Hi fara793, Just tell us what output you are getting exactly. If you are trying to output some value on porta, then you need to configure it as digital I/O since it is initialised as analog input pin for ADC after reset. Put ADCON1=6 at the beginning. Also refer to the ADC section in the datasheet.
I need a program code which will take analog input voltage from channel 0 of porta, convert it to 10 bit digital binary number, store the number in EEPROM data memory. Take another input from same channel after 15 minutes and again save it to EEPROM data memory. When I press a switch connected with RC0, the LCD connected with POR
porta,3 is also the Mclr pin of the chip. You will note that your config line states Mclr=ON which tell the chip to act on the input state of the pin RA3 to Reset or Run - so that confilcts with you trying to use it as digital input. Don't have the circuit diagram, but assume the 'switch ' you are talking about is a (...)
On the 16F877 porta is switched to analog input on reset. If you want to use it as digital I/O you must put this into your init routine: ADCON1=6; Check the datasheet ... hope this helps and best regards