怎样用单片机电源模块设计pcA模块

年轻人总是要为一些自己认为有意义的事情而废寝忘食,通宵达旦,直至白发方休...
配置PCA的一点总结12单片机
#include "stc12.h"
unsigned int Last_Capture_Data=0;
unsigned int New_Capture_Data=0;
unsigned int g_Period=0;
unsigned int g_Frequency=0;
unsigned char str1[12];
unsigned char str2[12];
bit Capture_over = 0;
sbit KEY_1 = P2^7;
extern void InitLcd1602();
extern void LcdShowStr(unsigned char x, unsigned char y, unsigned char *str);
void Delay50ms();
void PCA_Init (bit module);
void IntToString(unsigned char *str, unsigned int dat);
void main (void)
PCA_Init(0);
InitLcd1602();
P2 = 0xF7;
if(!KEY_1)
Delay50ms();
if(!KEY_1)
while(!KEY_1);
CCAPM0 = 0x11;
if(Capture_over)
Capture_over = 0;
g_Frequency = (long) / (g_Period * 12);
IntToString(str1, g_Period);
IntToString(str2, g_Frequency);
LcdShowStr(1, 0, "length:");
LcdShowStr(8, 0, str1);
LcdShowStr(1, 1, "freque:");
LcdShowStr(8, 1, str2);
void PCA_Init (bit module)
CMOD = 0x80;
CCON = 0x00;
if (module == 0)
CCAPM0 = 0x10;
CCAP0L = 0x00;
CCAP0H = 0x00;
CCAPM1 = 0x11;
CCAP1L = 0x00;
CCAP1H = 0x00;
CL = 0x00;
CH = 0x00;
void IntToString(unsigned char *str, unsigned int dat)
unsigned char buf[12];
unsigned char i = 0;
buf[i++] = dat % 10;
dat /= 10;
}while(dat & 0);
while(i-- & 0)
*str++ = buf[i] + '0';
*str = '\0';
void PCA_Int(void) interrupt 7
if(Last_Capture_Data == 0)
Last_Capture_Data = CCAP0H;
Last_Capture_Data = (Last_Capture_Data && 8) + CCAP0L;
New_Capture_Data = CCAP0H;
New_Capture_Data = (New_Capture_Data && 8) + CCAP0L;
g_Period = New_Capture_Data - Last_Capture_D
CCAPM0 = 0x10;
Last_Capture_Data=0;
CCAP0L = 0x00;
CCAP0H = 0x00;
CL = 0x00;
CH = 0x00;
Capture_over = 1;
void Delay50ms()
unsigned char i, j,
while (--k);
} while (--j);
} while (--i);
配置流程:
CMOD 设置禁止溢出中断
设置CCAPMx设置开启捕获中断,以及上升沿捕获还是下降沿捕获
清零CCnPL、CCnPH以及CH、CL
其实最重要的还得看手册,介绍的真心很详细!!!
一个非常详细的电路图,分分享一下:
很明显,图的意思就是设置好上升沿捕获或者下降沿捕获后,由于CL、CH
一直在走,一旦满足条件就把CL./CH的值分别装入CCAPL以及CCAPH中,如果此时使能PCA中断的话,会触发中断进入中断。
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!在电子工程世界为您找到如下关于“PCA”的新闻
介绍PCA9685 是最新的快速模式 Plus(Fm+)系列中的一员。 Fm+器件可以提供更高的频率(高达 1MHz)和更频繁(densely populated) 的总线操作(高达 4000pF)。OE引脚一定要至低使能,或者直接接地网上Arduino的教程很多,商家给的也是Arduino的驱动文件,那怎么在STM32上用呢?STM32与驱动板的连接驱动板 STM32VCC...
这里使用的处理器是C。红外接收头接处理器引脚,中断方式接收按键数据。&&一 PCA介绍 1.1 PCA    可编程计数器阵列(PCA)提供增强的定时器功能,与标准8051计数器/定时器相比,它需要较少的CPU干预。PCA包含一个专用的16位计数器/定时器和5个16位捕捉/比较模块。每个捕捉/比较模块有其自己的I/O线(CEXn)。当被允许...
大致工作原理:
PCA是一个具有捕获功能的16定时器,高八位TH0,低八位TL0,CCON寄存器控制着定时器的计数与中断请求。
CR=1表示开始计数,CCON最低位加上CMOD的最低位可以控制产生中断。中断的向量是interrupt 7,进和中断时,必须首先将 sbit CCF0&& = CCON^0; //PCA 模块0 中断标志, 由硬件置位...
2路PCA的捕获、高速输出、16bit定时器、PWM模块
&* 文 件 名:PCA.c
&* 芯&&& 片:STC12C5A60S2
&* 晶&&& 振:12MHz
&* 创 建 者:冷月
&* 创建日期:...
& & & & PCA9532是一个I2C接口的设备,可以用于IO的扩展和LED的亮度调节。它内部集成了振荡器,可以输出2路用户可编程的PWM波,周期从6.58ms到1.69S。16路的输出,可以设置成输出高低电平以及PWM波输出。
& & & & 做为从设备,他的8位地址的高四位固定为1100...
stc12& 15单片机的pca模块产生pwm的完整例程,测试成功。完整代码下载:http://www.51hei.com/f/stcpcaPWM.zip
#include &reg51.h&
#include "PCA.h"void PWM(unsigned int num,int cex);void main(){&CMOD=0x02...
P4,32KB FLASHROM,1280 字节RAM,3 个定时器,8 个中断源和4个中断优先级的中断系统。其性能完全满足设计所需。[page]
  2.3 CAN 模块
  CAN 总线的硬件实现选用飞利浦公司的SJA1000和PCA82C250.
  2.3.1 SJA1000 芯片介绍
  SJA1000 是一个独立的 CAN 控制器。它支持PeliCAN 模式...
