avr相关内容

嵌入式处理器的快速斜边算法?

是否有一种聪明/有效的算法来确定角度的斜边(即 sqrt(a² + b²)),在嵌入式处理器上使用定点数学,无需硬件乘法? 解决方案 除非您以 >1kHz 的频率执行此操作,否则即使在没有硬件 MUL 的 MCU 上进行乘法也并不可怕.更糟糕的是 sqrt.我会尝试修改我的应用程序,使其根本不需要计算. 如果您确实需要标准库,它可能是最好的,但您可以考虑使用牛顿法作为一种可能的替代方 ..
发布时间:2022-01-25 12:19:26 其他开发

如何可视化 AVR 程序的内存 (SRAM) 使用情况?

我在 AVR 微控制器 (ATMega328P) 上运行的 C 程序中遇到了问题.我相信这是由于堆栈/堆冲突,但我希望能够确认这一点. 有什么方法可以可视化堆栈和堆的 SRAM 使用情况? 注意:程序用avr-gcc编译,使用avr-libc. 更新: 我遇到的实际问题是 malloc 实现失败(返回 NULL).所有 mallocing 都发生在启动时,所有 freeing 都 ..
发布时间:2022-01-25 12:16:56 其他开发

在 AVR 中,逻辑右移是否快了 2 的幂?

我想知道在移动 2 的幂时执行逻辑右移是否更快 例如是 myUnsigned >>4 比 更快 myUnsigned >>3 我很欣赏每个人的第一反应是告诉我不要担心这样的小事,它使用正确的算法和集合来减少重要的数量级.我完全同意你的看法,但我真的想尽我所能从嵌入式芯片(ATMega328)中挤出一切——我刚刚得到了一个值得“哇哦!"的性能转变.通过用位移替换除法,所以我向你保证这 ..
发布时间:2021-12-20 16:04:17 C/C++开发

AT+CMGS 返回错误

我使用 SIM900 GSM 模块连接到我的 AVR 微控制器.我用 FT232 测试它以查看传输数据.首先Micro发送AT它会响应OK AT OKAT+CMGF=1 正常AT+CMGS="+9893XXXXXX" 返回 ERROR 并且不显示 ">" 有人能告诉我该怎么做吗? 解决方案 Command AT+CSCS? will answer you what type of sm ..
发布时间:2021-11-30 13:52:32 其他开发

学习嵌入式编程的最佳平台?

我想学习嵌入式编程(主要是用 C 语言,但我也希望复习我的 ASM),我想知道最好的平台是什么.我在使用 Atmel AVR 并使用 stk500 对其进行编程方面有一些经验,发现这相对容易.我特别喜欢 AVR Studio 和可以让您查看寄存器状态的调试器. 但是,如果我要花时间学习,我宁愿学习行业中流行的东西.我在想 ARM,除非有人有更好的建议. 我还会寻找一些参考资料,我在 A ..
发布时间:2021-11-17 22:04:29 其他开发

没有“计数器"的计数在微控制器中是可能的吗?

