@@ -50,30 +50,32 @@ MagneticSensorSPIConfig_s MA730_SPI = {
5050// cs - SPI chip select pin
5151// _bit_resolution sensor resolution bit number
5252// _angle_register - (optional) angle read register - default 0x3FFF
53- MagneticSensorSPI::MagneticSensorSPI (int cs, int _bit_resolution, int _angle_register){
53+ MagneticSensorSPI::MagneticSensorSPI (int cs, int _bit_resolution, int _angle_register, long _clock_speed ){
5454
5555 chip_select_pin = cs;
5656 // angle read register of the magnetic sensor
5757 angle_register = _angle_register ? _angle_register : DEF_ANGLE_REGISTER;
5858 // register maximum value (counts per revolution)
5959 cpr = _powtwo (_bit_resolution);
6060 spi_mode = SPI_MODE1;
61- clock_speed = 1000000 ;
61+ clock_speed = _isset (_clock_speed) ? _clock_speed : 1000000 ;
6262 bit_resolution = _bit_resolution;
6363
6464 command_parity_bit = 15 ; // for backwards compatibilty
6565 command_rw_bit = 14 ; // for backwards compatibilty
6666 data_start_bit = 13 ; // for backwards compatibilty
6767}
6868
69- MagneticSensorSPI::MagneticSensorSPI (MagneticSensorSPIConfig_s config, int cs){
69+ MagneticSensorSPI::MagneticSensorSPI (MagneticSensorSPIConfig_s config, int cs, long _clock_speed ){
7070 chip_select_pin = cs;
7171 // angle read register of the magnetic sensor
7272 angle_register = config.angle_register ? config.angle_register : DEF_ANGLE_REGISTER;
7373 // register maximum value (counts per revolution)
7474 cpr = _powtwo (config.bit_resolution );
7575 spi_mode = config.spi_mode ;
76- clock_speed = config.clock_speed ;
76+ // allow to override clock speed from config with the one provided as argument
77+ // if the argument clock speed is not provided (i.e. is NOT_SET), use the clock speed from the config
78+ clock_speed = _isset (_clock_speed) ? _clock_speed : config.clock_speed ;
7779 bit_resolution = config.bit_resolution ;
7880
7981 command_parity_bit = config.command_parity_bit ; // for backwards compatibilty
0 commit comments