PCA9633为例,通过几个简单的应用来全面阐述这种LED驱动器的优势所在。
  PCA9633是四路LED驱动器,且每路可驱动最大25mA电流,并根据封装的不同提供了可选的固定I2C地址和带4位或7位硬件可编硬件地址。如下图所示。
  从图1我们可以看到,每一路LED都是由一个单独的8bit/256阶的PWM来控制,且由于PWM足够快,使其理论上可以通过它所驱动...
单片机的内置CAN控制器,其接口电路使用CAN收发器PCA82C250、电源隔离模块和高速光电隔离器6N137,并采用保护电路。PCA82C250是Philips公司生产的CAN收发器,是CAN控制器和物理总线间的接口,用来提高总线驱动和通信抗干扰能力。其差分接收器共模抑制比宽,抗电磁干扰。它与ISO11898标准兼容,速度高达1Mb/s,抗汽车环境下的瞬间干扰。它内部有总线保护电路...
;&&& SJA1000是Philips生产的独立CAN总线控制器,它是早期的PCA82C200的替代产品。它与PCA82C200在管脚、电气特性上完全兼容,不仅有和PCA82C200一样的基本CAN(BasicCAN)工作模式,而且新增加了增强CAN(PeliCAN)工作模式,这种模式支持具有很多新特性的CAN2.0B协议。经过简单连接和正确设置...
PCA资料下载
PCA9548 是NXP 公司生产的I2C 总线扩展器件,通过它可以将1 路I2C 总线扩展为8路。在对内部控制寄存器进行相应配置后,可同时选择1 路或多路下行I2C 总线与上行I2C总线连接。通过外部的硬件复位可使器件恢复到默认状态——断开上下行总线之间的连接,提高系统的可靠性。经过对器件工作电压的选择,可使1.8V、2.5V、3.3V 与5V 总线之间相互通信。每个I2C 接口和中断输入...
使关于主成分分析算法代码...
The PCA9554 and PCA9554A are 16-pin CMOS devices that
provide 8 bits of General Purpose parallel Input/Output (GPIO)
expansion for I C/SMBus applications and were developed to
enhance the...
关键词 PCA9698、寄存器、编程摘要 以 LPC2000 系列的ARM 为例,讲述PCA9698 芯片的应用解决方案...
PCA9545 是NXP 公司生产的I2C 总线扩展器件,通过它可以将1 路I2C 总线扩展为4路。在对内部控制寄存器进行相应配置后,可同时选择1 路或多路下行I2C 总线与上行I2C总线连接。具有4 个中断输入和1 个中断输出引脚,增加了I2C 器件实时处理能力。通过外部的硬件复位可使器件恢复到默认状态——断开上下行总线之间的连接,提高系统的可靠性。经过对器件工作电压的选择,可使1.8V...
PCA9544 是NXP 公司生产的I2C 总线扩展器件,通过它可以将1 路I2C 总线扩展为4路。在对内部控制寄存器进行相应配置后,可选择4 路下行I2C 总线中的任1 路与上行I2C总线连接。具有4 个中断输入和1 个中断输出引脚,增加了I2C 器件实时处理能力。经过对器件工作电压的选择,可使1.8V、2.5V、3.3V 与5V 的总线电压之间相互通信。每个I2C 接口和中断输入输出口均为开...
PCA9544 是NXP 公司生产的I2C 总线扩展器件,通过它可以将1 路I2C 总线扩展为4路。在对内部控制寄存器进行相应配置后,可选择4 路下行I2C 总线中的任1 路与上行I2C总线连接。具有4 个中断输入和1 个中断输出引脚,增加了I2C 器件实时处理能力。经过对器件工作电压的选择,可使1.8V、2.5V、3.3V 与5V 的总线电压之间相互通信。每个I2C 接口和中断输入输出口均为开...
PCA9516 是一款基于BICMOS 工艺的I2C/SMBus 总线中继器。PCA9516 保持I2C 总线系统所有的模式与特性的同时,允许扩展I2C/时钟总线和连接5 条最大容限为400pF 电容的总线。当I2C 总线上有400pF 的电容时,总线长度和器件的数量都会被限制。系统设计者把总线分成五部分,各部分之间的传输只有一个复用器的延时。...
PCA9698 是56 脚的CMOS 器件,能够实现I2C/SMBus 应用中40 位通用GPIO 的扩展。改进的特性包括4000pF 的驱动能力、5V I/O 口、工作电流低于1mA、单独的I/O 口配置、400kHz I2C 总线时钟频率和更小的封装形式。当应用中需要额外的I/O 口来连接ACPI(“高级配置与电源接口“这是英特尔、微软和东芝共同开发的一种电源管理标准)电源开关、传感器、按钮...
PCA9548A 中英文Datasheet资料...
PCA相关帖子
利用ADI公司的差分放大器计算工具(DiffAmpCalc),差分放大器设计再也无需费心去做各种揣测,有助于将设计时间从数小时缩短到几分钟。...
本课程面向各类编程学习者,讲解当下流行的机器学习相关的技术和方法,帮助学习者利用Python语言掌握机器学习算法解决一般问题的基本能力,一窥前沿机器学习算法的奥秘。
本课程介绍Python计算生态中广受欢迎的机器学习算法库scikit-learn,这些算法在工程、信息、管理、经济等学科领域具有极其广...
此课程将广泛介绍机器学习、数据挖掘与统计模式识别的知识。主题包括:(i) 监督学习(参数/非参数算法、支持向量机、内核、神经网络)。(ii) 非监督学习(聚类、降维、推荐系统、深度学习)。(iii) 机器学习的优秀案例(偏差/方差理论;机器学习和人工智能的创新过程)课程将拮取案例研究与应用,学习如何...
你可能感兴趣的标签
热门资源推荐AI芯片之于人工智能的意义,则可以理解为发动机之于汽车……
又是一年六一儿童节,虽然,早就超了过这个节日的年纪,……
漫威电影拍了这么多集不但丝毫不油腻,还越来越受欢迎,……
高度集成是目前MCU发展趋势,为了节省整体PCB空间,降低……
施耐德电气展示了针对电力设备、机器设备、汽车、石油化……
演讲人:曾伟权时间: 10:00:00
演讲人:黄科涛时间: 10:00:00
演讲人:Tracy Ma时间: 10:00:00
预算:¥300000预算:¥50000
江苏省湖北省
用SST 单片机的PCA功能产生PWM 脉冲
[导读]一、程序说明:SST单片机带有5路PCA模块,PCA功能比普通的单片机相比提供更强的计时性,同时更少CPU的干预,用它可以减少软件的开销和改进精度。利用PCA的脉冲宽度调制(PWM)模式可以产生一个8位PWM,它通过比PCA定时器
一、程序说明:本文引用地址:
SST单片机带有5路PCA模块,PCA功能比普通的单片机相比提供更强的计时性,同时更少CPU的干预,用它可以减少软件的开销和改进精度。利用PCA的脉冲宽度调制(PWM)模式可以产生一个8位PWM,它通过比PCA定时器的低位(CL)和比较寄存器的低位(CCAPnL)产生。当CL&CCAPnL时输出为低;当CL&=CCAPnL是输出为高。要进入这个模式,可以对CCAPMn的PWM和ECOM位置位。
在PWM 模式,输出的频率决定于PCA定时器的源。由于只有一对CH 和CL寄存器,所有模块共享PCA定时器和频率。输出的占空比由装在高位CCAPnH的值控制。由于写入CCAPnH寄存器不是同步的,写入高位的值不会马上装入CCAPnL做比较,直到输出的另一个周期(当CL从255到0翻转)。用下面的公式计算任何占空比CCAPnH 值:
CCAPnH=256(1-占空比)
CCAPnH 是8 位整数,占空比是分数。
脉冲宽度调制频率
二、相关寄存器介绍:
PCA定时器/计数器模式寄存器(CMOD)
CIDL 计数器空闲控制,CIDL=0时,PCA在空闲模式下继续工作。CIDL=1时,PCA在空闲模式下关闭。
WDTE 看门狗定时器使能:WDTE=0时,禁止PCA模块4的看门狗功能。WDTE=1时,使能。
CPS1 PCA计数脉宽选择位1
CPS0 PCA计数脉宽选择位0
在哈尔滨工程大学五年,我在学校电子创新实验室呆了四年,这四年里创新实验室给我提供了良好的学习环境和完善的实验设备;在这里与众多电子爱好者的交流中,使我学到了更多的专业知识;在学校老师们的教导下,让我学会了如何做一名合格的大学生。......关键字:
对于搞单片机的特别用8051系列工程师来说,谈到单片机的RTOS,很多时候会问一句:“为什么要用RTOS?单片机就这一点资源,使用RTOS能保证效率吗?”......关键字:
现在想起来,当时的情形还历历在目。当时工作非常艰辛,累得我是满地找牙。记得进厂的第一天,就加班通霄,以后天天晚上加班至12点,早上7点起床。......关键字:
我 要 评 论
热门关键词 上传我的文档
 下载
 收藏