你好朋友,我是微控制器领域的新手,想知道在不使用计数器的情况下是否无法对事件进行计数,我的意思是通过监视连接到事件生成器的引脚.我问这个问题是因为目前我想计算传感器的频率我已经使用 DSO(数字存储示波器)检查了它的频率,它(DSO)说它的频率是 98khz 但是我们现在都知道 8 位计数器的最大值是 255 那么它是如何可能的......传感器连接到PB0(TCNT0/Atmega16的计数器0 ..
发布时间:2021-11-17 04:08:02 其他开发

使用 Arduino 自定义枚举类型声明

我在 Arduino 中使用自定义枚举类型时遇到了一些问题. 我读过 其他地方 使用头文件对于自定义类型声明是必要的,因为到 Arduino IDE 预处理.所以,我已经这样做了,但我仍然无法使用我的自定义类型.这是我的主要 arduino 文件 (beacon.ino) 中代码的相关部分 #include 状态状态; 在信标.h中: typedef enum {菜单,输出开,val_ ..
发布时间:2021-11-17 04:04:54 其他开发

更高端口 H+ 上的 AVR SBI 或 CBI

我在 avr 汇编中使用 CBI 或 SBI 时遇到问题,当使用端口 H 到 L 时.来自文档 [http://www.atmel.com/webdoc/avrassembler/avrassembler.wb_SBI.html] SBI 仅采用 5 位参数,如果我使用端口 H 或更高,来自 _SFR_IO_ADDR(PORTH) 的地址将超出允许范围.有没有其他选择来实现这一目标?谢谢. ..
发布时间:2021-11-17 03:57:53 其他开发

如何防止需要复制传递给 avr-gcc C++ 构造函数的字符串?

在 ArduinoUnit 单元测试库中,我提供了一种为 TestSuite 命名的机制.库的用户可以编写以下内容: TestSuite 套件(“我的测试套件");//...套件运行();//此处使用套件名称 这是预期的用法 - TestSuite 的名称是字符串文字.然而,为了防止难以发现的错误,我觉得有必要迎合不同的用法,例如: char* name = (char*) malloc(1 ..
发布时间:2021-11-17 03:55:38 C/C++开发

Android 上的蓝牙控制信号(DTR、DSR、RTS、CTS)

我想通过 Android 通过蓝牙 SPP 远程重新编程我的 Arduino.第一步是复位 ATMEGA 微控制器.这是通过切换 DTR 线在 Arduino 上完成的.是否有任何 API 可以从 Android 环境中控制蓝牙 SPP 控制线? 解决方案 一般 SPP 也支持发送或接收控制信号 (DTR, DSR, RTS, CTS) 我不知道任何 API 或库android 知道,但因 ..
发布时间:2021-11-17 03:53:06 移动开发

Arduino (Uno) 以太网客户端连接在多次客户端打印后失败

我使用的是带有以太网扩展板的 Arduino Uno. 发送很多HTTP请求后,client.println(...),客户​​端开始连接失败.失败的时间似乎是随机的,从循环中读出的序列可以在 ~1000 到 ~7000 之间变化. 该错误与以太网传输缓冲区溢出无关(遵循此建议) 这是失败的代码: #include #include //网络常量字节 mac[] = {0x00 ..
发布时间:2021-11-17 03:52:41 其他开发

为什么这个编译器屏障不强制排序?

我在查看 Atmel 网站上的文档时发现了这个示例 在那里他们解释了重新排序的一些问题. 示例代码如下: #define cli() __asm volatile( "cli" ::: "memory" )#define sei() __asm volatile( "sei" ::: "memory" )无符号整数 ivar;void test2( unsigned int val ){v ..
发布时间:2021-11-17 03:47:49 其他开发

AVRDUDE Android Arduino ioctl 错误

我之前的问题,Android 无法使用 AVRDUDE 与 Arduino 通话,已解决.我现在可以将我的 Nexus 7 连接到我的 Arduino Uno.我正在运行的完整命令是: /system/xbin/su(在这里获取root权限)/data/data/jackpal.androidterm/local/bin/avrdude -F -V -c arduino -p ATMEGA328 ..
发布时间:2021-11-17 03:43:21 移动开发

AVR 和 Arduino 之间的区别/关系是什么?

最近对硬件编程很感兴趣,但还没开始. 我做了一些搜索工作,有一个模糊的想法: Arduino 是两种芯片的组合和面包板. AVR是单芯片,需要买一个面包板开始. 那句话是真是假? 解决方案 AVR 只是一个集成电路微芯片,由 Atmel 制造.它看起来像这样: 虽然可以自己使用,但是需要一些硬件经验和一些支持组件. Arduino 是一种运行特殊代码的 AV ..
发布时间:2021-11-17 03:42:50 其他开发

是否有用于微控制器 EEPROM 磨损均衡的通用算法?

我正在开发一个 Arduino 库,它将最大限度地延长 AVR 的 EEPROM 的使用寿命.它需要您要存储的变量数量并完成其余的工作.这是我的尝试,并不适用于所有情况. 背景信息 Atmel 表示,每个存储单元的额定写入/擦除周期为 100,000 次.他们还提供了应用说明,其中描述了如何进行磨损均衡.以下是应用笔记的摘要. 通过在两个内存地址之间交替写入,我们可以将擦除/写入 ..
发布时间:2021-11-17 03:41:54 其他开发

Arduino 引导程序

谁能解释一下 语言 表示取消引用它是“未定义的行为",但在简单的微控制器世界中,它通常具有非常明确的效果. ATmega 引导加载程序 通常,在复位时,AVR 的程序计数器 (PC) 被初始化为 0,因此微控制器开始在地址 0 处执行代码. 但是,如果设置了引导复位熔丝(“BOOTRST"),则程序计数器将被初始化为内存上端块的地址(该地址取决于熔丝的设置方式,有关详细信息,请参 ..
发布时间:2021-11-17 03:41:36 其他开发