问题标签 [attiny]
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.
i2c - I2C重复启动
我正在尝试使用带有 I2C 接口的TC74(或 DS1621)温度传感器。到目前为止,我的 I2C ISR 能够将命令和配置字节写入芯片。但是我不知道如何指示 ISR 跳转到状态0x10
(重复启动)以进行读取操作。读取过程如下:
- 由微控制器启动位(在我的情况下为 ATTINY48)
- 发送从机地址+w(状态 0x8),来自从机的 ACK
- 向从机发送命令字节(状态 0x18),来自从机的 ACK
- 此时(状态 0x28) ISR 必须发送重复启动并跳转到状态 0x10
- 然后从从机发送从机地址+R,ACK
- 然后在状态 0x40 数据将从从机读取,NACK 到从机
- 在状态 0x58 数据准备好并复制到适当的变量中,将传输停止位。
我可以在每次调用 TC74read
函数时设置一个标志,并在 ISR 中检查该标志,因此在将数据字节写入 TC74 后,它不会发送停止位,而是发出一个重复的起始位。但是我不确定这是否是正确和标准的方法。通常,在 I2C 外设的许多状态中,必须决定下一个状态。
我应该如何指示每个状态的 ISR 跳转到所需的下一个状态?
c - Arduino Attiny85:模拟写入分辨率
这个问题是这个硬件问题的后续:
https ://electronics.stackexchange.com/questions/266536/digital-optical-volume-control-with-led-and-photoresistor-light-to-seperate-cir
但是这次是关于软件,analogWrite
.
我用一个 Attiny85 来控制一个自制的 vactrol(一个 vactrol 是一个被 Light Dependent Resistor 简称 LDR 包围的 LED)来控制模拟音量。当 LED 处于全亮状态时,音量处于最大级别,而当它关闭时,音量处于最小级别。为了控制 LED 的亮度,我使用analogWrite( PB1, 0..255 );
.
这工作得很好,但是,ON 和 OFF 之间的区别有点苛刻。因此,当您这样做时analogWrite( PB1, 1 );
,LED 会开始以您没有预料到的特定水平发光,因为它只是可能设置的 1/255。
有没有办法改变分辨率,analogWrite
功能的感觉?
arduino - 用 TinyWireM 替换 Wire Library(使 Library ATtiny 兼容)
[我在Arduino Stack Exchange上问过这个问题,我等了一会儿没有得到答案,所以我想我会在这里问它!]
我想将 Pololu 的vl53l0x 飞行时间距离传感器集成到我的项目中。他们创建了一个库来通过 I2C 与 vl53l0x 交互,这在我的 Uno 上运行良好。唯一的问题是 Wire.h 在 ATtiny85 上不起作用。
TinyWireM是我认为兼容的 Wire 替代库。我的问题是:如何用 TinyWireM 替换 Wire?是否像用 TinyWireM 替换所有 Wire 实例一样简单?为了使库 ATtiny85 兼容,我还需要做些什么吗?
我确实尝试将“Wire”重新定义为 TinyWireM,如下所示:
一切都编译并上传到我的 ATtiny85 就好了。然而,传感器似乎只输出了大约 7600mm 的值,而且相当一致。
谢谢!
arduino-uno - 编程 attiny45 芯片和 ir 远程库
我正在使用带有 attiny45 芯片的 IR Remote 库。这些代码在 Arduino 上运行良好,但在上传到 attiny45 芯片时收到错误消息。
上传时,我收到以下错误消息:Arduino: 1.8.1 (Windows 7), Board: "ATtiny25/45/85, ATtiny45, Internal 8 MHz"
这是我正在使用的 Arduino 版本:Arduino:1.8.1(Windows 7),板:“ATtiny25/45/85,ATtiny45,内部 8 MHz”
microcontroller - 是否可以与两个只有 I2C 从接口的设备相互通信?ATtiny841 和 HDC1080 传感器
我是这个电子开发人员世界的新手,现在我正在连接一个微控制器 ATtiny841 ATtiny841 数据表,我想从 HDC1080 温度/湿度传感器HDC1080 数据表接收数据,我正在阅读有关 I2C 协议的文档,我看到我需要一台主设备与从设备通信。
问题是 ATtiny841 在 Datasheet 中说只有 I2C 从接口,而 HDC1080 有相同的条件。我发现库可以在两种硬件中使用 I2C 通信(ATtiny841 线库到 I2C 通信和与 Arduino 一起使用的 HDC1080 库)。
我想知道是否可以在这些组件之间进行通信,以便更深入地了解这个库,如果条件“仅从属”只有软件问题或需要电子设备来完成这项工作。
请原谅我糟糕的英语,我希望能在这个想法上得到帮助,问候。
c++ - 我无法使用 Arduino.h 头文件构建 Atmel Studio 7 项目
我正在为正在使用的 ATtiny841 编写代码
当我点击构建(F7)时,我在构建窗口中有这个:
然后我尝试包含 Arduino 头文件然后我在代码中收到其他问题,说我没有其他头文件中没有的此类文件或目录,所以我问是否有办法包含Arduino头文件附带的所有这些库以及如何操作,因为这让我发疯,我不想手动包含所有文件,这只会让我在代码中遇到其他问题......
我想使用这个库与使用 Arduino 头文件的库进行交互,以便在 ATtiny841 中使用它。
arduino - ATTINY 85 - 第一次复位后睡眠看门狗时间改变
我正在我的 ATTINY 85 上编写一个简单的程序。该程序应该在芯片唤醒时点亮 LED 引脚,并在其休眠时将其关闭。但是,当我将看门狗定时器设置为在 0.5 秒后复位时,它会在第一次复位时这样做,然后在大约 100 毫秒后复位。我使用示波器检查了它,prinstcreen 在此链接下: https ://i.snag.gy/WovBsf.jpg
这是代码:
有人知道如何解决这个问题吗?
编辑:好的,我设法修复它。我唯一需要改变的是在进入睡眠之前启用 WDT 中断,然后在睡眠后禁用它。所以enetSleep 函数看起来像这样:
当然,我删除了
从设置线。
avr - Raspberry PI 通过 SPI 到 AVR attiny26 - 三线模式,输出乱码
我通过 SPI 将 Raspberry PI 3 连接到 AVR Attiny26,后者又连接了一个 LCD。我正在尝试让 SPI 运行,
现在,问题在于,当我将 AVR 设置为两线模式且未在 PB1 上配置上拉(MISO 已注释掉)时:
我将字符串转移并打印在 LCD 上。
但是,当我将 AVR 更改为在三线模式下工作和/或启用 PB1 上拉时,我得到的只是垃圾。接收到的字符与发送的字符都不匹配,也不计数。
树莓是这里的主人,提供所有时钟,那里的设置总是相同的(默认,三线模式),时钟相当慢。
使用 ioctl 的 spidev_test 程序的结果相同,因此似乎与库/Pi 的程序无关。
最让我困惑的是,当我从 PB1 (MISO) 断开电线时,我立即开始接收来自 Pi 的垃圾。好像当 PB1/MISO 浮出水面时,Pi 的 SPI 立即开始计时。
我在这里想念什么?
hex - 修改十六进制代码以产生更大的输出
我正在做这个项目:http ://elm-chan.org/works/sd8p/report.html ,我从一开始就以各种可能的方式失败了。现在已经上传了 .Hex 文件,并且写了保险丝,当我插入 SD 卡时,什么也没发生。什么都没有。在这里直接寻求解决方案可能是不可能的,因为我不知道出了什么问题。因此,我测试了扬声器与 arduino 串行绘图仪的正连接,我发现了一些有趣的结果。输出给出了一些很酷的不规则波模式,类似于我对声音输出的期望。但是没有声音,我怀疑是因为输出尺寸太小了。(60/1023约为0.06伏,200/1023约为0.2伏,500++电平输出较大,所以它不应该发出声音。)
所以现在我想问我是否可以更改 .hex 文件(或 hex 文件本身,但它很大)的保险丝以产生更大的输出。我对 hex 文件甚至 AVR 设备都不太了解,所以任何 hep 都会很有用。
提前致谢。
图表
如果需要任何其他信息,请告诉我。