标签: arduino

中断是否会中断Arduino上的其他中断?

我有一个Arduino Uno(很棒的小装置!).它有两个中断; 我们称他们为01.我使用attachInterrupt():http://www.arduino.cc/en/Reference/AttachInterrupt将一个处理程序连接到中断0,另一个处理程序用于中断1 .

中断0被触发,它调用它的处理程序,它执行一些数字运算.如果在触发中断1时中断0的处理程序仍在执行,会发生什么?

中断1中断中断0,还是中断1等待,直到中断0的处理程序执行完毕?

请注意,这个问题与Arduino有关.

embedded microcontroller arduino interrupt interrupt-handling

22
推荐指数
2
解决办法
3万
查看次数

AVR和Arduino有什么区别/关系?

我最近对硬件编程很感兴趣,但我还没有开始.

我做了一些搜索工作,并且有一个模糊的想法:

Arduino是芯片和面包板的组合.

AVR是单芯片,需要购买面包板才能上手.

该陈述是真是假?

hardware avr arduino

21
推荐指数
3
解决办法
4万
查看次数

可逆伪随机序列发生器

我想要某种方法来创建一个相当长的随机数序列,我可以向前和向后翻转.就像具有"下一个"和"上一个"按钮的机器一样,它会为您提供随机数字.

像10位分辨率(即0到1023范围内的正整数)就足够了,并且序列> 100k.这是一个简单的游戏类型的应用程序,我不需要加密强度随机性或任何东西,但我希望它感觉相当随机.我有可用的内存有限,所以我不能只生成一大块随机数据并通过它.我需要在"交互时间"中获取数字 - 我可以轻松地花几个小时思考下一个数字,但不是比这更舒服.最终它将在某种微控制器上运行,可能只是一个Arduino.

我可以用简单的线性同余生成器(LCG)来做到这一点.前进很简单,向后退我必须缓存最近的数字并间隔存储一些点,这样我就可以从那里重新创建序列.

但也许有一些伪随机发生器可以让你前进和前进?应该可以连接两个线性反馈移位寄存器(LFSR)以在不同方向上滚动,不是吗?

或者也许我可以使用某种哈希函数来填充索引号?我要先尝试一下.

还有其他想法吗?

random reverse arduino prng

21
推荐指数
3
解决办法
9144
查看次数

如何自动检测Arduino COM端口?

我正在使用带有Firmata库的Arduino与C#应用程序进行通信,我想要消除COM端口配置组件,因为它可以在不同的机器之间进行更改...

是否有可能:

  1. 枚举系统中的COM端口列表?(在我的谷歌搜索中,我看到了一些相当难看的Win32 API代码,希望现在可能有更清洁的版本)
  2. 自动检测哪个COM端口连接到Arduino?

c# arduino

21
推荐指数
3
解决办法
4万
查看次数

如何"重置"Arduino板?

我已经将草图上传到Arduino Uno,其循环是这样的:

void loop(){
    Serial.println("Hello World");
}
Run Code Online (Sandbox Code Playgroud)

所以,现在,我不能再上传任何东西了,因为IDE说"端口已经在使用".

有没有办法在没有其他程序员的情况下"重置"Arduino?

编辑:
没有其他人使用串口,​​一切都很顺利,直到我上传上一个草图.

编辑:
我发现了一些有趣的东西:

serial-port arduino reset

21
推荐指数
3
解决办法
21万
查看次数

Android + Arduino蓝牙数据传输

我可以通过蓝牙将我的Android应用程序连接到我的Arduino.但是,它们之间不能传输数据.以下是我的设置和代码:

HTC Android v2.2,蓝牙伴侣黄金调制解调器,Arduino Mega(ATmega1280)

Android Java代码:

package com.example.BluetoothExample;

import android.app.Activity;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothSocket;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.TextView;
import android.widget.EditText;  
import android.widget.Button;
import android.widget.Toast;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Set;
import java.util.UUID;

public class BluetoothExampleActivity extends Activity {
  TextView myLabel;
  EditText myTextbox;
  BluetoothAdapter mBluetoothAdapter;
  BluetoothSocket mmSocket;
  BluetoothDevice mmDevice;
  OutputStream mmOutputStream;
  InputStream mmInputStream;
  Thread workerThread;
  byte[] readBuffer;
  int readBufferPosition;
  int counter;
  volatile boolean stopWorker;

  @Override
  public void onCreate(Bundle savedInstanceState) { …
Run Code Online (Sandbox Code Playgroud)

android bluetooth arduino

21
推荐指数
2
解决办法
8万
查看次数

将struct转换为byte并返回struct

我目前正在使用Arduino Uno,9DOF和XBee,我正在尝试创建一个结构,可以通过串行,逐字节发送,然后重新构造成结构.

到目前为止,我有以下代码:

struct AMG_ANGLES {
    float yaw;
    float pitch;
    float roll;
};

int main() {
    AMG_ANGLES struct_data;

    struct_data.yaw = 87.96;
    struct_data.pitch = -114.58;
    struct_data.roll = 100.50;

    char* data = new char[sizeof(struct_data)];

    for(unsigned int i = 0; i<sizeof(struct_data); i++){
        // cout << (char*)(&struct_data+i) << endl;
        data[i] = (char*)(&struct_data+i); //Store the bytes of the struct to an array.
    }

    AMG_ANGLES* tmp = (AMG_ANGLES*)data; //Re-make the struct
    cout << tmp.yaw; //Display the yaw to see if it's correct. …
Run Code Online (Sandbox Code Playgroud)

c++ byte struct arduino xbee

21
推荐指数
3
解决办法
5万
查看次数

Eclipse C/C++显示错误但编译?

所以我在eclipse中构建了一些Arduino代码,如你的第二个Arduino项目中所描述的那样,但每次我使用Arduino库时,例如SerialEclipse都会强调我的函数名称,声称它们无法解析.但是,代码实际上是编译的,所以我有点不知道为什么Eclipse认为函数丢失了.如果有人知道如何解决这个问题,将不胜感激.先谢谢.

编辑:我应该更具体,Eclipse强调Arduino库中的METHODS.因此,如果我使用Serial.println("hello");它,它强调println()并声称它无法解决.然后它编译得很好,并且该方法在上传到arduino板时起作用.

编辑2:我发现了我的错误,结果我试图在C文件中使用一些C++函数,而eclipse不喜欢它; 我改名为.cpp,所有的红色都消失了;)谢谢你的帮助!

c c++ eclipse arduino

20
推荐指数
3
解决办法
2万
查看次数

Arduino支持线程吗?

我有几个与arduino有关的任务,但其中一个需要很长时间,所以我想用线程同时运行它们.我有一个Arduino Mega

[更新]最后四年后,我可以在我的arduino mega中安装FreeRTOS.这是一个链接

multithreading arduino

20
推荐指数
3
解决办法
4万
查看次数

防止在串行监视器上重置连接?

有没有办法在Arduino IDE中启动串行监视器时阻止复位?

serial-port arduino arduino-ide

20
推荐指数
1
解决办法
7879
查看次数