问题标签 [avr-gcc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 许多客户端打印后,Arduino(Uno)以太网客户端连接失败
我正在使用带有 Ethernet Shield 的 Arduino Uno。
在发送了许多 HTTP 请求之后,client.println(...),客户端在连接时开始失败。故障时间似乎是随机的,循环中的序列读数可以在 ~1000 到 ~7000 之间变化。
该错误与以太网传输缓冲区溢出无关(遵循此建议)
这是失败的代码:
错误发生在以下段
static - ATmega 328p 在静态函数中表现怪异
我正在尝试使用ATmega 328p(Arduino 以太网)来控制 Wiznet W5100 以太网控制器。我正在使用的库已经过测试并且可以工作,但对我来说它们没有。这是我将问题追踪到的原因:
我正在尝试读取两个寄存器,它们告诉我 W5100 接收了多少字节的数据:
但是即使我没有发送任何数据,这个从 main() 调用的函数也会返回 1024 而不是 0。现在奇怪的部分来了:如果我像这样添加 static 关键字:
然后函数突然返回 0,因为它应该是!我也可以将其更改为:
这一定是编译器惹我生气了。我真的不明白。为了编译我使用标准的 Arduino IDE,命令看起来像这样:
这种行为的原因是什么?
avr - 是否可以在内联汇编代码中强制特定寄存器?
我有以下汇编代码:
这导致以下编译器输出
我怎样才能实现以下目标:
甚至可以告诉编译器使用 r16 而不是 r24:r25?这样我可以将 ldi r25,0x00 线使用的循环计数减少 1。
谢谢杰克
c - AVR C 中的问题结合 ADC 读数以生成 PWM 输出
我正在为 ATMega328P 编写一个程序,该程序将从多个 ADC 通道读取数据,将它们组合成一个信号并通过 PWM 输出该信号。
我已经使用单次转换模式成功地将我的 ADC 轮询回退到每通道 50Hz。我使用 Timer/Counter2 生成 PWM,使用 Timer/Counter1 进行计算,以便为 Timer/Counter2 设置比较值。这是定时器/计数器 1 的 ISR:
我的问题是我没有得到 PWM 输出。如果我将其中一个设置为或sensor_value_0
并将另一个设置为从 ADC 读取,我会得到一个全幅分量波和一个调幅分量波。但是,如果我为硬编码的模拟幅度选择不同的值,我就不那么幸运了(例如)。任何其他值都不会给我 PWM 输出。如果我将两个s 设置为查看同一个 ADC 通道,我会期望两个分量波的幅度调制相同。相反,我没有得到 PWM 输出。对我来说最令人困惑的是,如果我为硬编码幅度选择一个正好是 2 的幂的值,那么一切都很好。sensor_value_1
1024
sensor_value_
1023
sensor_value_
整个二次幂的部分让我觉得这似乎是一个我没有看到的有点棘手的问题。你能看出我肯定错过了什么吗?我会很感激任何提示!
(我已经在这里发布了我的全部资源,以使 SO 上的内容尽可能整洁。)
avr - 在 AVR Studio 5 中构建 AVR Studio 4 项目
我有一个 AT90USB162 Minimus AVR,我想将它集成到一个项目中。我从Minimus USB下载了演示代码。这是一个将 AVR 用作 COM 端口的驱动程序。该项目是为 AVR Studio 4 编写的,不能在 AVR Studio 5 中按原样加载。
如何转换项目以用于 AVR Studio 5?
ada - 使用 AVR-Ada 处理任务
我正在尝试使用 AVR-Ada 实现任务功能,但是当我运行 make 时,我收到以下错误消息:
那么,我该怎么做才能启用任务功能呢?
我的包只有非常简单的测试任务:(我只是想检查任务功能)
real-time - AVR 上的多任务 RTOS
我有一个 AT90USB162 AVR 芯片,我想运行一个多任务 RTOS,所以我正在评估可能的 RTOS 与我的 AVR 芯片一起使用。AVR 支持哪些多任务 RTOS?也许是 QNX?(是否可以在 AVR 微芯片上运行 QNX 内核?)。
提前致谢。
windows - AVR WINAVR 编译器的 CMake 错误
它失败并显示以下输出:
所以,在 Linux 和 Win 7 下一切正常,但在 XP SP2、SP3 下我有这个错误。这意味着我的控制器 AVR 编译器不正确,CMake 无法使用 WINAVR 编译器提供测试程序。第一次运行这个错误也是在win7下,但是第二次运行后就消失了。我在 windows reg 中写了路径。我重写了编译器、sh 和 cmake 的路径。但是错误仍然存在。
macos - Uninstalling OSX-AVR from Mac OS X 10.7.2
Does anyone know how to completely remove OSX-AVR from Mac OS X? I need newer support for avr-gcc, so I am going to install CrossPack for AVR, but I do not want any collisions from having multiple avr-gccs in my system. I have not found any documentation about uninstalling OSX-AVR, so I do not know how to get rid of everything.
Thanks,
c - 跟踪满足 C 中某些要求的数组索引
这种情况经常出现。您遍历一个数组,如果某些元素满足某些要求,您希望稍后跟踪它们的索引。这就是我的意思:
简单的解决方案是创建一个包含 10 个元素的数组,如果说第二个元素大于 10,则可以做 indices[i] = 1; 但我觉得这种方法不是很好。我需要一个大数组来存储它,并且大部分空间都被浪费了。
在我的应用程序中,我试图找出位数组中设置了哪些位。因此,如果设置了位 0 和 10,我需要存储这些数字以供程序以后使用。解决这个问题的最佳方法是什么?
此代码需要在 AVR Mega 上运行,而我正在使用 AVR-GCC,因此需要仅 C 的解决方案。