sinegen.py 565 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. import string
  2. import math
  3. import sys
  4. M_PI = 3.14159265358979323846
  5. def sine(val,r,scale,stepping):
  6. global M_PI,flip
  7. re = int(math.sin(val*(M_PI*scale)/r)*r) + r
  8. re = re & 0xff
  9. re = re * stepping
  10. return re
  11. def main():
  12. cnt = 64
  13. stepping = 1
  14. upper = 0xff
  15. s = "#define PWM_SINE_MAX %i\nuint8_t pwm_sine_table[] = {\n" % cnt
  16. for i in range(0,cnt):
  17. if i > 0 and i%16==0:
  18. s+="\n"
  19. s +="0x%02x," % sine(i,upper/2,(float(upper)/cnt),stepping)
  20. s=s[:-1]
  21. s+="\n};\n"
  22. print s
  23. main()