·
教程大全 ·
25629
一.前言
今天,我来教大家如何点亮led,这也是学习开发板最基础的步骤了。
二.原理分析
cc2530芯片跟虽然是51的内核,但是它跟51单片机还是有区别的,51单片机不需要对IO口进行配置,而cc2530芯片却需要对IO口进行配置,才能对它进行赋值,需要配置的寄存器有PXSEL,PXDIR,PXINP,x可以代表任意IO口,如P1SEL。
下面介绍PXSEL的功能:
下面介绍PXDIR的功能:
下面介绍PXINP的功能:
通过配置以上寄存器的,就可以控制IO口德输入输出状态,是否做为普通IO口。
三.程序
#include <ioCC2530.h>
#define uint unsigned int #define uchar unsigned char
#define LED1 P1_0 //定义P1_0口为LED1控制端 #define LED2 P1_1 //定义P1_1口为LED2控制端
#define LED3 P1_4 //定义P1_4口为LED3控制端
/* 函 数 名 : IO_Init 功能描述 : LED_IO初始化函数 输入参数 :
NONE 输出参数 : NONE 返 回 值 : NONE */
void IO_Init(void)
{ P1DIR |= 0xff; //P1端口定义为输出
LED1 = 0; //点亮LED1
LED2 = 0; //点亮LED2
LED3 = 0; //点亮LED3 }
/* 函 数 名 : Delayms 功能描述 : 毫秒延时 输入参数 : xms:延时时间,如 i=xms 即延时i毫秒 输出参数 : none 返 回 值 : none */
void Delayms(uint xms) {
uint i,j;
for(i=xms;i>0;i--)
for(j=587;j>0;j--); }
/* 函 数 名 : main 功能描述 : LED测试(通用IO的输出使用) 输入参数 : NONE 输出参数 : NONE 返 回 值 : NONE */
void main ( void )
{ IO_Init (); //调用初始化程序
Delayms ( 2000 ); //延时2s
while ( 1 ) {
LED1 = ~ LED1;
LED2 = ~ LED2;
LED3 = ~ LED3;
Delayms ( 500 ); //延时0.5s } }
四.总结与分析
主函数中先执行初始化程序,配置IO口相关的寄存器,其他两个寄存器的默认值满足我们的要求,我们只要配置P0DIR即可,是P1口做为输出口,然后通过延时函数,实现灯闪烁的效果。
zigbee学习之路(二)点亮LED的相关教程结束。
Actor和Critic必须双头分离输出:Actor输出logits(离散)或均值/对数标准差(连续),Critic输出标量value;loss计算需在tf.GradientTape内完成,advantage需stop_gradient,环境交互须适配Gym新API并统一数据类型与shape。 用t...
LabelPropagation要求数据具备局部平滑性,特征须标准化,未标记样本标签必须为-1,且需至少两个已标记类别;拟合用transduction_获取全部预测,不提供置信度,对噪声敏感。 LabelPropagation在scikit-learn中的适用前提 LabelPropagation不...
Python3.12中distutils已被彻底移除,必须将fromdistutils.coreimportsetup替换为fromsetuptoolsimportsetup,并升级setuptools≥65.5.0,禁用废弃参数,继承类改为setuptools路径,CI改用pipwheel。 di...
不一定。设layer.trainable=False仅是必要条件,还需确保其不在model.trainable_weights中,且优化器在train_step中未使用;BN层需单独处理统计量更新;索引冻结易出错,推荐按名称或可训练性筛选;冻结后loss不降可能因学习率过小、head初始化不当、数据...
TripletLoss需自定义类继承tf.keras.losses.Loss,输入为拼接的三组embedding(shape=[3×batch_size,embed_dim]),用tf.nn.l2_normalize归一化后按索引切分a/p/n,计算平方欧氏距离并套用max(pos_dist−neg...
CosineDecay仅单次衰减不重启,需用CosineDecayRestarts实现周期性余弦退火;其通过first_decay_steps、t_mul、m_mul控制周期长度与重启起点,自定义调度器可支持预热、epoch对齐等扩展。 为什么直接用CosineDecay会发现学习率不重启 很多人用...
用FastAPI+Uvicorn构建机器学习API必须分离模型加载、并发配置、输入校验和错误兜底:模型需启动时全局加载,Uvicorn须设--workers;输入须Pydantic校验并捕获异常;Swagger示例需手动指定,版本号应显式声明。 直接上结论:用FastAPI+Uvicorn构建机器学...
在pytorch分布式数据并行(ddp)训练中,batchsize按每卡独立设置,总批大小为per-gpubatchsize×gpu数量;梯度自动跨卡平均,因此学习率无需缩放,但需按总步数对齐训练节奏。 在pytorch分布式数据并行(ddp)训练中,batchsize按每卡独立设置,总批大小为pe...