#include <stdio.h>
#include <stdint.h>
#define POLY_PWM_PERIOD (5001)
#define PWM_PERIOD (32767)
#define SQRT3 (1.7320508076f)
#define ONEBYSQ3_Q16 ((int) (65536 / SQRT3))
#define ONEBYSQ3 ((65536 / SQRT3 / 65536))
int main(void) {
// your code goes here
int32_t duty_cycle_input = 1000;
int32_t duty_cycle_to_set = (POLY_PWM_PERIOD / 2) - (duty_cycle_input * (POLY_PWM_PERIOD / 2) / PWM_PERIOD);
int32_t duty_cycle_to_set2 = (POLY_PWM_PERIOD / 2) - (duty_cycle_input * (POLY_PWM_PERIOD / 2 / PWM_PERIOD));
// printf("%d\n", duty_cycle_to_set);
// printf("%d\n", duty_cycle_to_set2);
int32_t phase1_current = 2250;
int32_t phase2_current = 15;
int32_t const beta = ((phase1_current + (2 * phase2_current)) * ONEBYSQ3_Q16) / 65536;
int32_t const beta2 = (phase1_current + (2 * phase2_current)) * ONEBYSQ3;
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRpbnQuaD4KI2RlZmluZSBQT0xZX1BXTV9QRVJJT0QgKDUwMDEpCiNkZWZpbmUgUFdNX1BFUklPRCAoMzI3NjcpCiNkZWZpbmUgU1FSVDMgKDEuNzMyMDUwODA3NmYpCiNkZWZpbmUgT05FQllTUTNfUTE2ICgoaW50KSAoNjU1MzYgLyBTUVJUMykpCiNkZWZpbmUgT05FQllTUTMgKCg2NTUzNiAvIFNRUlQzIC8gNjU1MzYpKQppbnQgbWFpbih2b2lkKSB7CgkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCglpbnQzMl90IGR1dHlfY3ljbGVfaW5wdXQgPSAxMDAwOwoJaW50MzJfdCBkdXR5X2N5Y2xlX3RvX3NldCA9IChQT0xZX1BXTV9QRVJJT0QgLyAyKSAtIChkdXR5X2N5Y2xlX2lucHV0ICogKFBPTFlfUFdNX1BFUklPRCAvIDIpIC8gUFdNX1BFUklPRCk7CglpbnQzMl90IGR1dHlfY3ljbGVfdG9fc2V0MiA9IChQT0xZX1BXTV9QRVJJT0QgLyAyKSAtIChkdXR5X2N5Y2xlX2lucHV0ICogKFBPTFlfUFdNX1BFUklPRCAvIDIgLyBQV01fUEVSSU9EKSk7CgoJLy8gcHJpbnRmKCIlZFxuIiwgZHV0eV9jeWNsZV90b19zZXQpOwoJLy8gcHJpbnRmKCIlZFxuIiwgZHV0eV9jeWNsZV90b19zZXQyKTsKCWludDMyX3QgcGhhc2UxX2N1cnJlbnQgPSAyMjUwOwoJaW50MzJfdCBwaGFzZTJfY3VycmVudCA9IDE1OwoJaW50MzJfdCBjb25zdCBiZXRhID0gKChwaGFzZTFfY3VycmVudCArICgyICogcGhhc2UyX2N1cnJlbnQpKSAqIE9ORUJZU1EzX1ExNikgLyA2NTUzNjsKCWludDMyX3QgY29uc3QgYmV0YTIgPSAocGhhc2UxX2N1cnJlbnQgKyAoMiAqIHBoYXNlMl9jdXJyZW50KSkgKiBPTkVCWVNRMzsKCXByaW50ZigiJWRcbiIsIGJldGEpOwoJcHJpbnRmKCIlZFxuIiwgYmV0YTIpOwoJcmV0dXJuIDA7Cn0K