Hola wenas, estoy haciendo una practica con un 8051 en el que tengo que implementar una tabla de verdad con tres entradas y con tres salidas, el caso es que el ejercicio parece sencillo, utilizando una matriz de ocho posiciones declarada con la función bdata y luego rellenando con los valores que corresponda en cada caso, el problema esta en que no funciona, la matriz tiene valores de 8 bits y sin embargo siempre que hay un valor distinto de 0 lo toma com positivo en todos sus bits.
No se si me he explicado bien, bueno dejo el código y haber si veis algún error.
#include <REG51.H>
#include "uah_types.h"
#include "uah_bit_access.h"
byte bdata OutVal[8]={4,5,3,6,5,1,6,5};
void Delay(void){
unsigned int i,j;
for(i=0; i<0xFFFF ;i++)
for(j=0; j<0x4 ;j++)
;
}
void main (void) {
P2 = 0x00; //Inicializo la salida
while(1){
byte i;
i = P1&0x07; //i = X2 X1 X0
P2_0= OutVal
^0;
P2_1= OutVal^1;
P2_2= OutVal^2;
Delay();
}
}
En uah_bit_access.h y uah_types.h es donde tengo que declara el typedef de byte y los P2_0 y esas cosas
.
Muchas gracias.