问题标签 [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.
embedded - 与嵌入式显示器的 WiFi 通信
我正在尝试在我的大学创建一个嵌入式户外显示巴士到达时间。我希望该设备利用我学校的安全 WiFi 网络来显示根据我运行的服务器脚本确定的到达时间更新。
我希望得到一些关于这个东西的高级操作的建议——显示板通过 WiFi 网络轮询托管数据库会更好还是我应该有一个脚本尝试直接通过 802.11 与板通信? (推还是拉?)
我计划将 Wifly 或 WIZnet 以太网板与无线接入集线器结合使用。主要受到这个项目的启发:http ://www.circuitcellar.com/Wiznet/winners/001166.html 有人会推荐其他的 WIZnet 板吗?我看到了 SPI/UART 选项,并认为这些板可以与 AVR 平台一起使用。
出于好奇——如果您要“冷启动”此设备(即,通过按下显示屏的开启按钮请求巴士到达时间),您可能会预计需要 10-20 秒才能获得分配 IP 并成功连接到数据库,听起来对吗?
c - 使用字符数组作为长整数数组
在我的 AVR 上,我有一个字符数组,它们以 {R,G,B,x,R,G,B,x,...} 的形式保存颜色强度信息(x 是未使用的字节)。有什么简单的方法可以写一个 long int(32 位),char myArray[4*LIGHTS]
这样我就可以轻松地写一个 0x00BBGGRR 数字?
我的类型转换很粗糙,我不知道该怎么写。我猜只是创建一个指向 long int 类型的指针并将其设置为等于 myArray,但是我不知道如何任意告诉它将组 x 设置为 myColor。
编辑:我不确定类型转换是否是正确的术语,因为我认为如果它只是将 32 位数字截断为 8 位?
c - 如何将 C 全局数组的大小放入为使用 GCC 编译的 AVR 架构编写的汇编程序中?
我有一个.c
包含以下内容的文件。
我有一个.S
文件,我想在其中执行以下操作。
for 的第二个参数cpi
必须是立即数,而不是位置。但不幸sizeof()
的是C
运营商。这两个文件都被编译为单独的目标文件,然后链接在一起。
如果我这样做avr-objdump -x file.c
,除其他外,我会得到缓冲区的大小。所以它已经在目标文件中可用。
如何在编译时访问汇编文件中缓冲区的大小?
usb - USB AVR JTAG-ISP 设备驱动程序
我有一个名为 USB AVR JTAG-ISP v. 1.2 的编程设备。
我在哪里可以找到驱动程序和好的 IDE?
c++ - 奇怪的串行通讯错误
好的,所以我有 3 台设备。
- 一个 AVR Butterfly 微控制器,使用 USART 设置
- 一个 Bifferboard,运行 Debian,使用定制的串行程序。
- 一台运行 Br@y's 的台式机。
所以我试图让 Bifferboard 向 AVR 发送串行数据,但 AVR 从来没有收到信号,(我们已经检查了电线)。但是,如果我将 AVR 连接到桌面盒,并使用 Br@y's 发送它就可以接收。
如果我将 Bifferboard 连接到桌面,Br@y 的接收效果会很好。
这是Bifferboard的代码。
我也尝试过使用 Bifferboard 的 minicom - 它可以与桌面 windows 机器对话,但不能与 AVR 对话。
c - 嵌入式系统上的中断繁重代码的单元测试
我正在为AVR芯片编写 C 代码。该代码在串行端口、ADC和定时器上等待的中断服务例程(ISR) 上很繁重。ISR 写入缓冲区,当主循环到达缓冲区时会对其进行检查。
我设计了缓冲区,以便 ISR 可以在主循环读取它们时更新它们。我想验证这是否有效。我有单元测试来验证基本操作,但我不清楚如何测试如果在主循环读取缓冲区时触发中断会发生什么。
我的单元测试非常基础——main()
函数中的一些代码。我在我的 Linux 机器上运行测试。
eclipse - Eclipse、AVR 插件和 Arduino
我正在尝试使用 WinAVR 和 AVR IDE 插件在 Eclipse IDE 中编译 Arduino 代码,但我遇到了一个主要的绊脚石——当我尝试编译代码时,出现以下错误:
/usr/bin/sh: g++: command not found
make: *** [main.o] Error 127
是的,我敢打赌……我使用的是 Windows Vista。我在首选项选项卡中正确设置了 WinAVR avr-g++ 的路径,有谁知道它为什么会这样做?
embedded - AVR 模拟比较器 + 内部上拉?
我希望这是一个与 Atmel AVR 微控制器有关的简单问题。所以我想使用 ATtiny85 的模拟比较器来确定信号是高于还是低于阈值。该信号通常是“浮动的”,并在“活动”时拉向地线(即它是一个活动的低电平 - 集电极开路信号)。如果我通过执行以下操作启用输入引脚(也是比较器输入)上的上拉:
如果我使用模拟比较器并选择 PORTB.1 作为 AIN1,内部上拉电阻会应用于我的输入信号吗?我希望有人有个人经验来验证这种行为。希望这个问题对于堆栈溢出来说不是太“面向硬件”。谢谢!
编辑 针对以下关于“为什么不对其进行数字处理”的一些评论,这是因为我的“信号”是由传感器(即光学红外传感器)生成的。我不能保证它会拉低“足够硬”以在数字上被解释为零,所以我将使用内部 2.56V 参考作为我的开关阈值。我只是想了解“IR 事件”,所以这对我来说似乎是最简单的方法。
此外,通过使用模拟比较器,我可以使用 ISR“异步”检测事件。授予某些引脚可以在数字边缘调用中断,但不想依赖响应降至 V_IL 以下。
assembly - AVR sbi 命令 - 错误:数字必须为正且小于 32
我花了很长时间使用完整的 GCC 工具链设置我的 AVR 开发系统(一切都是最新的当前稳定版本),并且我已经解决了大多数问题,但只有一个。
下面的代码给了我一个我没有得到的错误。AVR 汇编手册指出 sbi 指令可以接受 0-7 作为常量表达式,但我仍然出错。任何人都可以解释一下为什么会这样吗?
有问题的行是 sbi PORTB, 0。
编译/组装:
avr-gcc ledon.S -mmcu=atmega168