por lo que he estado tratando de crear un circuito con un PIC16F917, un botón y tres LED, donde al presionar un botón, la salida del LED cambia, al igual que cuando se presiona el botón, se alterna en diferentes modos. He estado tratando de hacer esto utilizando punteros, de manera similar a un multiplexor, donde el valor de un número entero representa el modo de salida determinado (interpretado por outputconfig()
), y la pulsación de un botón incrementa ese número entero en 1; pero realmente no sé qué está mal.
También, ¿por qué XC8 dice en la compilación que el uso de "delay ()" y "outputconfig ()" dentro de main () es una "función declarada como int implícita"? ¿Y por qué sigue funcionando?
Cualquier ayuda y / o guía sería muy apreciada. A continuación se muestra el código con el que estoy trabajando. ¡Gracias!
#include <xc.h>
#include <pic16f917.h>
#include "configbits.h"
#include "definitions.h"
int value;
int *output;
int result;
int main()
{
TRISEbits.TRISE0=1;
TRISDbits.TRISD5=0;
TRISDbits.TRISD6=0;
TRISDbits.TRISD7=0;
while(1)
{
if(1==IN1)
{
delay();
if(1==IN1)
{
output=&value+1;
result=*output;
outputconfig();
}
}
}
}
int delay()
{
int i;
for(i=0;i<1000;i++){}
}
int outputconfig()
{
if(0==value)
{
OUT1=1;
OUT2=0;
OUT3=0;
}
if(1==value)
{
OUT1=0;
OUT2=1;
OUT3=0;
}
if(2==value)
{
OUT1=0;
OUT2=0;
OUT3=1;
}
else
{
NOP();
}
}