python--输出spwm的数组

 python的功能是非常强大的,这个例子使用python编写的输出spwm数组(不对,在C语言或者其他语言叫做数组,在这里叫做list.)的程序,我们在单片机程序里调用这个程序,可以达到输出spwm波形的效果。具体的讲解就在源程序,只要大家对调用的库多家了解,理解调用函数的意义,那么自己写出这样的函数就会很简单。

#! python3
#coding=utf-8

"""
Python版本:3.x
外部库:matplotlib1.5.3、numpy1.11.2

运行方式:
在命令行中输入:python sinWave.py 

运行结果:
命令行中会打印计算得的各点数据,
在当前目录下会生成py_dac_sinWav.c文件,包含上述数据,
并且会弹出描绘曲线的对话框。
"""

import matplotlib.pyplot as plt 
import numpy as np
import math

#修改本变量可以更改点数,如16、32、64等
POINT_NUM = 180
#正弦函数放大倍数
MULTIPLE = 2**9

#正弦函数X取值范围
X_VALUE = math.pi

# POINT_NUM 个点
n = np.linspace(0,X_VALUE,POINT_NUM)

#计算POINT_NUM个点的正弦值
a = map(math.sin,n)

r =[]
for i in a:
    temp = round(i*MULTIPLE)
    #得到序列
    r.append( temp )
   

print(list(map(int,r)))

#写入序列到文件
with open("py_pwm_sinWave.c",'w',encoding= 'gb2312') as f:
    print(list(map(int,r)),file= f)

#绘图
plt.plot(n,r,"-o")
plt.show()

 下面是python输出的数组,不对,在C语言或者其他语言叫做数组,在这里叫做list.

另外就是输出挺新的结果,就是在单片机里面调用这个数组。

 

posted @ 2017-05-21 21:33  张大猛  阅读(1050)  评论(0编辑  收藏  举报