Int i2c_read(uint8_t reg_address, uint8_t *output, uint8_t length) Si570_Status setFrequency(uint32_t newfreq) Si570(uint8_t i2c_address, uint32_t calibration_frequency) In Si570.h, I added a member variable to the Si570 class to hold the calculated 3500 ppm value for the current center frequency. Meanwhile, here are the changes for the adventurous among us that want to take on the change manually. The changes will be posted to my GitHub Si570 repository as soon as I am able. Lastly, I modified the Si570 code to only calculate the 3500 ppm offset whenever the DCO centre frequency was changed rather than on every frequency change in order to gain a slight performance improvement. Secondarily, the Arduino absolute value function (abs()) is very quirky and it was just simpler to remove the function from my code. Firstly, I failed to reserve sufficient bits for the 3500 ppm calculation. The frequency was being set correctly, just clicking the receiver when it was not necessary. While setting the frequency correctly, the error was causing the DCO to restart on every increment in frequency producing an audible click in the Minima. The code was unnecessarily resetting the DCO on every update when tuning down in frequency. A problem has been discovered in my Si570 code that implements 1Hz tuning.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |