Пример #1
0
static void max21100SetReg(uint8_t reg, uint8_t val) {
    ((uint8_t *)&max21100TxBuf)[0] = MAX21100_WRITE_BIT | reg;
    ((uint8_t *)&max21100TxBuf)[1] = val;

    max21100Data.spiFlag = 0;
    spiTransaction(max21100Data.spi, &max21100RxBuf, &max21100TxBuf, 2);

    while (!max21100Data.spiFlag)
        ;
}
Пример #2
0
static uint8_t max21100GetReg(uint8_t reg) {
    ((uint8_t *)&max21100TxBuf)[0] = MAX21100_READ_BIT | reg;

    max21100Data.spiFlag = 0;
    spiTransaction(max21100Data.spi, &max21100RxBuf, &max21100TxBuf, 2);

    while (!max21100Data.spiFlag)
        ;

    return ((uint8_t *)&max21100RxBuf)[1];
}
Пример #3
0
static void hmc5983SetReg(uint8_t reg, uint8_t val) {
    static uint8_t rxBuf[2];
    static uint8_t txBuf[2];

    txBuf[0] = HMC5983_WRITE_BIT | reg;
    txBuf[1] = val;

    hmc5983Data.spiFlag = 0;
    spiTransaction(hmc5983Data.spi, rxBuf, txBuf, 2);

    while (!hmc5983Data.spiFlag)
        ;
}
Пример #4
0
static uint8_t hmc5983GetReg(uint8_t reg) {
    static uint8_t rxBuf[2];
    static uint8_t txBuf[2];

    txBuf[0] = HMC5983_READ_BIT | reg;

    hmc5983Data.spiFlag = 0;
    spiTransaction(hmc5983Data.spi, rxBuf, txBuf, 2);

    while (!hmc5983Data.spiFlag)
        ;

    return rxBuf[1];
}
Пример #5
0
/*
 * Class:     edu_wpi_first_wpilibj_hal_SPIJNI
 * Method:    spiTransaction
 * Signature: (BLjava/nio/ByteBuffer;Ljava/nio/ByteBuffer;B)I
 */
JNIEXPORT jint JNICALL Java_edu_wpi_first_wpilibj_hal_SPIJNI_spiTransaction
  (JNIEnv * env, jclass, jbyte port, jobject dataToSend, jobject dataReceived, jbyte size)
{
	SPIJNI_LOG(logDEBUG) << "Calling SPIJNI spiTransaction";
	SPIJNI_LOG(logDEBUG) << "Port = " << (jint) port;
	uint8_t* dataToSendPtr = nullptr;
	if (dataToSend != 0) {
		dataToSendPtr = (uint8_t*)env->GetDirectBufferAddress(dataToSend);
	}
	uint8_t* dataReceivedPtr = (uint8_t*)env->GetDirectBufferAddress(dataReceived);
	SPIJNI_LOG(logDEBUG) << "Size = " << (jint)size;
	SPIJNI_LOG(logDEBUG) << "DataToSendPtr = " << dataToSendPtr;
	SPIJNI_LOG(logDEBUG) << "DataReceivedPtr = " << dataReceivedPtr;
	jint retVal = spiTransaction(port, dataToSendPtr, dataReceivedPtr, size);
	SPIJNI_LOG(logDEBUG) << "ReturnValue = " << (jint)retVal;
	return retVal;
}
Пример #6
0
void max21100IntHandler(void) {
    if (max21100Data.enabled)
        spiTransaction(max21100Data.spi, &max21100Data.rxBuf[max21100Data.slot*MAX21100_SLOT_SIZE], &max21100Data.readReg, MAX21100_BYTES);
}
Пример #7
0
static void mpu6000IntHandler(void) {
    if (mpu6000Data.enabled)
        spiTransaction(mpu6000Data.spi, &mpu6000Data.rxBuf[mpu6000Data.slot*MPU6000_SLOT_SIZE], &mpu6000Data.readReg, MPU6000_BYTES);
}
Пример #8
0
void hmc5983IntHandler(void) {
    if (hmc5983Data.enabled)
        spiTransaction(hmc5983Data.spi, &hmc5983Data.rxBuf[hmc5983Data.slot*HMC5983_SLOT_SIZE], &hmc5983Data.readCmd, HMC5983_BYTES);
}