问题标签 [winavr]
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.
makefile - WINAVR 在包含路径中找不到包含空格的文件
当我为 EXTRAINCDIRS 提供不带空格的路径(在 Makefile 中,遵循 WINAVR 提供的示例)时,编译器能够找到我的头文件,但是当我使用包含空格的路径时(用引号括起来,如注释Makefile 直接),它引发:error: No such file or directory
.
我的意思是,评论说:
知道如何让 WINAVR 正确处理这个问题吗?
我在 Windows XP 上使用程序员记事本 (WINAVR)。这是命令行命令:
c - 嵌入式 C 将字符串传递给函数
我正在尝试将 C 中的字符数组逐字节发送到微控制器的输出。我正在使用以下代码:
然而,这只发送前两个字母“他”——有人知道我做错了什么吗?
avr-gcc - 无法在 avr-gcc 中使用自身更改变量?
我对微控制器的一些 C 代码有疑问。这似乎是语言或编译器问题,但程序编译得很好。然而,当在微控制器上运行时,问题就显现出来了。
(这是针对 Atmel AVR AtTiny26 的。)
我正在从模数转换器读取一个值并将其乘以 10:
这不能正常工作。我认为在计算中尝试从 ADC 读取是问题所在,所以我尝试了:
这也不起作用,导致微观不稳定。(只要模拟值低,它就可以工作,但是一旦达到某个值,就永远不会再次从 ADC 获得值,直到复位。)
这似乎有效:
引入另一个变量可以解决问题,但似乎令人困惑。这是怎么回事?
关于 EE 的相关问题:https ://electronics.stackexchange.com/q/38404/2028
编辑:
这可能与编译优化有关。当我在编译时在命令行上指定 -Os 与 -O2 或 -O3 时,会得到不同的结果。优化能否改变这种变量分配的工作方式?
cryptography - AVR Crypto Lib 中的 AES 函数未编译
我正在尝试在我的 AVR 项目中使用 AVR Crypto Lib (http://avrcryptolib.das-labor.org/trac/wiki/AES) 中的 AES 函数,但是当我复制所有必需的文件时,它给了我以下错误. 我在 Windows 上使用 WinAVR,并且在 AVR Studio 5 上也尝试过使用默认项目但没有成功。
就好像它甚至没有尝试读取确实存在这些函数的 .c 文件。网站上的示例说调用#include“aes.h”,如果您查看该文件,它会调用所有其他.h 文件。
如果我编辑 .h 文件并告诉他们包含自己的 .c 文件 - 例如在 aes_keyschedule.h 中,我告诉它包含“aes_keyschedule.c”这样的作品并使“aes128_init”消息消失但引入更多问题。最终当我到达 asm .S 文件时它不会编译。当然这不是它应该如何工作的,但我不知道其他人是如何编译的。
所以我想我会问 - 有没有其他人经历过这个,或者有没有人有一个非常简单的 AES 示例我可以看一下?也许有比 AVR Crypto Lib 更好的东西?
谢谢你,亚历克斯
file - WinAVR 和本机 Windows 控制台应用程序
我对 C 语言不是很有经验,但我一直很高兴地在一些使用 WinAVR 的业余项目中破解固件。我有视力障碍,所以我更喜欢使用 make 文件和命令行,而不是图形混乱的 IDE。
有时我想在 Windows 控制台提示符下抛出一个算法,用一些 printf 语句来告诉我发生了什么。但我不想安装 GCC 的本机 Windows 变体并弄乱我正在工作的 WinAVR 安装。
最好的方法是什么?
microcontroller - 将 Atmega8 的定时器代码实现到 Atmega16
此代码片段是为 Atmega8 编写的,取自使用 Atmega8 的 clapper 电路。任何人都可以将这个代码片段转换为 Atmega16 并稍加解释。因为我正在尝试为 Atmega16 实现相同的功能并且在计时器部分遇到了一些问题。
avr - memcpy_P 函数 AVR?
void * memcpy_P( void * dest, PGM_VOID_P src, size_t n )
有人可以告诉我上述函数在 avr libc 库中的实现位置吗?
我似乎只能在几个头文件中找到该函数的定义,而不是实际的实现。
我想这样做的原因是因为目前我正在 AVRAtmega128rfa1 上进行性能测试,并且我需要查看该函数的 AVR 汇编代码以及执行需要多长时间。
谢谢。
c++ - AVR-C 错误:在 '<' 标记之前应有 '='、','、';'、'asm' 或 '__attribute__'
我目前正在尝试获取为 Arduino USB Host shield编写的代码库,并将其与 Arduino 核心库分离,以便我可以在非 Arduino 微控制器项目中使用该代码。
通过查看代码,对 Arduino 代码库没有太多硬依赖,但我遇到了一些奇怪的错误,这可能是由于 Arduino 构建系统和LUFA 构建系统之间的差异造成的。具体来说,我在大约 75% 的头文件中收到以下错误,每个文件都有几十次:
有时,错误表明错误中的标记不同,但它仍然是相同的错误。我在各种论坛和 Stack Overflow 上发现了很多类似的问题,但解决方案往往每次都不同。
需要明确的是,这段代码在 Arduino 构建系统中可以 100% 编译,但是当我尝试使用 LUFA 模板 makefile 直接使用 WinAVR 构建时会出现这些错误。通过查看代码,我确定我需要#define
一些值,例如-DARDUINO=102
(或至少一些值 >=100,但我使用的 Arduino IDE 的版本是 1.0.2,所以我认为那是一个很好的使用价值)。
所以我想我正在寻找熟悉 Arduino 构建系统的人来帮助我弄清楚我缺少什么。完整的代码库可以在这里找到,但是为了提供一个简单的例子来演示这个问题,而不包括整个代码库,这里是printhex.h
:
我应该注意我确实已经Arduino.h
复制到我的包含路径,并且如果我包含Arduino.h
到我的主.c
文件中,它编译得很好,所以问题不存在。printhex.h
但是,包括会产生以下结果:
第 26、41 和 56 行是以下 3 个实例:
我难住了。我怎么解决这个问题?
microcontroller - 将 .c 编译为 .hex - cc1.exe:错误:avr25:没有这样的文件或目录
今天我终于设法通过 Arduino Uno 对 attiny2313a 进行了编程。这是一个测试眨眼程序。上传后,我看到 LED 闪烁 8 秒而不是 1 秒,所以我决定更改 Makefile 和 main.c 中的时钟设置并再次烧录芯片。所以,我只在 Makefile 和 main.c 中将 8000000 更改为 1000000 并make flash
在 cmd (windows shell)中运行。下面是输出:
为什么我会收到此错误?为什么我只能编译和烧录一次程序? 我没有删除也没有添加任何新内容。实际上,除了那些时钟设置,我什么都没碰。但即使当我返回到原始设置(8000000)时,我仍然遇到同样的错误。
我的 Makefile
我的 main.c
c - 产生/输出时钟脉冲(C代码)
我使用的是 Ethernut 2.1 B,我需要一个 C 程序,它在定时器 1 输出 B 上输出时钟信号,换句话说,在输出 OCIB 上。时钟信号的频率应为 1.0 kHz。
任何人都知道如何做到这一点?