问题标签 [atmega16]

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 投票
1 回答
664 浏览

avr - 如何在 Proteus 中处理带中断的方向

我想按照教程使用 Atmega16 实现 Snake 游戏。我的问题是我无法处理键盘!我找到了另一个教程(这里)关于一个带中断的按钮但是在 Snake 中我们需要 4 个按钮来指示我们的方向而且我不知道如何在 Proteus 中处理这个?我们有 3 个外部中断和 4 个按钮我不知道该怎么做:(

任何帮助都非常感谢

编辑:

这是我的最后一次尝试,但现在它不检测方向,并且总是进入我的中断中 if 语句的第一个条件,而不检查其他条件

在此处输入图像描述

主要的 :

{

}

在这里我的中断:

}

0 投票
2 回答
587 浏览

c++ - 函数和冲突类型的隐式声明 - AVR

这是我的第一个 AVR 程序。构建时,代码显示错误:“Encode”的冲突类型隐式声明“Encode”

我写了以下代码:

我使用 ATmega16 作为微控制器。我还添加了更多的库,例如用于地板函数的数学等。我尝试将 int 更改为 unsigned int、unsigned char 等,但它仍然无法正常工作并显示相同的错误。请帮我。

0 投票
2 回答
130 浏览

c - 数字显示不正确,无法控制特定引脚的输出

我试图在微控制器ATmega16 到 7 段显示器上显示我的输入。

我在http://www.avr-tutorials.com/projects/atmega16-based-digital-clock上找到了以下代码,但是当我实施它时,它不起作用。我得到一个波动的输出,即我无法控制特定引脚的输出。 我有两个输入 temp1 和 temp2,我想在三个 7 段显示器上显示它们中的每一个。此外,我没有使用引脚 2 和 3,因为它们是中断引脚,我在其他地方使用过它们。使用 Pin0、1、4、5、6、7。

当添加一些延迟时,代码可以正常工作,否则会在随机引脚处生成输出。 即我想从 PIND1 显示的输出显示在所有引脚上,

我的代码:

0 投票
2 回答
230 浏览

c - 255 char. instead of 1023, Unable to set reference voltage

I am using ATmega16 in my project. I want to get the value=1023 when I give 5V as input, and 0 when input = 0. The readADC function reads the particular channel of micro-controller ADC. The frequency of my clock is 4MHz. But on reading the input, I'm getting 255 as the maximum value instead of 1023. Someone who knows about avr programming can help !!!

My code:

0 投票
1 回答
151 浏览

avr - 为什么我总是得到零 PWM 输出?

我想以 10 位分辨率输出两个不同的模拟值,即 dac_value 范围为 0-1023。我正在使用带有外部晶体 4MHz 的 ATmega16。我也尝试在输出端连接 RC 滤波器,但没有任何改变。我经常得到零输出,有人可以帮忙吗?

0 投票
2 回答
242 浏览

avr - AVR 键盘代码问题

我已经编写了用于在 Atmega 328 中读取键盘矩阵的代码。但是我没有得到连接到 Row0 和 Column0 的键的结果。其余所有 3 个键都被正确检测到。下面是代码。我无法弄清楚问题是什么。一定有一个小问题。键盘工作正常,我单独测试过。

0 投票
1 回答
64 浏览

c - ATmega16 编程寄存器不匹配

我正在对ATmega16进行编程,我在设备管理器( atmel studio 6.2 )中选择了该控制器,但寄存器与 ATmega16 数据表中的寄存器不匹配。我正在使用 ICE 3,并尝试使用模拟器,但结果相同。寄存器UCSRC与其他一些控制器不同,并且无法写入其中,即使我设置MSBone.

0 投票
1 回答
216 浏览

usb - LUFA USB 连接超时

LUFA 框架和 AVR 微控制器的专业人士?

我有一个函数可以构建一个表(存储在堆内存中),在我的 USB 连接上接收到 256 个元素,并且程序需要很长时间才能生成我的 USB 连接中断的表(拔下设备时我会听到 Windows 声音)。我在 while 循环内的 HID_Device_USBTask() 和 USB_USBTask() 函数之后调用此函数,但正如您可以想象的那样,它并没有很好地工作。

当我调用该函数来计算 256 个数据元素时,这种情况会变得更糟。

这就是我所做的:我收到一个 8 字节的数据块,并将每个块附加到我的大屁股表中!我的代码适用于 16 字节左右的短表,但如果使用 256 字节左右的大表,它就会下地狱!

似乎它运行的 USB 连接超时或什么的。

有我的伪代码:

在 CALLBACK_HID_Device_ProcessHIDReport() 上:

有什么解决办法吗?

谢谢你们

PS:我使用的是 Atmega16u2。

0 投票
1 回答
262 浏览

arduino - arduino 作为 isp 并使用 avrdude 编译器烧录 atmega16

我正在尝试使用 arduino 作为 ISP 烧录我的 atmega16。到目前为止,代码已完美地上传到我的 arduino。我已将 arduino 作为 ISP 代码上传到我的 arduino,我已经使用 arduino IDE 烧毁了 atmega16 的引导加载程序。当我从 arduino IDE 发送核心工作代码时,它完美无缺。但是 atmega 没有显示响应,即硬件不工作。这就是我的(案例一)问题。案例二:此外,当我尝试使用 avrdude 编译器发送 hex 文件(核心工作代码)时,它说 ser_open() ... 找不到 lpt1。这是avrdude编译器的问题吗?万一在那里,它甚至没有上传代码,更不用说硬件的工作了。请帮忙。

0 投票
1 回答
3582 浏览

avr - 脉冲宽度测量

我想测量脉冲持续时间,但我需要测量 4 个信号,所以我不能使用定时器捕获中断,因为只有 1 个引脚 ICP1 提供该选项(或可以?)。所以我尝试实现类似 arduino pulseIn 的东西,不同之处在于我使用计时器(arduino 有一些其他实现,但非常相似)。

实际的问题是 pulseIn 不返回任何内容,而是继续在无限循环中工作。

使用 ATmega16。现在只在 PB2 上测试。

更新

那是我的proteus方案。信号来自发生器。频率为 1kHz,宽度为 50%。幅度为 5 伏。 变形虫方案

更新

对不起,那是一个愚蠢的错误。它工作正常。调试我没有按预期工作的东西。