向串口助手发送数据c语言程序,利用DSP2812编写直流电机PID调速程序(C语言)
==57)
{
Scia_VarRx=9;
}
kb=Scia_VarRx[0]*1000;
hd=Scia_VarRx[1]*100;
de=Scia_VarRx[2]*10;
un=Scia_VarRx[3];
d1=Scia_VarRx[4];
d2=Scia_VarRx[5];
D=kb+hd+de+un;
pwm_duty=0;
i++;
if(i==6)
{
i=0;
}
EALLOW;
GpioDataRegs.GPADAT.bit.GPIOA0=d1; //通过串口助手发送的数据来改变PWM1引脚的高低
GpioDataRegs.GPADAT.bit.GPIOA1=d2; //通过串口助手发送的数据来改变PWM1引脚的高低
EDIS;
PieCtrl.PIEACK.bit.ACK9=1;
EINT;
}
interrupt void CAPINT3_ISR(void)
{
capint3++;
if(capint3==1)
{
EvaRegs.T2CON.bit.TENABLE=1;
cap1=EvaRegs.T2CNT;
T1=t2pint;
}
if(capint3==2)
{
cap2=EvaRegs.T2CNT;
T2=t2pint;
temp1=cap2+(T2-T1)*65535-cap1;
freq=300000;
n1=freq/(float)temp1;
for(j=0;j<200;j++)
{
n[j]=n1;
}
t2pint=0;
T1=T2=0;
capint3=0;
EvaRegs.T2CNT=0;
EvaRegs.T2CON.bit.TENABLE=0;
}
EvaRegs.EVAIFRC.bit.CAP3INT=1;
EvaRegs.EVAIMRC.bit.CAP3INT=1;
PieCtrl.PIEACK.bit.ACK3=1;
}
interrupt void T2PINT_ISR(void)
{
t2pint++;
EvaRegs.EVAIFRB.bit.T2PINT=1;
EvaRegs.EVAIMRB.bit.T2PINT=1;
PieCtrl.PIEACK.bit.ACK3=1;
EINT;
}
interrupt void T1PINT_ISR(void) // 通用定时器T1的周期中断
{
t1pint++;
if(t1pint==100) //达到5ms开始进行PID运算
{
Ref=D*10/1500;
Fdb=n1;
Err=Ref-Fdb;
a0=Kp*(1+T/Ki+Kd/T);
a1=Kp*(1+2*Kd/T);
a2=Kp*Kd/T;
Out=Out_1+a0*Err-a1*Err_1+a2*Err_2;
pwm+=Out; //增量
duty=D+(int)pwm;
if(duty>1500)
{
t1cmpr=1500;
}
else
{
t1cmpr=duty;
}
EvaRegs.T1CMPR=t1cmpr;
Out_1=Out;
Err_2=Err_1;
Err_1=Err;
}
EvaRegs.EVAIFRA.bit.T1PINT=1;
EvaRegs.EVAIMRA.bit.T1PINT=1;
PieCtrl.PIEACK.bit.ACK2=1;
EINT;
}
上面是我自己编写的程序,测速采用的T法测速,请你帮忙看一下,谢谢
向串口助手发送数据c语言程序,利用DSP2812编写直流电机PID调速程序(C语言)相关推荐
- USART向串口助手发送数据(DMA方式)
目录 一.前言 二.什么是DMA? 1.DMA简介 2.DMA主要特性 3.DMA框图 三.STM32CubeMX工程创建 1.题目要求 2.CubeMX工程配置 四.Keil工程的创建 五.效果展示 ...
- 串口助手发送数据到单片机并显示在液晶上
实验平台:51开发板 实验人:阿辉 实验现象:串口助手发送一串数据,实现LED状态翻转 数据: eb 01 30 00 00 39 ed eb 02 30 00 00 39 ed 实验代码如下: #i ...
- pwmc语言调速程序_51单片机的直流电机PWM调速系统设计,正转反转,加减速,急停等,仿真和代码...
设计思路 直流电机PWM控制系统的主要功能包括:实现对直流电机的加速.减速以及电机的正转.反转和急停,并且可以调整电机的转速,能够方便的实现电机的智能控制. 主体电路:即直流电机PWM控制模块.这部分 ...
- 串口通信(串口助手发送数据给单片机,单片机原封不动发给串口助手)
话不多说直接上重点 串口内部结构 SM0和SM1为工作方式选择位 SM2 多机通信控制位,主要应用于方式2和方式3,SM2为1的时候可以利用RB8来控制是否 激活RI(当RB8=0时不激活RI,收到信 ...
- 当串口助手发送数据给单片机,单片机原封不动转发给串口助手显示
#include <REGX52.H> typedef unsigned char u8; typedef unsigned int u16; void delay_10us(u16 us ...
- 用c++语言编写的小程序,利用C++编写一些有趣的小程序
虽然说中学没有参加过信息学竞赛,但相对来说,我接触编程算是比较早的.和我同龄的人,若小学参加过计算机竞赛,大概还对PC-logo有点印象,这算是我对编程的最初体验,这里就不叙述.到了初中,便按着规定学 ...
- 普中单片机--串口通信(2)---通过串口助手发送数据点LED
普中单片机–串口通信(2) 通过串口助手发送数据 点亮LED 软件部分 #include <reg52.h> #define jingzhen 12000000UL /*使用12.0M晶体 ...
- STM32移植RT-Thread后的串口在调试助手上出现:(mq != RT_NULL) assert failed at rt_mq_recv:2085和串口只发送数据不能接收数据问题
STM32移植RT-Thread后的串口在调试助手上出现:(mq != RT_NULL) assert failed at rt_mq_recv:2085的问题讨论:http://www.rt-thr ...
- 西门子200PLC做自由口通讯,向串口1发送数据
西门子200PLC做自由口通讯,向串口1发送数据 一.PLC自由口协议初始化. 根据智能设备通信时使用的波特率.校验方式.起始位等参数,配置PLC自由口,即将上述参数用MOVB指令写入SMB30(PO ...
最新文章
- Java 内存查看与分析
- $.ajax居然触发popstate事件?
- 如何使用CREO来导入多个带坐标系参数的零件的装配图档
- ASP.NET Core 2.1 使用Docker运行
- ssh_exchange_identification: Connection closed by remote host解决方法
- bzoj 3513: [MUTC2013]idiots FFT
- L1-015. 跟奥巴马一起画方块-PAT团体程序设计天梯赛GPLT
- [Python] * 和 ** 的用法
- 极域电子教室卸载或安装软件后windows7无法启用触摸板、键盘
- 并行化:你的高并发大杀器
- 主动学习,半监督学习,直推式学习
- HTTP 和 HTTPS 有什么区别?
- Python 获取LOL所有英雄的传说
- 一加7pro电脑模式_一加7pro值不值得买?
- 午饭加喝酸奶可减轻电脑辐射
- pRRophetic 通过基因表达水平预测临床化疗反应的R包
- HTML基础知识点总结三
- 科技新品 | 索尼全画幅电影摄影机FX6;数字健康管理专业品牌Zepp智能手表;彩色视频电子纸显示器取得重大突破...
- FT60F011A包含1Krom+EEPROM+Flash方案
- android 保存图片(视频)到相册
热门文章
- 如何将网盘空间映射为本地磁盘,可以看看这些方案
- 基于STM32对于光敏电阻传感器的光控应用
- 亚马逊鲲鹏系统批量注册功能可以让你快速拥有大量亚马逊买家号
- Word行距怎么设置?基础设置,必会的4个方法!
- 2021-12-14 《聪明的投资者》学习笔记-11.普通投资者证券分析的一般方法--债券、普通股、资本化率、成长股、2步评估
- 互联网大脑架构分析之腾讯:至少已布局三大AI实验室
- linux找不到镜像文件,为什么启动u盘找不到镜像文件_u盘启动找不到映像文件的解决方法...
- USB启动U盘 计算机找不到,电脑开机快捷启动键找不到u盘怎么办
- 搞科研写论文必备,14个超实用的网站
- java环境搭建及概述