问题标签 [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.

0 投票
2 回答
559 浏览

c - WinAvr 编程所需的帮助

我正在尝试运行 win avr 的源代码。当我尝试使用 avrdude 发送 makefile 后,它给了我错误。

请任何人都可以帮助我

0 投票
2 回答
473 浏览

c++ - winavr中的帮助需要

我正在尝试通过串行端口将 ---.hex 文件发送到我的 siemens C55,但是在执行此操作时出现错误

“make.exe”程序 avrdude -p atmega8 -P com2 -c stk200 -U flash:w:gsm_remote.hex avrdude: 端口名称“com2”既不是 lpt1/2/3 也不是有效数字 avrdude: 无法打开设备“ com2"

avrdude: 未能打开并口“com2”

make.exe: *** [程序] 错误 1

请指导我该怎么做源代码也可以在 http://www.4shared.com/file/88235332/4b2370f8/080324-11.html获得

0 投票
6 回答
14681 浏览

c - 8位枚举,C语言

我必须存储指令,我将通过串行接收的命令。命令的长度为 8 位。

我需要保持命令名称及其值之间的透明度。以避免必须将串行接收的 8 位数字转换为任何类型。

我想在我的代码中使用枚举来处理它们。在这个平台上,只有一个枚举对应一个 16 位整数。

该平台是 AVR ATmega169V 微控制器,在Butterfly 演示板上。它是一个 8 位系统,对 16 位操作的支持有限。它不是一个快速的系统,并且有大约 1KB 的 RAM。它没有文件 I/O 或操作系统之类的奢侈品。

那么关于我应该使用什么类型来存储 8 位命令有什么建议吗?
必须有比#defines 的大量标题更好的东西。

0 投票
1 回答
7741 浏览

notepad++ - 如何使用 WinAvr 编译器在 Notepad++ 中编译和运行 c/c++ 程序

我想用记事本++代替程序员的记事本。如何将 WinAvr 编译器与 notepad++ 一起使用?

0 投票
3 回答
1529 浏览

eclipse - 在 Eclipse 的项目资源管理器中对文件进行分组

我是 Eclipse 的新手,我打算将它用于使用 WinAVR 和 gcc 进行 AVR 开发。我正在寻找的功能是项目中不同文件的分组,例如所有标题一起,所有源文件一起以及从构建中排除的所有文件等等。

我尝试了 Atmel 的 AVR Studio,它具有此分组功能,但缺少 Eclipse 支持的其他几个功能。任何帮助配置 Eclipse 项目资源管理器以这种方式显示项目文件将不胜感激,并有助于我决定要使用的 IDE。

注意:我知道我可以为每个组手动添加不同的文件夹并移动文件,但这会移动物理文件,并破坏代码和其他编译器/IDE 中的相对路径。我正在寻找文件的逻辑分组。

0 投票
7 回答
2863 浏览

c - 在 C 中分配 1 毫秒或 2 毫秒的延迟?

我正在使用代码来配置一个简单的机器人。我正在使用WinAVR,其中使用的代码类似于 C,但没有stdio.h库等,因此应手动输入简单内容的代码(例如,将十进制数转换为十六进制数是涉及ASCII字符的多步骤过程操纵)。

使用的代码示例是(只是为了向您展示我在说什么:))

在某些情况下,我必须使用 WinAVR 并且不能使用外部库(例如stdio.h)。无论如何,我想通过伺服电机施加脉冲宽度为 1 ms 或 2 ms 的信号。我知道要设置什么端口等等;我需要做的就是在清除它之前应用延迟以保持该端口设置。

现在我知道如何设置延迟,我们应该创建空的 for 循环,例如:

对于 1 ms 循环,我应该为“值”输入什么值?

0 投票
3 回答
3513 浏览

c - 在 8 位 PIN 中设置一位而不更改其他位

以下代码使用 winAVR。

我在这里得到了一个 8 位 PIN,我需要将它与 00000010 或 0x02 进行 OR 以设置第 7 位。

现在我要做的是:

  • 设置端口 B 位 7
  • 等待 1ms
  • 清除端口 B 位 7
  • 等待 19 毫秒

但是,我不应该更改这些步骤中的其他位。

所以我必须要 :

  • 读取端口 B
  • 需要设置位
  • 将修改后的值写回端口
  • 清除位
  • 写回端口 B

所以我的测试代码是:

但我认为在这个过程中其他位将被改变,我的问题是,我应该如何在不改变其他位的情况下操作 8 位端口的一位?

非常感谢 !!

0 投票
2 回答
273 浏览

c - 如何在 WINAVR 中合并两个接收到的输入并将其读取为一个整数?

我希望用户使用 c=ReceiveByte() 命令输入 2 位数字。例如,我希望用户执行以下操作:

我的草稿代码是:

这是正确的吗 ?还是我错误地存储了 2 位数字?

非常感谢你的帮助 !

0 投票
3 回答
1629 浏览

c - C中带有#define的指针

功能:

函数调用:

bit_field 定义为这样的结构:

我不知道 &port 是在哪里定义的。

有人可以解释一下这个函数是如何读取的以及它是如何工作的吗?我对指针不是很好,尤其是这个例子很容易混淆前面和结尾的“*”以及端口的“&”。

谢谢

0 投票
2 回答
2180 浏览

c - 尝试将变量定义到特定的内存位置

嘿,我正在使用 WinAVR 并用 C 编写 ATMEGA32。
基本上,我想通过以下方式将我的 C 程序链接到 asm:

asm(" ") 命令。

我试图将 C 中的内存位置定义为确切的内存位置,以便我可以在 asm 命令行中访问它们。

我有 5 个变量:

无符号字符 var1、var2、var3、var4、var5;

我知道我可以使用指向内存位置的指针,但我不确定如何做到这一点。
任何帮助,将不胜感激。
谢谢,
奥利弗。