问题标签 [atmel]
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 - AVR 程序必须总是以相对跳转指令开始吗?
我见过的所有示例 AVR 程序都以如下代码开头:
如果我不使用任何中断,我可以在没有rjmp
and 的情况下启动程序$0000
吗?
embedded - AT91SAM7X512 的 SPI 外设在写入 SPI_TDR 时被禁用
我的 AT91SAM7X512 的 SPI 外设在我写入的 X 时间(X 变化)上被禁用SPI_TDR
。结果,处理器挂起检查TDRE
标志的 while 循环SPI_SR
。此 while 循环位于SPI_Write()
属于 ATMEL 提供的软件包/库的函数中。问题是任意发生的 - 有时一切正常,有时重复尝试失败(尝试 = 将相同的二进制文件下载到 MCU 并运行程序)。
配置是(按写作顺序定义):
SPI_MR
:MSTR
= 1PS
= 0PCSDEC
= 0PCS
= 0111DLYBCS
= 0
SPI_CSR[3]
:CPOL
= 0NCPHA
= 1CSAAT
= 0BITS
= 0000SCBR
= 20DLYBS
= 0DLYBCT
= 0
SPI_CR
:SPIEN
= 1
SPIENS
设置配置后,代码通过检查标志来验证 SPI 是否已启用。
我执行字节传输如下:
问题:
- 是什么导致 SPI 外设在写入时被禁用
SPI_TDR
? 我应该取消注释
/li>SPI_Write()
读取SPI_RDR
寄存器的行吗?
意思是,下面代码中的第 4 行:(第 4 行原本标记为注释)上面传输 5 个字节数据的代码有问题吗?
请注意:
- NPCS 行号。3 是 GPIO 线(表示处于 PIO 模式),不受 SPI 控制器控制。我在代码中自己控制这条线,在需要时通过取消/断言 ChipSelect#3 (NPCS3) 引脚。我这样做的原因是在尝试让 SPI 控制器控制该引脚时出现问题。
- 我没有使用 PDC/DMA 控制器,也不想使用它。
我没有重置 SPI 外设两次,因为勘误表告诉我只有在我执行重置时才重置它两次——我不这样做。引用勘误表:
如果执行软件复位(SPI 控制寄存器中的 SWRST),SPI 可能无法正常工作(在片选之前使能时钟。)
问题修复/解决方法
SPI 控制寄存器字段,SWRST(软件复位)需要写入两次才能正确设置。我注意到有时,如果我在写入
SPI_TDR
寄存器(inSPI_Write()
)之前延迟,那么代码可以完美运行并且通信成功。
有用的链接:
一个初始化 SPI 和执行 5 个字节传输的例子非常受欢迎和有用。
ide - ATMega32 微控制器编码使用哪个 IDE
我参与了一个需要设计迷你探测器(火星探测器类型)的项目。我正在使用 ATMega32 微控制器。我还有其他硬件,如直流电机、红外传感器等。我的问题是有没有可以用来对微控制器进行编码的 IDE?它必须是用户友好的,因为我是微控制器编码概念的新手,而且它必须有模拟器。我确实在网上查了它,但是与它相关的术语太多了,最后把我弄糊涂了。我认为一个简单的 IDE 可以编写代码,使用模拟器对其进行测试就足够了。有什么建议么?
compilation - AVR_GCC 编译错误 delay.h
blinky.zip、gcc 部分、Teensy++ v.2 中的说明。Makefile 和 blinky.c 在 zip 中。我在开始时通过定义 F_CPU 修改了 blinky.c,因为没有使用 Makefile,请参见下文。那么为什么会出现错误以及如何为 at90usb1286 芯片编译 C 文件?
embedded - 在 WinCupl 中制作一个简单的 2 位异步计数器
这是我的代码,输出引脚下方的两行创建了一个 1 位纹波计数器,但我不确定如何将第一个触发器的输出转换为第二个触发器的时钟输入。我正在尝试编程的芯片是 Atmel ATF750C 芯片。
c - 微控制器的 GUI 库
我想为连接到 128x64 点图形 LCD ( EA DOGL128-6 ) 和 4 个导航按钮的微控制器 ( Atmel XMEGA ) 创建一个 GUI 驱动的应用程序。
控制显示器本身(例如绘制像素和字符)没有问题,但为了防止我重新发明轮子,我正在谷歌搜索用 c 编写的 GUI-Library/-Toolkit,包括其源代码,将在32 MHz 8 位微控制器,并至少提供以下控制:
- 面板(对元素进行分组)
- 菜单(可滚动)
- 图标
- 标签
- 按钮
- 折线图(可选)
但是我没有发现任何有用的东西。有谁知道(或更好地使用)这样的图书馆(最好是免费的)?
avr - AVR JTAGICE mkII
原装 Atmel jtag 编程器售价 300 美元。
http://www.atmel.com/dyn/products/tools_card_v2.asp?tool_id=3353
http://search.digikey.com/scripts/DkSearch/dksus.dll?site=us&lang=en&mpart=ATJTAGICE2
你推荐我哪个克隆?它们是 100% 的克隆吗?(与 avr studio、相同的 fw 等合作)
谢谢。
linux - 通过软件控制 USB 灯
我有一个小 USB 供电的灯。我希望能够用软件打开和关闭它。我将把它连接到一台 Linux 计算机上。我有一个来自之前项目的Atmel ATtiny2313,但我宁愿通过简单的 hack 来做到这一点,也不愿重新利用我的微控制器。
这可能吗?我怀疑这无法完成,因为计算机不会与没有某种 USB 兼容固件的设备通信?
我发现了这个问题,其中有一条评论建议 OP 使用 LM317 稳压器来改变 USB 输出的电压。我认为这不适用于我,但我想我会提到它。
更新:
看起来我可以把USBtiny放在我的微控制器上,然后我可以把它连接到灯上,然后我可以编写一个应用程序来控制控制器。不过,听起来工作量很大。我宁愿做一个简单的黑客,但我缺乏使用 USB 的经验。
i2c - Atmega64 引脚问题。SCL/SDA 和 TXD/RDX 一样吗?
无论如何,我都不是 Atmega 专业人士。事实上,从未与他们合作过。我正在尝试将使用 i2c 接口的外部 eeprom 添加到使用 Atmega64 控制器的设备中。从数据表中,我看到引脚 25 和 26 标记为 PD0/PD1,是 i2c 的 SCL/SDA。这很好,花花公子。所以然后我去董事会并开始追踪。我看到那些带有一些我还没有仔细研究过的简单电路的摇臂开关,但我认为它与 i2c 兼容。但是后来我突然意识到这个设备有两个这样的摇杆,所以我希望将另一个摇杆追溯到相同的两个引脚(因为 i2c 是一个可以有多个从站的总线)。相反,他们追溯到标记为 PD2/PD3 和 RXD1/TXD1 的两个相邻引脚 27 和 28。好吧,现在这让我很困惑。
我希望我可以在 SCL/SDA 线上并行添加内存,但是我现在认为我发现的任何一个都意味着:
- SCL/SDA 可与 RXD1/RXD2 互换或
- 我对 SCL/SDA 的工作原理感到困惑,它不是总线还是可以用作简单的输入?
可悲的是,我不确定我在问什么。有人可以对此有所了解吗?我是否仍然可以将内存添加到 SCL/SDA 或可能不可以?
谢谢。
史蒂夫