#include <SimpleFOC.h>

// MagneticSensorSPI(MagneticSensorSPIConfig_s config, int cs)
//  config  - SPI config
//  cs      - SPI chip select pin 
// magnetic sensor instance - SPI
// MagneticSensorSPI sensor = MagneticSensorSPI(AS5148_SPI, 10);
// alternative constructor (chipselsect, bit_resolution, angle_read_register, )
MagneticSensorSPI sensor = MagneticSensorSPI(1, 14); // Chip select pin is 1 for Xiao RP2040 and 7 for Xiao SAMD21

void setup() {
  // monitoring port
  Serial.begin(115200);

  // initialise magnetic sensor hardware
  sensor.init();

  Serial.println("Sensor ready");
  _delay(1000);
}

void loop() {
  // iterative function updating the sensor internal variables
  // it is usually called in motor.loopFOC()
  // this function reads the sensor hardware and 
  // has to be called before getAngle nad getVelocity
  sensor.update();
  // display the angle and the angular velocity to the terminal
  Serial.println(sensor.getAngle());
  // Serial.print("\t");
  // Serial.println(sensor.getVelocity());
}
