问题标签 [avr]
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.
microcontroller - 使用带有 AVR 微控制器的旋转编码器
我无法让旋转编码器与 AVR 微控制器一起正常工作。编码器是机械ALPS 编码器,我使用的是Atmega168。
澄清
我曾尝试使用外部中断来监听引脚,但似乎太慢了。当引脚 A 变为高电平时,中断程序开始,然后检查引脚 B 是否为高电平。这个想法是,如果在引脚 A 变高的那一刻引脚 B 为高,那么它会逆时针旋转。如果引脚 B 为低电平,则它正在顺时针旋转。但似乎 AVR 需要太长时间来检查引脚 B,所以它总是被读取为高。
我还尝试创建一个程序,它只会阻塞直到 Pin B 或 Pin A 发生变化。但是可能是编码器旋转时噪音太大,因为这也不起作用。我最后一次尝试是有一个计时器,它将最后 8 个值存储在缓冲区中,并检查它是否从低到高。这也不起作用。
我尝试过对编码器进行范围界定,从第一个 Pin 更改到另一个 Pin 更改,它似乎使用了 2 到 4 毫秒。
embedded - 学习嵌入式编程的最佳平台?
我正在寻找学习嵌入式编程(主要是 C,但我也希望复习我的 ASM),我想知道最好的平台是什么。我在使用 Atmel AVR 并使用 stk500 对其进行编程方面有一些经验,并且发现这相对容易。我特别喜欢 AVR Studio 和可让您查看寄存器状态的调试器。
但是,如果我要花时间学习,我宁愿学习工业中流行的东西。我在想ARM,除非有人有更好的建议。
我还会寻找一些参考资料,我在 ARM 网站上找到了书籍部分,如果其中一本在技术上比另一本更好,我将不胜感激。
我要寻找的最后一件事是原型/编程板,例如具有一些按钮等的 STK500。
谢谢=]
embedded - 适合初学者的简单串行 AVR 编程器
为 AVR atMega 和 atTiny 制作串行(RS232)编程器的便宜又好方法是什么?网上有好几种电路,但哪一种更好呢?
我希望能够使用一些标准工具从 Linux 和 Windows 对我的控制器进行编程。
embedded - 用于在嵌入式 CPU 和 PC 之间进行通信的协议
我正在构建一个带有自己的 CPU (AVR Mega8) 的小型设备,它应该连接到 PC。假设已经完成了物理连接和字节传递,那么在这些字节之上使用的最佳协议是什么?计算机需要能够在设备上设置某些电压,并回读某些其他电压。
目前,我正在考虑一个完全由主机驱动的同步协议:计算机发送请求,嵌入式 CPU 应答。还有其他想法吗?
embedded - (avr-gcc) 子目录的 Makefile 支持
我正在开发一个 AVR 项目,并且有多个文件夹包含我的代码。
我使用的 makefile 是 Pat Deegan 的“Standardized AVR Makefile Template”。它能够正确编译每个文件夹中的每个 cpp 文件并生成正确的对象 (.o) 文件。
但是,链接器失败,因为它尝试在子文件夹中查找 .o 文件(编译器将它们放在主文件夹中)。这是我得到的错误示例:
avr-gcc: subfolder/module.o: 没有这样的文件或目录 make: ***
[GrandCanyon.out] 错误 1
你能帮我修改它,以便链接器和编译器将文件(.o)放在同一个文件夹中并检查它们吗?
谢谢
你可以在这里得到makefile:http: //electrons.psychogenic.com/articles/Makefile.tpl
c - WinAvr 编程所需的帮助
我正在尝试运行 win avr 的源代码。当我尝试使用 avrdude 发送 makefile 后,它给了我错误。
请任何人都可以帮助我
c++ - winavr中的帮助需要
我正在尝试通过串行端口将 ---.hex 文件发送到我的 siemens C55,但是在执行此操作时出现错误
“make.exe”程序 avrdude -p atmega8 -P com2 -c stk200 -U flash:w:gsm_remote.hex avrdude: 端口名称“com2”既不是 lpt1/2/3 也不是有效数字 avrdude: 无法打开设备“ com2"
avrdude: 未能打开并口“com2”
make.exe: *** [程序] 错误 1
请指导我该怎么做源代码也可以在 http://www.4shared.com/file/88235332/4b2370f8/080324-11.html获得
c++ - 错误:从 'const prog_uchar*' 转换为 'byte' 会丢失精度?
错误在这一行:
dataArray是:字节 dataArray[NUMBER_LED_MATRIX][NUMBER_ROW_PER_MATRIX];
bufferPattern是: const patternp * bufferPattern;
patternp是以下类型的 typedef: typedef prog_uchar patternp[NUM_ROWS];
我可以在参考中看到 prog_uchar 是 1 个字节(0 到 255)。所以我不明白失去精度的错误?任何想法?
c - 指针内存错误
问题
使用返回 Flash 中所需模式的地址的函数时,我无法从 Flash 存储器中获取数据(在下面的示例中进行了简化,只有 1 个常量:PATTERN_P)。
解释前的一些代码
类型patternp
定义为
全局 PATTERN_P 变量是一个 patternp 类型的数组,定义为
获取模式():
主要的():
说明
如您所见,代码获取了模式(在本例中,它每次都会返回 PATTERN_P...而不是我使用 pgm_read_byte 从闪存中获取数据。这使用 AVR pgmspace(下面的链接)。它需要一个地址并返回数据。上面的代码在我使用模板的直接访问时有效:&PATTERN_P[iRow],但在我使用 bufferPattern[iRow] 或 &bufferPattern[iRow] 时不起作用。知道吗?
参考:pgm_read_byte 在pgmspace中定义
unit-testing - 如何对 Arduino 代码进行单元测试?
我希望能够对我的 Arduino 代码进行单元测试。理想情况下,我可以运行任何测试,而无需将代码上传到 Arduino。哪些工具或库可以帮助我解决这个问题?
开发中的Arduino 仿真器可能很有用,但似乎还没有准备好使用。
Atmel 的AVR Studio包含一个可能有用的芯片模拟器,但我不知道如何将它与 Arduino IDE 结合使用。