粉丝量:189
该文档贡献者很忙,什么也没留下。
 下载此文档
STC12系列单片机 PCA 功能做定时器例程
下载积分:30
内容提示:STC12系列单片机 PCA 功能做定时器例程
文档格式:PDF|
浏览次数:525|
上传日期: 01:52:58|
文档星级:
全文阅读已结束,如果下载本文需要使用
 30 积分
下载此文档
该用户还上传了这些文档
STC12系列单片机 PCA 功能做定时器例程
关注微信公众号查看: 987|回复: 1
PCA9685模块简单应用单片机源码
/**************************************************************************
& && && && && && && && &PCA9685模块简单应用
& && && && && & 平台:89C52,晶振:11.0592
***************************************************************************/
#include&reg52.h&& && && &&&
#include &intrins.h&&&
#include &stdio.h&
#include &math.h&
typedef&&unsigned char&&& && &&&
typedef&&unsigned int& && && &&&
sbit scl=P3^6;& && && && && && && && &//时钟输入线
sbit sda=P3^7;& && && && && && & //数据输入/输出端
#define PCA9685_adrr 0x80//&&1+A5+A4+A3+A2+A1+A0+w/r
& && && && && && && && &//片选地址,将焊接点置1可改变地址,
& && && && && && && && &// 当IIC总 呱嫌 多片PCA9685或相同地址时才需焊接
#define PCA9685_SUBADR1 0x2
#define PCA9685_SUBADR2 0x3
#define PCA9685_SUBADR3 0x4
#define PCA9685_MODE1 0x0
#define PCA9685_PRESCALE 0xFE
#define LED0_ON_L 0x6
#define LED0_ON_H 0x7
#define LED0_OFF_L 0x8
#define LED0_OFF_H 0x9
#define ALLLED_ON_L 0xFA
#define ALLLED_ON_H 0xFB
#define ALLLED_OFF_L 0xFC
#define ALLLED_OFF_H 0xFD
#define SERVOMIN&&115 // this is the 'minimum' pulse length count (out of 4096)
#define SERVOMAX&&590 // this is the 'maximum' pulse length count (out of 4096)
#define SERVO000&&130 //0度对应4096的脉宽计数值
#define SERVO180&&520 //180度对应4096的脉宽计算值,四个值可根据不同舵机修改
/**********************函数的声明*********************************/
/*---------------------------------------------------------------
& && && && && && &毫秒延时函数
----------------------------------------------------------------*/
void delayms(uint z)
{
&&uint x,y;
&&for(x=z;x&0;x--)
& && &for(y=148;y&0;y--);
}
/*---------------------------------------------------------------
& && && && && && && && && && && && && && && && && && && && && && && && &IIC总线所需的通用函数
----------------------------------------------------------------*/
/*---------------------------------------------------------------
& && && && && &&&微妙级别延时函数 大于4.7us
----------------------------------------------------------------*/
void delayus()
{
& && && & _nop_();& && && & //在intrins.h文件里
& && && && && & _nop_();
& && && && && & _nop_();
& && && && && & _nop_();
& && && && && & _nop_();
}
/*---------------------------------------------------------------
& && && && && &&&IIC总线初始化函数
----------------------------------------------------------------*/
void init()
{
& & sda=1;& && && && && & //sda scl使用前总是被拉高
& & delayus();
& & scl=1;
& & delayus();
}
/*---------------------------------------------------------------
& && && && && &&&IIC总线启动信号函数
----------------------------------------------------------------*/
void start()
{
& & sda=1;
& & delayus();
& & scl=1;& && && && && && && && &//scl拉高时 sda突然来个低电平 就启动了IIC总线
& & delayus();
& & sda=0;
& & delayus();
& & scl=0;
& & delayus();
}
/*---------------------------------------------------------------
& && && && && &&&IIC总线停止信号函数
----------------------------------------------------------------*/
void stop()
{
& & sda=0;
& & delayus();
& & scl=1;& && && && && && && && & //scl拉高时 sda突然来个高电平 就停止了IIC总线
& & delayus();
& & sda=1;& && && && && && &
& & delayus();
}
/*---------------------------------------------------------------
& && && && && &&&IIC总线应答信号函数
----------------------------------------------------------------*/
void ACK()
{
& &
& & scl=1;
& & delayus();
& & while((sda=1)&&(i&255))& && && &
& && && && && & i++;& && && && && && && && && && && && && &
& & scl=0;& && && && && && && && && && && &
& & delayus();
}
/*---------------------------------------------------------------
& && && && && &&&写一个字节,无返回值,需输入一个字节值
----------------------------------------------------------------*/
void write_byte(uchar byte)
{
& & uchar i,
& & temp=
& & for(i=0;i&8;i++)
& & {
& && &&&temp=temp&&1;&&
& && &&&scl=0;& && && && && && &
& && && && && && && && && && &&&delayus();
& && && && && && && && && && &&&sda=CY;& && && && && &&&
& && && && && && && && && && &&&delayus();
& && && && && && && && && && &&&scl=1;& && && &&&
& && && && && && && && && && &&&delayus();
& & }
& & scl=0;& && && && && && &
& & delayus();
& & sda=1;& && && && && &&&
& & delayus();
}
/*---------------------------------------------------------------
& && && && && &&&读一个字节函数,有返回值
----------------------------------------------------------------*/
uchar read_byte()
{
& && && && && & uchar i,j,k;
& && && && && & scl=0;
& && && && && & delayus();
& && && && && & sda=1;
& && && && && & delayus();
& && && && && & for(i=0;i&8;i++)& && &&&
& && && && && & {
& && && && && && && && && && &&&delayus();
& && && && && && && && && && &&&scl=1;
& && && && && & delayus();
& && && && && & if(sda==1)
& && && && && & {
& && && && && && && && && && &&&j=1;
& && && && && & }
& && && && && & else j=0;
& && && && && & k=(k&& 1)|j;&&
& && && && && & scl=0;& && && && &
& && && && && & }
& && && && && & delayus();
& && && && && &
}
/*---------------------------------------------------------------
& && && && && & 有关PCA9685模块的函数
----------------------------------------------------------------*/
/*---------------------------------------------------------------
& && && && && & 向PCA9685里写地址,数据
----------------------------------------------------------------*/
void PCA9685_write(uchar address,uchar date)
{
& && && && && & start();
& && && && && & write_byte(PCA9685_adrr);& && &&&//PCA9685的片选地址
& && && && && & ACK();& && && && && && && && &&&
& && && && && & write_byte(address);&&//写地址控制字节
& && && && && & ACK();
& && && && && & write_byte(date);& && && & //写数据
& && && && && & ACK();
& && && && && & stop();
}
/*---------------------------------------------------------------
& && && && &从PCA9685里的地址值中读数据(有返回值)
----------------------------------------------------------------*/
uchar PCA9685_read(uchar address)
{
& && && && && &
& && && && && & start();
& && && && && & write_byte(PCA9685_adrr); //PCA9685的片选地址
& && && && && & ACK();
& && && && && & write_byte(address);
& && && && && & ACK();
& && && && && & start();
& && && && && & write_byte(PCA9685_adrr|0x01);& && &&&//地址的第八位控制数据流方向,就是写或读
& && && && && & ACK();
& && && && && & date=read_byte();
& && && && && & stop();
& && && && && &
}
/*---------------------------------------------------------------
& && && && && && && && &PCA9685复位
----------------------------------------------------------------*/
void reset(void)
{
& && && && && & PCA9685_write(PCA9685_MODE1,0x0);
}
void begin(void)
{
& && && && && & reset();
}
/*---------------------------------------------------------------
& && && && && && && && && && && && && & PCA9685修改频率函数
----------------------------------------------------------------*/
void setPWMFreq(float freq)
{
& && && && && & uint prescale,oldmode,
& && && && && &
& && && && && & freq *= 0.92;&&// Correct for overshoot in the frequency setting
& && && && && & prescaleval = ;
& && && && && & prescaleval /= 4096;
& && && && && & prescaleval /=
& && && && && & prescaleval -= 1;
& && && && && & prescale = floor(prescaleval + 0.5);
& && && && && & oldmode = PCA9685_read(PCA9685_MODE1);
& && && && && & newmode = (oldmode&0x7F) | 0x10; // sleep
& && && && && & PCA9685_write(PCA9685_MODE1, newmode); // go to sleep
& && && && && & PCA9685_write(PCA9685_PRESCALE, prescale); // set the prescaler
& && && && && & PCA9685_write(PCA9685_MODE1, oldmode);
& && && && && & delayms(2);
& && && && && & PCA9685_write(PCA9685_MODE1, oldmode | 0xa1);
}
/*---------------------------------------------------------------
& && && && && && && && && && &&&PCA9685修改角度函数
num:舵机PWM输出引脚0~15,on:PWM上升计数值0~4096,off:PWM下降计数值0~4096
一个PWM周期分成4096份,由0开始+1计数,计到on时跳变为高电平,继续计数到off时
跳变为低电平,直到计满4096重新开始。所以当on不等于0时可作延时,当on等于0时,
off/4096的值就是PWM的占空比。
----------------------------------------------------------------*/
void setPWM(uint num, uint on, uint off)
{
& && && && && & PCA9685_write(LED0_ON_L+4*num,on);
& && && && && & PCA9685_write(LED0_ON_H+4*num,on&&8);
& && && && && & PCA9685_write(LED0_OFF_L+4*num,off);
& && && && && & PCA9685_write(LED0_OFF_H+4*num,off&&8);
& && &&&}
/*---------------------------------------------------------------
& && && && && && && & 主函数
----------------------------------------------------------------*/
void main()
{
& && && && && & begin();
& && && && && & setPWMFreq(50);&&
& && && && && & //例如要求舵机转到60度,这么算,
& && && && && & //60度对应的脉宽=0.5ms+(60/180)*(2.5ms-0.5ms)=1.1666ms
& && && && && & //利用占空比=1.1666ms/20ms=off/4096,off=239,50hz对应周期20ms
& && && && && & //setPWM(num,0,239);;;;当然也可以利用SERVO000和SERVO180计算
& && && && && & while(1)
& && && && && & {
& && && && && && && && && && &&&setPWM(0, 0, SERVOMIN);//第0路舵机转到最小角度
& && && && && && && && && && &&&setPWM(1, 0, SERVO000);//第1路舵机转到0角度
& && && && && && && && && && && && && && && && && && && && && & setPWM(15, 0, 3000);
& && && && && && && && && && &&&delayms(1500);
//& && && && && && && && && && &&&setPWM(0, 0, SERVOMAX);
//& && && && && && && && && && &&&setPWM(1, 0, SERVO180);
//& && && && && && && && && && &&&delayms(1500);
& && && && && & }& && && && && &
请问这个 prescale = floor(prescaleval + 0.5);是啥意思,没看明白
Powered by

我要回帖

更多关于 蓝牙模块与单片机连接 的文章

 

随机推荐