TODOPIC
Microcontroladores PIC => Primeros pasos - Iniciación a los microcontroladores => Mensaje iniciado 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;
}
-
cuando haces éste tipo de preguntas, siempre, pero SIEMPRE, debes empezar indicando el tipo de compilador empleado.... ¡es que Nosotros no somos adivinos!
-
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