问题标签 [atmega32]
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 - Atmeg328P 多个输入的比较
您好,目前需要帮助,我是ATMEGA328P汇编程序的新手,如果有人可以给我一点帮助或提示,那么这项任务会遇到一些问题,感谢所有帮助我的人:D
c - 端口不发送输出
我不明白为什么,尽管调用了该函数并且尽管适当地设置和清除了这些位,但当按下/未按下开关时,PWM 既不工作也不 LED 闪烁。我正在为这个项目使用Atmega 328 微控制器。这些是使用的以下代码。
主程序
DoorLock_ver_2.c
我为 Atmega328 制作了一个 GPIO api,因为他们坚持让我们这样做,我无法使 API 对所有端口都有效,所以它特定于微控制器的端口 D
gpio.c
我也在使用 proteus 工具进行模拟设置。这是我玩模拟后它达到的唯一状态。 仿真工具的最终状态,即使点击开关也不会改变。点击链接查看图片
我哪里错了?请帮忙。
embedded - AVR 中断去抖动问题
我不知道按下开关时如何消除小振荡的影响。我有一个原始开关和一个 LED,我试图创建一个中断,使 LED 在按下开关时闪烁。我这样做的方式是在输入信号的下降沿触发中断。
c - ATmega32 模拟比较器代码中断不工作
我为我的 ATmega32 编写了一个代码,以使用模拟比较器的中断点亮 LED,但 ISR 不会执行。我正在对 Proteus 进行测试。
我添加了一行代码来在 while 循环之间切换另一个引脚,以查看是否发生了任何中断,但 while 循环内的引脚一直在切换。我在这里错过了什么吗?
c - ATmega32 SPI transmiting as slave device results in SPDR write collision
I'm simulating my code on Proteus and trying to send data between two ATmega32 devices via SPI as master and slave. However I keep getting the warning "SPDR Write Collision. Written data is ignored" for the slave device for each character of the string I'm trying to send.
Am I missing something here? The master device clock frequency is Fosc/16.
microcontroller - I2C 通信接收 NAK 位
我有 SAME51N19 控制器,我使用 sercom 1 从 PIN A16=PAD0 SDA & A17=PAD1 SCL 进行 I2C 通信。
SAME51N19在地址 0b0101001=0x29上传输数据时面临问题。另外,检查示波器也不好。附加示波器图像。我在标准模式下使用 I2C。由于主机生成时钟和从机使用相同,我认为我们不需要将时钟设置为从机或从机控制器。DefaultSharedI2CClockFrequency = 400000; 请帮我解决问题。检查连接 SDA-SDA 和 SCL-SCL
c - 我的程序在 ATmega32(8MHz 64presclar Timer1)的 pinb1 上生成 1kHz 方波是否正确?
代码编译正确,但我无法获得 1kHz 方波。我在 PINB1 处连接了一个 LED 进行检查。我使用 Timer1,CTC 模式和 Prescalar 为 64。请帮助。
c - 在 AVR 定时器编程中定义 ISR 与检查 TIFR 对应位
使用计时器,我想每隔一秒切换一次 LED。我正在使用 ATMega32,时钟频率为 1MHz。我可以使用 8 位计数器达到 0.1 秒,并且对于每 10 个定时器中断,我闪烁 LED。
在前面的代码中,我没有为TIMER0_COMP_vect
中断定义 ISR。
从数据表:
当 Timer/Counter0 和 OCR0(输出比较寄存器 0)中的数据发生比较匹配时,OCF0 位置位(1)。OCF0 在执行相应的中断处理向量时由硬件清零。或者,通过将逻辑 1 写入标志来清除 OCF0。当 SREG 中的 I 位、OCIE0(Timer/Counter0 比较匹配中断使能)和 OCF0 置位(1)时,执行 Timer/Counter0 比较匹配中断。
强调我的。
因此,通过强调的句子,我可以检查 OCF0 位是否为零,如果是,我可以“处理”on-compare-match 事件。
但是,LED 闪烁的频率要高得多(每次闪烁之间甚至不到十分之一秒,但我当然无法测量)。
如果我只是将 ISR 设置为打开TIMER0_COMP_vect
并且什么都不检查,这可以正常工作,但我想知道为什么 OCF0 总是(?)逻辑 0,因此“打开”,即使我在每次func()
调用时都将它设置为高。这种方法有什么问题。
c - atmega32 上基于中断的 LED 计数器
我正在设计一个基于中断的数字计数器,它使用 atmega32 显示在 8 个 LED 上递增的值。我的问题是我的 ISR(中断服务程序)无法点亮 LED,因为我从 INT0 递增下面是我制作的代码,只有 ISR 没有点亮 LED