首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ARDUINO UNO-需要解释程序

ARDUINO UNO-需要解释程序
EN

Stack Overflow用户
提问于 2022-10-31 20:56:06
回答 1查看 45关注 0票数 -2

我是阿迪诺的乞丐。我是学生,这是我第一次做作业。

有谁能给我解释一下怎么理解以下密码吗?哪个密码更好?操作人员如何影响执行速度?下面是内容。

“任务是根据所使用的编程技术来测量代码执行的速度。程序代码被设计成在不输入延迟的情况下分别向D10 (PB2)端口暴露高、低状态,从而得到了给定记录方法的最大频率的矩形波形。程序是通过将所有语句放置在void ()中编写的,省略了void循环()。演习的准备工作包括将Arduino Uno板连接到USB端口,启动Arduino IDE环境并打开示波器。用示波器观察D10引脚(PB2)产生的矩形波形,并测量其频率。

第一个程序的代码:

代码语言:javascript
复制
const byte outPin  = 10;    
 void setup() {
pinMode(outPin,OUTPUT);    
 while (1)  
 {
digitalWrite(outPin, HIGH);  
 digitalWrite(outPin, LOW); 
 }

第二个程序的代码:

代码语言:javascript
复制
const byte outPin  = B00000100;        
 void setup() { 
DDRB | = outPin;         
 while (1)              
{
  PORTB = B00000100;        
  PORTB = B11111011;        
}

第三个程序代码:

代码语言:javascript
复制
const byte outPin =10;  
byte state =0;          
 void setup() {
 pinMode(outPin,OUTPUT);    
 while (1)          
{
 digitalWrite(outPin, state);   
 state = !state;    
}

第四个程序的代码:

代码语言:javascript
复制
#define _BV(n) (1<<n)
const byte outPin= B00000100;
 byte state = _BV(2);
void setup()
{
    DDRB|=outPin;
}
while (1){
  PORTB |=state;
  PORTB &=~state;
}

第五个程序的代码:

代码语言:javascript
复制
const byte outPin= B00000100;
void setup()
{
    DDRB|=outPin;

while (1){
  PORTB |=B00000100;
  PORTB &=B11111011;}

}

就像我说的,我是阿迪诺的乞丐。我找不到任何办法来解释我的家庭作业。

EN

回答 1

Stack Overflow用户

发布于 2022-11-02 12:31:23

哪个代码更好?

当然是第一个。原因:

  • 通常是足够快的。
  • 其他的都是硬件专用的,不运行在任何Arduino上,而只是在atmega328P
  • 上运行。

运营商如何影响执行速度?

这是对digitalWrite的调用,而不是像~这样的一些操作符。您应该寻找与digitalWrite类似的与硬件无关的替代品,后者在编译时只完成一次Arduino引脚号和硬件寄存器之间的转换。

顺便说一句:你的问题不在这里讨论的话题:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74269046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档