GRiD Compass
py validate_capture.py "C:\Users\Kirill\work\retro\grid\boot 16.csv" 5 > "C:\Users\Kirill\work\retro\grid\boot 16_validate.txt"
28.468698375: dt = 63 < 100 at Channel 0, Channel 1!
28.727491063: dt = 63 < 100 at Channel 0, Channel 1!
28.748676938: dt = 63 < 100 at Channel 0, Channel 1!
28.748760812: dt = 62 < 100 at Channel 0, Channel 1!
28.868361125: dt = 62 < 100 at Channel 0, Channel 1!
Data mismatch at 2: sent 0x79, has 0x73 in block!
bool GPIO_IF_passive(uint8_t pin) {
gpioSetMode(pin, PI_INPUT);
gpioSetPullUpDown(pin, PI_PUD_UP);
return !((bool)gpioRead(pin));
}
void GPIO_IF_active(uint8_t pin) {
gpioSetMode(pin, PI_OUTPUT);
gpioWrite(pin, state);
}
#define GPIB_WRITE_FUNCTION_DEFINE(pinName) \
void GPIB_Write_##pinName(int value) { \
LOG("Write " #pinName" %d\n", value); \
GPIB_Pin gpibPin = GPIB_PIN_##pinName; \
/*if (GPIB_pin_states[gpibPin] == value) return;*/ \
uint8_t pin = remapGPIBPin(gpibPin); \
if (value) { \
GPIO_IF_SetMode(pin, GPIO_IF_INPUT); \
} else { \
GPIO_IF_SetMode(pin, GPIO_IF_OUTPUT); \
GPIO_IF_SetPinState(pin, value); \
} \
/*GPIB_pin_states[gpibPin] = value;*/ \
}
#define GPIB_WRITE_FUNCTION_DEFINE(pinName) \
void GPIB_Write_##pinName(int value) { \
LOG("Write " #pinName" %d\n", value); \
GPIB_Pin gpibPin = GPIB_PIN_##pinName; \
/*if (GPIB_pin_states[gpibPin] == value) return;*/ \
uint8_t pin = remapGPIBPin(gpibPin); \
if (value) { \
GPIO_IF_SetPullup(pin); \
GPIO_IF_SetMode(pin, GPIO_IF_INPUT); \
} else { \
GPIO_IF_SetPinState(pin, value); \
GPIO_IF_SetMode(pin, GPIO_IF_OUTPUT); \
} \
/*GPIB_pin_states[gpibPin] = value;*/ \
}
int GPIB_Read_DIO() {
int byteValue = 0;
for(int i = 0; i < 8; i++) {
GPIB_Pin gpibPin = (GPIB_Pin) (GPIB_PIN_DIO1 + i);
uint8_t pin = remapGPIBPin(gpibPin);
GPIO_IF_SetMode(pin, GPIO_IF_INPUT);
GPIO_IF_SetPullDown(pin);
// GPIB_Pin gpibPin = (GPIB_Pin) (GPIB_PIN_DIO1 + i);
byteValue |= GPIO_IF_GetPinState(pin) << i;
}
return byteValue;
}
int GPIB_Read_DIO() {
int byteValue = 0;
for(int i = 0; i < 8; i++) {
GPIB_Pin gpibPin = (GPIB_Pin) (GPIB_PIN_DIO1 + i);
uint8_t pin = remapGPIBPin(gpibPin);
GPIO_IF_SetPullup(pin);
GPIO_IF_SetMode(pin, GPIO_IF_INPUT);
// GPIB_Pin gpibPin = (GPIB_Pin) (GPIB_PIN_DIO1 + i);
byteValue |= GPIO_IF_GetPinState(pin) << i;
}
return byteValue;
}