问题标签 [atmega]

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 回答
2971 浏览

avr - 带有 JTAGICE mkII 克隆的 ubuntu 上的 avrdude - 连接 ATmega1280 (RSP_ILLEGAL_JTAG_ID) 的问题

希望我已经为此苦苦挣扎了足够长的时间来在这里提出问题...

我无法将 ATmega1280 与这样一个更便宜的 JTAGICE mkII 版本连接起来。我正在尝试首先为 JTAG 调试设置保险丝。我已经按照这里(和这里)的描述完成了 udev 配置。

编辑:我可以使用 AVRStudio 通过 Windows 中的 JTAGICE 将我的硬件连接到我的计算机上,所以我已经确定接线没问题。

我得到的只是:

我读过这可以帮助解决 JTAGICE 问题。可悲的是,我不明白它有什么帮助,但也许你这样做:

我的系统正在识别该设备

它也不在任何 USB 集线器后面。我三重检查了所有连接。有什么线索吗?

0 投票
2 回答
1099 浏览

embedded - 检查 Atmega32 是否死机

我知道这可能不是发布此内容的正确位置,但是我如何知道某个芯片是否已死?我朋友有这个 Atmega32,他似乎已经将它连接到 9V 电池一分钟。他不确定,但我认为芯片已损坏,那么,有什么方法可以检查是否是这种情况?

0 投票
1 回答
1758 浏览

avr - AVR ATmega64 使用两个 8 位定时器

我想同时使用 ATmega 64微控制器的 8 位定时器。

我使用以下代码来声明它们的比较中断:

我注意到,如果我输入第一个中断(0x0012),第二个计时器将不起作用......它的中断永远不会产生。为什么会发生这种情况,我该如何解决?

我还注意到一些奇怪的事情。如果我颠倒他们的顺序,我会得到错误:

.cseg 中的错误 3 重叠:addr=0x1e 与 0x1e:0x1f 冲突

0 投票
1 回答
1901 浏览

assembly - What does this do in assembly

My teacher wants us to have a basic understanding of assembly, because later down the road, that might be helpful. I'm fine with that, but my college provides zero documentation on the subject, apart from 4 small examples. I'm trying to figure out what is happening in this one:

I'm am working in AVR studio 5, and looking at the 'processor' tab. I can't seem to find any relation between the values in 'varclist', and the hexadecimal values the registers are showing. How do i look at this?

I would expect the Z register to contain 0x0100 as i would imagine the 'most-significant' bit to be the first one declared, and the least significant the last declared. I'm seeing 0x0070, however. I'm not sure what the shifting does, though.

0 投票
2 回答
327 浏览

c - 内联 if (?:) 在 _delay_us() 中不起作用

当我尝试_delay_us(condition ? value_if_true : value_if_false)在我的 1-Wire 实现中使用时,延迟不起作用,并且我的设备没有得到任何答复,但是当我将其替换为:

当我在液晶显示器上显示内联值时,它显示正确的值。

那么这两种符号有什么区别呢?如果在 _delay_us() 中工作,我如何进行内联?

0 投票
3 回答
11942 浏览

c - 使用 AVR atmega8 在 C 中出现意外的浮动行为

我一直试图弄清楚为什么我无法通过将无符号整数与浮点值相乘来获得合理的值。

执行 65535*0.1 之类的操作按预期工作,但是将浮点数与内存中的 uint 相乘会产生疯狂的值。我有一个读取 ADC 并返回 uin16_t 的函数。使用此值,我将其打印到 4 位 LED 显示屏上,效果很好。
将相同的值乘以 1.0 会返回完全不同的结果(它对我的显示器来说太大了,所以我真的不知道它是什么)。

我的代码在下面,但争用区域在 main() 的底部。任何帮助都会很棒。谢谢

主.c:

生成文件:

编辑: 好的,我已经稍微简化了代码

0 投票
5 回答
1267 浏览

c - 设置断点时薛定谔错误消失

我的代码中有一个奇怪的错误,当我尝试调试它时它消失了。

在我的定时器中断(总是运行系统代码)中,我有这样的事情:

在我的主循环中,我有

当计时器中的条件(我认为)满足时,永远不会调用主循环中的这个条件。条件是外部的(端口引脚、ADC 结果等)。首先我在位置 1 放了一个断点,它永远不会被触发。

为了检查它,我放了断点 nr。2 some_global_flag = 1;,在这种情况下,代码有效:当条件为真时触发两个断点。

更新1:

为了研究是否有一些计时条件负责,if如果没有调试就永远不会进入计时器中,我在计时器中添加了以下内容:

该标志不在代码中的其他任何地方使用。它在 RAM 中,并且在开始时 RAM 被清零。

现在,当所有的断点都被禁用(或者只有 main 中的断点 1 被启用)时,代码不能正常工作,函数不会被执行。但是,如果我只启用 NOP 上的断点 3,代码就可以工作!断点被触发,继续后,函数被执行。(它有可见和可听的输出,所以如果它运行就很明显了)

更新 2:

定时器中断是可中断的,在其开始时通过“SEI”。我删除了那条线,但行为并没有以任何明显的方式改变。

更新 3:

我没有使用任何外部存储器。由于我非常接近闪存中的限制,因此我在编译器中进行了最大尺寸优化。

编译器(CodeVision)可以负责吗,还是我做错了什么?

0 投票
0 回答
1681 浏览

c - 从 AtMega328 迁移到 AtMega644p

我有一个使用 AtMega 328/L 40pin 的机器人,直到最近当我需要更多资源时,我才转向 Atmega 644p。

两者之间的寄存器和位名称不同,老实说,我只是无法让新的正常工作。我确信我已经按照数据表中所述的更改进行了更改,但我觉得我缺乏知识来挡路。

这是确实有效的 328 函数:

这是我试图开始工作的代码:

我以前从未使用过这些,所以我正在尽力而为。

有什么明显的地方我做错了吗?

亲切的问候李

0 投票
1 回答
347 浏览

c++ - 在 C++ 中显示图像

我想制作一个程序,在一个小液晶屏幕上显示图片(最终也有声音的视频),我不想使用带有 sd 卡的 atmega 328 芯片来存储图像。任何可以为我指明正确方向的帮助将不胜感激。

0 投票
3 回答
2248 浏览

c - 微控制器上的 CRC-32 (Atmel)

我目前正在尝试为 ATMEGA1280 上的传入数据流(串行通信)实现 CRC-32,我有点迷失如何在 C 的嵌入式端执行此操作......如果有人能指出我正确的方向和/或无论如何帮助我将不胜感激......