问题标签 [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.
embedded - 如何使用 ATmega16 微控制器从 HC05 蓝牙模块接收字符串
我在接收从 HC05 到 ATmega16 的字符串时遇到问题。我能够接收字符但无法接收字符串。
我想使用 ATmega16 和蓝牙模块(HC05)无线控制直流电机。我正在通过 HC05 将定时器 OCR1A 值从串行监视器应用程序发送到 ATmega16,但没有成功。
预期的结果是当我在串行监视器应用程序中输入数字时,我应该在串行监视器应用程序上返回相同的数字。
在实际结果中,我有时会得到不同的字符,有时会空。
c - 如何在 Atmega324a 微控制器上实现每隔几秒打开和关闭信号 (PWG) 的定时器?
我正在编写一个 Atmega324a 微控制器,我正在尝试实现一个计时器(在本例中为 Timer1),它应该使连接到我的电路板的第二个 LED 闪烁。我还需要知道如何识别 LED 连接到的引脚 我找到了数据表: http ://ww1.microchip.com/downloads/en/DeviceDoc/ATmega164A_PA-324A_PA-644A_PA-1284_P_Data-Sheet-40002070A .pdf 但细节对我来说太技术性了,我不知道从哪里开始寻找,最重要的是,得到结果,这就是代码本身。
另外,ISR 功能有什么作用?
下面是定时器 0 的当前 Init_timer 函数。我可以同时启用两个定时器吗?
c - Avr 问题:在 spi 中,spdr 寄存器是 8 位,但我的号码是 16 位
我在主机和从机中都使用 atmega16。我想将通过键盘输入的 100-999 之间的数字发送给从站。数字是 16 位,但 spdr 寄存器是 8 位,所以我先发送 lsb 然后发送 msb 位。这很好用,我正确发送了我的号码。
但我的问题出在从机端:我在从机端启用了中断间谍,因此从主机接收到的每个 spdr 都作为中断并进入 ISR 功能。但是因为我的数字是16位的,所以我想把每个16位或两个字节作为一个中断。我该怎么办?
embedded - 这是检查是否存储现有密码的正确方法吗?
我正在创建一个带有 2 个 ATMega16 微控制器的应用程序。
第二个微控制器应检查密码是否存储在外部 EEPROM 中,然后将此信息发送给第一个微控制器。因此,如果存储了密码,用户将被要求登录,否则用户应设置新密码并将其发送到第二个微控制器以将其保存在外部 EEPROM 中。
代码没有以正确的方式运行;你能帮我理解会发生什么吗?
注意:所有使用的驱动程序都经过测试,并且都可以正常工作。
第一个微码
第二个微码
microcontroller - 使用 UART 同步两个微控制器之间的串行通信的最佳方法是什么?
假设我们有两个微控制器,UART module
被初始化为它们的发射器和接收器(完全双工通信)。
在超级循环之前,它们中的一个发送某个字节,在超级循环中,有时第一个微和第二个接收,有时第二个发送和第一个接收,依此类推。
那么,如何编写这样的代码呢?并且正在使用void uart_sendByte(uint8 data)
技术。uint8 uart_receiveByte()
pollong
如何控制通信以便在正确的时间接收正确的数据并在正确的时间发送正确的数据?
arduino - Arduinotone() 是如何创建的?
我试图了解音调功能的工作原理。似乎我也可以在非 PWM 通道中使用音调功能。你能解释一下 tome() 函数是如何编写的吗?如果使用了计时器,那么它是如何实现的?
assembly - Avra .db 指令似乎无法正常工作
我正在尝试为 ATmega16 编写一些代码。我一直在 FreeBSD 12.2-RELEASE 下使用 avra(版本 1.4.2)。我的代码段中有以下内容:
我的理解是字符的字节应该是连续的。但是,当我查看生成的目标文件时,我看到以下内容(我正在使用命令 avra main.asm 组装代码):
注意右边的字符不是连续的。我正在查看 avra 正在生成的 .obj 文件。当我尝试运行代码时,它似乎确认我的暂停字符字节没有连续存储,因为我在显示器上看到的大部分都是垃圾,带有一些正确的字符,但间隔太远。我认为我的显示例程没有任何问题(例如,如果我删除循环代码并使用 ldi r16 将字符直接存储在 r16 中,则 LCD 显示代码将正确显示字符,'H'。):
我正在加载 Z:
在我打电话给 WRITE_TO_LCD 之前。我不确定低到 r31 和高到 r30 是否正确,但我也尝试过另一种方法。我还读到内存是使用 2 字节字寻址的,所以我应该使用 2*helloStr。我也试过这样做。也许我刚才提到的这些细节在我在这里显示的代码中是不正确的,但我已经尝试了所有的排列,我认为这不是问题(正如 LCD 上的输出和我可以在十六进制编辑器中看到。)
我还在中断向量之后定义了 helloStr 。如果我将它放在中断向量之前,我似乎在 .obj 文件中看不到它的任何证据,并且当我实际运行它时 LCD 上的输出是不同的。我认为这与中断向量需要成为内存中的第一件事或类似的东西有关。但是我会认为它仍然会出现在代码中,并且中断的处理会被搞砸。
无论如何,我真正感兴趣的事情是在 Flash 中获得一个连续的字符串,这样我就可以遍历它。
如果有人知道我可能做错了什么,我将非常感谢您的意见。
assembly - Atmeg328P 多个输入的比较
您好,目前需要帮助,我是ATMEGA328P汇编程序的新手,如果有人可以给我一点帮助或提示,那么这项任务会遇到一些问题,感谢所有帮助我的人:D
node.js - 无法解码从串口 arduino 发送到 mqtt 服务器 mosquitto 的数据
我使用 ESP8266 通过串行从 atmega328pb 接收数据并将这些数据发送到我的 MQTT 代理(mosquitto)。从服务器端,我使用 NodeJS 接收缓冲区,但无法将这些数据转换为字符串。
如何解决这个问题?谢谢你。