TODOPIC

Microcontroladores PIC => Primeros pasos - Iniciación a los microcontroladores => Mensaje iniciado por: Dirafos en 08 de Diciembre de 2019, 11:11:58

Título: pin ra6 y ra7 declarar como salidas (pic 16f628a)(MikroC PRO for pic)
Publicado por: Dirafos en 08 de Diciembre de 2019, 11:11:58
Buenas a todos disculpen soy nuevo en esto de la programacion y no entiendo porque las salidas ra6 y ra7 no manda señal aunque ya las declare como salidas pongo el puerto a4 como entrada para no usarlo debido  que siempre me causa problemas de conexion :
 int var1;
 int var2;
 int res;

 void config ();
 int suma (int var1, int var2);
 int rest (int var1, int var2);
 int mul (int var1, int var2);
 int div (int var1, int var2);

void main() {
   config ();
 while(1){
  varo = portb & 0b00000011;
  var1 = (portb & 0b00011100)>>2;
  var2 = (portb & 0b11100000)>>5;

      switch (varo){
      case 0 :
      porta =  suma (var1,  var2) ;
      break;
       case 1:
      porta = rest ( var1,  var2);
      break;
       case 2 :
      porta = mul ( var1, var2);
      break;
       case 3 :
      porta = div ( var1,  var2);
      break;

  }
   }
 }
  void config ()  {
    porta = 0x00;
    portb = 0x00;
    cmcon = 0x07;
    trisa = 0b00110000;
    trisb = 0b11111111;
  }







   int suma (int var1, int var2){
     res = var1 + var2;
     return res;

    }

    int rest (int var1, int var2){
     res = var1 - var2;
     return res;

    }

    int mul (int var1, int var2){
     res = var1 * var2;
     return res;

    }

     int div (int var1, int var2){
     res = var1 / var2;
     return res;

    }

Título: Re:pin ra6 y ra7 declarar como salidas (pic 16f628a)
Publicado por: AleSergi en 08 de Diciembre de 2019, 11:37:44
cuando haces éste tipo de preguntas, siempre, pero SIEMPRE, debes empezar indicando el tipo de compilador empleado.... ¡es que Nosotros no somos adivinos!
Título: Re:pin ra6 y ra7 declarar como salidas (pic 16f628a)(MikroC PRO for pic)
Publicado por: KILLERJC en 08 de Diciembre de 2019, 21:21:57
Esos pines unicamente funcionan como entrada/salida si tenes seleccionado el oscilador interno.

Despues hay que ver si realmente tenes algo en RA7 y RA6 como para que cambie.

Por ejemplo:

Suma 3bits + 3 bits, el maximo es de 4 bits.
Multiplicacion de 3 bits, el maximo es de 6bits (hasta RA5)
Division nunca llegaria
Y la resta depende que estes restando.

Otro tema, un int es de 16 bits. Y sin nada se considera un numero con signo. El cual la resta donde var1 < var2, haria que cambie ra6 y ra7
https://download.mikroe.com/documents/compilers/mikroc/pic/help/arithmetic_types.htm