可不可以把端口当做函数参数?

nwpulei 2012-11-10 01:59:40
多个端口要完成同样的功能,
可不可以把端口当做函数参数?
比如把下面的两个函数合并为一个函数

void offStep_0()
{
char j = 0;
unsigned char state= 0x0; // 全亮
unsigned char t = 0x01; //
for(j = 0; j < 8; ++j)
{
state = state | t;
P0 = state;
delay(TimeDelay);
t <<= 1;
}
}
void offStep_1()
{
char j = 0;
unsigned char state= 0x0; // 全亮
unsigned char t = 0x01; //
for(j = 0; j < 8; ++j)
{
state = state | t;
P1 = state;
delay(TimeDelay);
t <<= 1;
}
}
...全文
341 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
有点清眸 2012-11-15
  • 打赏
  • 举报
回复
这个有何不可呢? 将相同的状态值赋给不同的地址。 你完全可以传一个地址参数啊。 比如P0,P1.
wyx100 2012-11-14
  • 打赏
  • 举报
回复
typedef一个枚举类型,然后函数里switch
挣扎中前行 2012-11-14
  • 打赏
  • 举报
回复
引用 9 楼 h_w_m 的回复:
C/C++ code?12345678910111213141516void offStep(char n) { char j = 0; unsigned char state= 0x0; // 全亮 unsigned char t = 0x01; // for(j = 0; j < 8; ++j) { stat……
这就行了
Binzo 2012-11-13
  • 打赏
  • 举报
回复
当然要写P0 = xx; P0 是IO口的寄存器地址,port(所声明的变量)只是一个有值的变量而已。 不清楚你单片机学到什么程度了,感觉是你硬件、程序没区分太清楚。 这个问题可以先搁置,能实现功能就行了。 等你用多了之后,再回头想这个问题吧。
Binzo 2012-11-12
  • 打赏
  • 举报
回复
char port; port = P0; //function(&port); port = P1; //function(&port);
nwpulei 2012-11-12
  • 打赏
  • 举报
回复
引用 9 楼 h_w_m 的回复:
C/C++ code12345678910111213141516void offStep(char n) { char j = 0; unsigned char state= 0x0; // 全亮 unsigned char t = 0x01; // for(j = 0; j < 8; ++j) { state……
这个和switch case一样
nwpulei 2012-11-12
  • 打赏
  • 举报
回复
引用 10 楼 Binzo 的回复:
char port; port = P0; //function(&port); port = P1; //function(&port);
你这个方法不行吧 举个例子 int P0 = 0; char port = P0; port = 1; 此时 P0还是0
h_w_m 2012-11-11
  • 打赏
  • 举报
回复
void offStep(char n)
 {
     char j = 0;
     unsigned char state= 0x0; // 全亮
     unsigned char  t = 0x01;  //
     for(j = 0; j < 8; ++j)
     {
         state = state | t;
         if(n==0)
           P0 = state;
         else
           P1 = state;
         delay(TimeDelay);
         t <<= 1;
     }
 }
每天回帖即可获得10分可用分
nwpulei 2012-11-11
  • 打赏
  • 举报
回复
引用 7 楼 Binzo 的回复:
P0 = state;P1 = state;这就是同时的。 再不行,你就把两个外设接到一起。
这样描述吧 我先要对端口P0执行offStep_0()的操作。然后对端口P1也执行相同的操作。 我的实现是写了个offStep_1().我觉得有重复的代码,因此想着能不能复用代码。这是我的想法……
Binzo 2012-11-11
  • 打赏
  • 举报
回复
P0 = state;P1 = state;这就是同时的。 再不行,你就把两个外设接到一起。
nwpulei 2012-11-11
  • 打赏
  • 举报
回复
引用 4 楼 Binzo 的回复:
C/C++ code1234567891011121314void offStep_01(){ char j = 0; unsigned char state= 0x0; // 全亮 unsigned char t = 0x01; // for(j = 0; j < 8; ++j) { state = state | t; ……
谢谢,但是这样不能满足需求。不能同时给P0 P1赋值。P0 和P1是单独的。
Binzo 2012-11-10
  • 打赏
  • 举报
回复
P0 , P1 是 寄存器地址。
Binzo 2012-11-10
  • 打赏
  • 举报
回复
void offStep_01()
{
    char j = 0;
    unsigned char state= 0x0; // 全亮
    unsigned char  t = 0x01;  //
    for(j = 0; j < 8; ++j)
    {
        state = state | t;
        P0 = state;
        P1 = state;
        delay(TimeDelay);
        t <<= 1;
    }
}
P0 = state; P1 = state;
aydf1 2012-11-10
  • 打赏
  • 举报
回复
可以,最简单的方法是typedef一个枚举类型,然后函数里switch就行
nwpulei 2012-11-10
  • 打赏
  • 举报
回复
引用 1 楼 wangfan027 的回复:
可以,最简单的方法是typedef一个枚举类型,然后函数里switch就行了
嗯 有理
dceacho 2012-11-10
  • 打赏
  • 举报
回复
可以,最简单的方法是typedef一个枚举类型,然后函数里switch就行了
这个是完整源码 python FastAPI实现 vue 深度学习 大模型 【深度学习毕业设计】基于BERT的电商商品评论情感分析系统(PyTorch+FastAPI+Vue3) 模型微调训练 深度学习毕业设计 python课程设计 完整版 源码+sql脚本+论文 完整版 数据库是mysql 随着电子商务规模持续扩大,商品评论已成为消费者决策与商家改进产品的重要依据。海量评论文本具有口语化、领域词汇密集、正负情感交织等特点,传统基于词典或浅层机器学习的情感分析方法难以充分刻画上下文语义,分类精度受到限制。针对上述问题,本文设计并实现了一套基于 BERT 的电商商品评论情感分析系统,完成从评论采集、模型推理、结果存储到可视化分析的闭环。 系统采用前后端分离架构。后端以 Python 语言和 FastAPI 框架构建 RESTful 接口,使用 SQLAlchemy 访问 MySQL 8 数据库 db_bert_sentiment,核心推理模块基于 PyTorch 与 Transformers 加载中文 BERT 微调模型 BertForSequenceClassification,对评论进行 1 至 5 星五分类,并映射为正面、中性、负面三类情感;当微调模型文件缺失时自动回退到电商情感词典规则引擎,保证系统可用性。前端采用 Vue3、Vite、Element Plus、Pinia 与 ECharts 实现管理端界面,支持单条实时分析、CSV 批量导入、评论维护、统计分析、模型管理、个人中心和操作日志等功能。 在数据库设计方面,系统围绕管理员、评论、分析任务、模型信息、情感关键词和操作日志六类实体建立概念模型,给出独立的实体属性图与实体间关系图,并以表格形式详细列出各表字段名称、类型、长度、是否为空及备注。测试表明,系统能够稳定完成登录鉴权、情感推理、批量任务与多维图表展示,B
内容概要:本文提出了一种基于角蜥蜴优化算法(Harris Hawks Optimization-inspired Lizard Search Algorithm, HLOA)优化BP神经网络的风电功率预测模型,旨在解决传统BP神经网络在风电功率预测中易陷入局部最优、收敛速度慢、预测精度不高等问题。通过HLOA算法对BP网络的初始权重和阈值进行全局优化,提升了模型的泛化能力与训练效率。研究在Matlab平台上完成算法实现,并采用真实风电场数据进行实验验证,结果表明,相较于标准BP及其他优化算法(如GA、PSO)优化的模型,HLOA-BP模型在均方根误差(RMSE)、平均绝对误差(MAE)等关键评价指标上表现更优,具有更强的预测稳定性和准确性。该方法为可再生能源领域的时间序列预测提供了有效的技术路径与实践参考。; 适合人群:具备机器学习、智能优化算法及电力系统基础知识的研究生、科研人员以及从事新能源预测、电力调度等相关工作的工程技术人员。; 使用场景及目标:①提升风电功率预测精度,支撑电网安全稳定运行与能源调度决策;②学习并掌握智能优化算法与神经网络融合建模的方法论;③开展基于Matlab的仿真实验、算法对比与性能评估;④拓展应用于光伏发电、负荷预测等其他非线性时间序列预测任务。; 阅读建议:建议结合提供的Matlab代码深入实践,重点理解HLOA算法的搜索机制及其对BP网络参数的优化过程,通过更换数据集、调整参数配置等方式进行消融实验与对比分析,全面掌握模型构建与调优技巧,进而将其迁移至实际工程项目中应用。

27,522

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