关于一个正弦波程序表格生成器
关于一个正弦波程序表格生成器
首先附上代码----先声明,我是个抓不到钱的菜鸟,开始再这里分享我的成长。
import math
import time
fp = "正弦波表格.txt"
def sintab_create(tableIndex,tablelength,highVol,period,outVol):with open(fp,"a") as f:f.write('''static const uint8_t TabData_%d[%d]=//%dV\n{\n''' %(tableIndex, tablelength,highVol))for Count in range(0,tablelength):temp = outVol*(2**0.5)*math.sin(math.pi*Count/(2*tablelength))/highVol*period#temp = math.sin(PI * Count / (2 * period))f.write(str(int(temp))+",")if Count%10==9:f.write("\n")f.write("}\n")f.close()if __name__ == "__main__":print("你好")with open(fp, "w") as f:f.write("\\\\"+str(time.time())+"\n")TableLength = int(input("请输入想生成的表格个数(0-1000个):"))TableIndex = int(input("请输入每个表格的长度(83或者100):"))PwmPeriod = int(input("请输入PWM周期(167或者200):"))SinOut = int(input("请输入输出电压(100V或者220V):"))HighVolInput = int(input("请输入你想设定的最低电压值:"))for HighVolinedx in range(0,TableLength):HighVolNow = HighVolInput+HighVolinedx*2sintab_create(HighVolinedx,TableIndex,HighVolNow,PwmPeriod,SinOut)temp = 1while temp:temp = int(input("输入0表示tui退出:"))
1. 代码解析
代码相当简单,没有做UI,等有空了在增加一个UI。主要用到的也只是以下几个
代码输入input(),当然可以用raw_input()。
TableLength = int(input("请输入想生成的表格个数(0-1000个):"))
主函数main的使用:
if __name__ == "__main__":
条件语句和循环语句 if for while的使用。
for HighVolinedx in range(0,TableLength):while temp:if Count%10==9:
txt的新建,打开和写入,读写功能
fp = "正弦波表格.txt" with open(fp,"a") as f:f.read()f.write()
函数的定义
def sintab_create(tableIndex,tablelength,highVol,period,outVol):
标准化输出,和C语言略有不一样
f.write('''static const uint8_t TabData_%d[%d]=//%dV\n{\n''' %(tableIndex, tablelength,highVol))
2.关于公式的计算
直流高压∗占空比值/周期∗dt=需要的正弦波值∗根号2∗sin(Π/2/表格数∗index)∗dt直流高压*占空比值/周期*dt = 需要的正弦波值*根号2*sin(Π/2/表格数*index)*dt 直流高压∗占空比值/周期∗dt=需要的正弦波值∗根号2∗sin(Π/2/表格数∗index)∗dt
由于md格式刚用不久,不太会用公式工具,见谅。此公式涉及到能量等效,功率等效。
3.遇到的问题
不要自己定义特定变量–特别是Π这样的值。
import math #这里的math可以完成大多数的值
在生成可执行文件exe的时候
需要安装:pip install pyinstaller 这个实测在pycharm里面会产生错误,多试几次就好了
#安装完成后:执行 pyinstaller --hidden-import=pkg_resources -F main.py
不要执行
pyinstaller -w -F main.py #这一行会导致程序不执行,暂时还没有找到原因
4.后续完善
这只是个小demo,方便写程序的。后期完善的话,会陆续再写个UI界面。共同进步吧。
多一句,今天看到前女友要结婚了,而自己还单身一人,略有后悔吧,还在纠结要不要参加她的婚礼
关于一个正弦波程序表格生成器相关推荐
- 使用 Flutter 制作一个简单的笑话生成器应用程序
在本教程中,我将向您展示如何使用 Flutter 制作一个简单的笑话生成器应用程序 对于这个项目,我们将从 RESTful API 获取数据 API的链接: 随机笑话 对于这个项目,我不会关注应用程序 ...
- 一个资深程序猿对Python的总结
1.环境管理:管理 Python 版本和环境的工具. p – 非常简单的交互式 python 版本管理工具. pyenv – 简单的 Python 版本管理工具. Vex – 可以在虚拟环境中执行命令 ...
- 用java实现一个计算器程序_1.2第一个java程序——hello world
第一个java程序--hello world 实现一个java程序,主要有三个步骤:1.编写源代码,2.编译源代码,3.运行.java的源代码必须先编译,然后才能由JVM解析执行.所以我们程序员第一步 ...
- 使用 Node.js、Express、AngularJS 和 MongoDB 构建一个Web程序
为什么80%的码农都做不了架构师?>>> 使用 Node.js.Express.AngularJS 和 MongoDB 构建一个实时问卷调查应用程序 2014 年 3 月 20 ...
- GPU 编程入门到精通(三)之 第一个 GPU 程序
博主由于工作当中的需要,开始学习 GPU 上面的编程,主要涉及到的是基于 GPU 的深度学习方面的知识,鉴于之前没有接触过 GPU 编程,因此在这里特地学习一下 GPU 上面的编程.有志同道合的小伙伴 ...
- python用一行代码编写一个回声程序_利用Python实现一个WC程序
项目要求 wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数.这个项目要求写一个命令行程序,模仿已有wc.exe 的功能,并加以扩充,给出某程序设计语言源文件的字符数.单词数和行数 ...
- 第一个Windows程序讲解
上次,我们一起写了第一个Windows程序,虽然程序非常简单,但是它却可以帮助大家建立学好windows开发的信心. 今天,就让我帮助大家分析一下这个程序的内容.首先,我们的程序包含了一个头文件:wi ...
- 第2章 创建你的第一个 LISP 程序 Creating Your First Lisp Progr
2019独角兽企业重金招聘Python工程师标准>>> 第2章 创建你的第一个 LISP 程序 Creating Your First Lisp Program 翻译者:FreeBl ...
- 一个C++程序员的学习经历
原文出处:http://www.uml.org.cn/success/201304082.asp 正在上网的时候有这个念头的,所以急急忙忙找了一些学习编程的高人的感想: 我开始学VC时就是自己一个人在 ...
- 摩斯电码php源码,利用PHP怎么编写一个摩斯电码生成器
利用PHP怎么编写一个摩斯电码生成器 发布时间:2020-12-15 16:16:54 来源:亿速云 阅读:78 作者:Leah 这篇文章给大家介绍利用PHP怎么编写一个摩斯电码生成器,内容非常详细, ...
最新文章
- 设计模式 之美 -- 代理模式
- 区块链行业报告|从交易流程到Token经济的全方位解析
- 四种高性能数据类型,Python collections助你优化代码、简洁任务
- python deepcopy_轻轻吐槽下python的deepcopy居然一点不deep
- #CSP 201912-1 报数(C语言)(100分)
- sublime快捷键设置
- Python实现简单的人脸打卡系统
- 通过Shiny app实现疫苗预防疾病的过程
- js 定义函数的几种方法 以及如何调用
- stm32 某个io引脚不能拉高_【stm32f407】IO引脚复用和映射
- 公式编辑器里面添加空格
- CSDN下载码如何使用以及免积分下载
- IM通讯系统分析与实战
- Python爬虫编程思想(69): 项目实战--抓取当当图书排行榜
- android persistent属性研究
- 监控系统-Prometheus(普罗米修斯)(三)Grafana可视化图形工具
- java实现简单的 cs架构
- 测试过程中遇到的问题总结
- pyecharts:日历图实战
- python pandas excel 排序_python – Pandas – 使用datetimeindex对数据帧进行排序
热门文章
- 阿里代码规范pdf_5年老码农的代码规范,值得学习!
- STM32串口中断接收
- step 7在win10上安装教程及安装包
- sterm机器人编程_STEAM智能编程机器人
- 解决Navicat 15注册机出现 rsa public key not found
- kaggle--猫狗数据集分类
- Linux系统软件看门狗
- html中pre的作用是,HTML pre 标签与code标签的作用与用法
- c 语言min max 归一化,归一化方法 Normalization Method
- 乐视电视安装鸿蒙系统,乐视电视更新后无法识别apk文件怎么办?方法教程