问题标签 [codevisionavr]
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.
assembly - 我需要将函数参数存储到 RAM 吗?
假设函数
CodeVision 产生以下
R26 到 Y 和从 Y 的存储和加载是完全没有必要的,而且是 2+2 个循环。我只是想了解 CodeVision 为什么这样做,因为它通常非常聪明。
c - 为什么 atmega32 只收到字符串的最后 16 个字符?
我使用 atmega32 与 SIM808 通信。当模块发送一个包含超过 16 个字符的字符串时,atmega32 只接收最后 16 个字符。它可以在字符较少的情况下正常工作。我使用 16*2 字母数字 LCD 来显示接收到的数据。我尝试使用 strncpy() 提取部分长字符串。然后我将提取的部分发送到 LCD,但 LCD 什么也没显示。我认为 AVR 有问题,而不是 LCD。我能做些什么?我只是使用 codevision UART 库编写了 c 代码。这是主要代码:
response3[200] 用于接收长字符串。
c - 如何声明存储在 PROGMEM 中的矩阵
我正在尝试编写一个头文件来驱动 LED 矩阵,但我遇到了无法解决的语法错误
我已经在我认为有必要的地方添加了“;”并检查了https://www.nongnu.org/avr-libc/user-manual/pgmspace.html
错误是:错误:max7219.h(15),#included from: p2.c: ';' 预期的
第 15 行是 char characters[96][5] PROGMEM = ...
c++ - Char 数组无法将字符保存为其成员。使用 ATmega8 的密码系统
我正在使用系统,从特定键盘读取一些符号,将其传递给 ATmega8,然后将其逐个传递给显示器(此步骤正常工作),但如果我想显示所有符号数组,我发现第一个位置的动态数组保存空,第二个保存空符号,并且正确保存了后续字符。我没有看到代码中有任何错误,所以我需要帮助。
此代码函数必须返回从键盘读取串行符号的 4 元素 char 数组。
/* 所有测试都表明:
*/
c - 我正在通过 ATmega16p 和 CodeVisionAVR 设计吉他调音器,但我无法让我的代码运行
我正在通过 atmel mega16 处理器和 CodeVisionAVR 为我大学的第二个项目设计吉他调音器。我已将单声道插孔连接到处理器的 PINA.7(ADC 转换器)和 GND。我有 7 个 LED (PORTB.0..6),它们应该根据信号基频的频率通过一系列 if/elseif 来打开。
我正在通过 800 个样本的 DFT(我知道有更快的 FT,但我们的大学告诉我们应该使用 DFT,他们知道原因)来获取信号的基础。在选择的 800 个样本中,它计算频谱。然后用下一个for来计算每个频率的绝对值,取最大的,所以它可以作为吉他调音师的一个很好的参考点。
Momentairly,我在主要功能中包含了一个大频率条件,以查看 LED 是否亮起,但它没有。
我尝试在整个代码中将 LED 从 0 切换到 6,它似乎停止在F = computeDft();
,所以我删除了变量,然后computeDft();
运行,但下一个 LED 没有亮起。函数永远不会被调用吗?我已经在 Visual Studio 中使用生成的余弦函数尝试了该函数,并且效果很好。它总是检测基本面。为什么它在 CVAVR 中不起作用?
我试图实现的结果是来自电话或计算机的信号(可能是一个调整吉他的人的 YouTube 视频)通过插孔发送到 AD 转换器(PINA.7)中的处理器。主函数调用该computeDft;
函数,它将要求将read_adc();
通过电缆发送的电压值添加到 x[k],然后计算它的 Dft。然后,相同的函数选择基波的频率(绝对值最高的频率),然后返回它。在 main 函数内部,一个变量将被分配基频的值,并通过一系列的 if 函数,将其值与标准吉他弦频率 82.6、110 等进行比较......
c - 我在 CodeVisionAVR 中使用 ATmega164 的吉他调音器代码不能处理超过 4 个样本
我正在通过 CodeVisionAVR 设计吉他调音器,并为我的大学项目使用 ATmega164 微芯片。如果我将样本数设置为高于 4,则芯片 LED 将持续闪烁,并且代码不会超过该过程的引脚读取阶段(在每行代码后点亮 LED 进行测试以查看它停止的位置)。
大学强迫我使用 DFT 通过 CVAVR 设计代码。我已经(在对最近一个问题的回答的大力帮助下)编写的代码比原来的代码小了近 18 倍。我不知道如何使它更容易运行,以便它可以容忍超过 4 个样本 ( #define N 4
)
由于 Nyquist-Shannon 采样定理,一个调音器通常应该能够使用至少 800 个样本,并且高 E 吉他弦在 380 Hz 左右(不记得确切)。
c - CodevisionAVR SHT11 仅读取温度或湿度
我尝试个性化 shtxx 库,但此代码存在问题。
当我运行它时,lcd 卡在“Hello”上,但如果我在 while 中评论 readHumi 或 readTemp,程序运行没有问题。
就在两者都没有评论时,程序会卡在第二个上,而哪个是第一个并不重要。
我已经测试了它们之间的延迟,尝试在一个空白中阅读以及我认为应该解决但未解决的每一件事
c - 为什么我在使用 C 语言的 CodeVisionAVR 中得到未定义的符号“sprintf”?
我正在使用 C 在 CodeVision AVR 中编码,我想从 0 计数到 100(计数器),然后将其显示在 Proteus 的 LCD 上。在 CodeVision 中选择“全部构建”时,我收到此错误。我不知道为什么。
未定义的符号'sprintf'
编码:
c - 我正在尝试在 atmega164 上制作一个简单的吉他调音器,但我无法制作用于在 CodeVisionAVR 上读取频率的代码
我正在为我的代码寻找一些指导。
我所需要的只是一个可以从 atmega164 的 PINA1 读取频率的函数,仅此而已,但我不知道如何构建它。非常感谢所有帮助。在这里发布之前,我已经尝试了两个多星期来找到使我的代码工作的答案,但我无法做到。 代码无法从 PINA1 读取频率值
代码现在可以比较一个作为输入频率的值,并将其与 6 个不同节点(e、B、G、D、A、E)的 6 个频率进行比较。程序没有做的是从 PINA1 读取输入频率。