问题标签 [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 回答
96 浏览

avr - AVR 微控制器中的 USART 数字逻辑是什么?

刚刚阅读了 AVR 微控制器中的 USART 连接,我遇到了这个问题:

AVR 微控制器的 USART(RXC、TXC 和其他内部结构)中使用的数字逻辑是什么?

我在微控制器的数据表中找到了这个问题的答案(它说逻辑是 TTL),但我不知道为什么我们使用其他逻辑转换器(如MAX232)将串行通信协议更改为RS232C。长距离串行通信需要这样吗?

最后,是不是需要再用另外一个MAX232把之前转换的协议再转成TTL?如果是,那么 ATmega16 USART 与虚拟终端连接的以下设置将是正确的。

在此处输入图像描述

0 投票
0 回答
933 浏览

embedded - Uno R3 wouldn't enter DFU mode

I recently bought an uno r3 from sintron. The board features an Atmel Mega16u2 serial interface but when I plug it to the usb port of my laptop, it's not listed as an usb device in the device manager. The L-LED is blinking with ~1Hz (maybe the initial test programm).

So I did some research and came up with this tutorial. Reseting the Uno R3

The tutorial first suggest to put the uno r3 to dfu mode via connecting two given ICSP pins (thus resetting it). Then it should be listed as an unknown usb device in the device manager, but there is nothing there. How can I set it into DFU mode?

I don't have a second arduino at my disposal but a stm32 cortex m4 board. My last chance would be to flash the arduino via ISP. Any suggestions on that?

In advance I tried to install the arduino drivers manually but it gives me a code 10 exception. No success with any of the suggested solutions from the internet.

I would be glad if somebody could help.

0 投票
0 回答
193 浏览

atmelstudio - Atmel Studio 由于代码优化而面临一些问题

我正在使用 atmel studio 7。我有一个关键检测逻辑,当优化关闭(-O0)时有效,但在打开时无效。我正在使用 ISR 检测密钥,有四个键以矩阵方式连接到 PORTB 0..3,如下图所示

PB2 和 PB3 始终设置为输入上拉。我在 Input-Tristate 和 Output-Low 之间切换 PB0 和 PB1(仅使用 DDRB0 和 DDRB1 位)。以下是关键检测逻辑(在 ISR 内部):

选择了“优化大小(-Os)”。当我按任意键时删除“tmp”的第 5 行值会发生变化。否则 tmp 总是读为零。我需要第 5 行用于去抖动逻辑。

那么,我在这里缺少什么?

0 投票
1 回答
149 浏览

arduino-uno - Arduino 中 2 个时钟周期的功耗

我想知道Arduino(ATMega328P)微控制器中的乘法运算消耗了多少电流。根据 ATMega328p 数据表,乘法运算需要 2 个周期。我现在必须将其转换为电流。

请告诉我如何计算它。附件是 ATMega328p 频率与电流图的数据表。

在此处输入图像描述

0 投票
0 回答
186 浏览

timer - 在经过一段时间后计算 avr 中的脉冲数并显示它

我想使用 16 位定时器计算在 atmega32 中延迟 'n' 秒之间发生的脉冲数并存储和显示它。`

上面的代码对脉冲计数是否正确?

0 投票
1 回答
778 浏览

embedded - 为什么在 atmega32 中没有提供正确的输出和具有相同波特率的正常模式时将 uart 设置为双速模式?

为了获得正确的输出,我必须将 U2X 位设置为 1,当我将其设置为零并更改 UBRR 寄存器的值时,输出没有意义。我检查了我是否使用了数据表中的正确值,但它在 U2X=0 时没有给出正确的输出。

我的 .h 文件

我的 .c 文件

main.c 文件

这是一个简单的模拟,我在我的 AVR 中添加了 2 个虚拟终端......当我将 U2X 设置为 0 并从数据表中写入值时,当我向其中一个写入“a”或任何字符时,我得到了另一个错误的租船人。

我直接从数据表中获取了 UBBR 的值,您可以尝试不使用公式F_CPU/8/bd-1并将它们直接从表中放入。

你能告诉我U2X对相同波特率的影响吗????或何时将 U2X 设置为 1 或 0??????

在此处输入图像描述

0 投票
2 回答
610 浏览

microcontroller - 仅使用一个计数器产生 20% 占空比的输出

如果我有没有 PWM 模块的微型计算机,如何在引脚 1 上生成占空比 (20%) 的输出,并使用一个计数器在引脚 2 上以占空比 (80) 输出,并且中断不轮询。

0 投票
1 回答
74 浏览

multithreading - Atmega multithreading can't manipulate stack pointer

im trying to do a multithreading library for atmega controller and firstly i try to manipulate the stack pointer and after the return of function "go_to_func" the program goes in function "func". The function "go_to_func" is written in asm1.s file and this is the function where the stack pointer is modify for the program to return at the start address of "func" but my program don't geos on "func" after the return of "go_to_func"(When the program arrive on "func" the PORTD bit 3 is turned on). Can anyone tell my what i have to write on "go_to_func" to make my program works fine. Here is the hole information of my code.

main.c

asm1.h

asm1.s

0 投票
1 回答
461 浏览

avr - 在 LCD 上显示计时器,AVR

如何在 c 中为 avr 编写一个计时器,在 LCD 的每一行中显示下面的图片?(https://i.stack.imgur.com/SK1mE.jpg

0 投票
1 回答
548 浏览

serial-port - 是否可以在不检查 AVR ATMega32 中的 UDRE 标志的情况下将 UDR 写入 USART_RXC 中断处理程序中?

我一直试图理解这段代码,它应该使用中断回显在 AVR 的 USART 接口上接收到的每个字节。

我无法理解这部分

为什么这里不检查 UDRE 标志以查看是否确实可以写入新数据,而不会覆盖以前的数据?由于我们在相应的轮询方法中做同样的事情:

不应该在UDR = ReceivedByte;里面的行之前检查UDRE标志ISR吗?任何见解将不胜感激。