使用Atmega 128作为实时逻辑单元

时间:2015-11-19 04:08:47

标签: interrupt avr atmel piano

enter image description here目前我正在设计简单的数码钢琴模型。我使用了大量的解码器和And来构建我的项目。在模拟中,这些AND连接并启用外部int0。因此,如果按下任何按钮,则无论其他进程如何,都会触发按钮播放功能。但在PCB和焊接方面,我发现这些AND非常烦人。所以我试图通过更改我的代码来省略这些AND。是否有任何软件中断在任何单个输入达到零时自动触发?或Atmega 128中的FPGA组件?或者我是否必须在主代码的每一行中编写按钮扫描代码(我扫描数据表但没有成功)

74148是8到3编码器

2 个答案:

答案 0 :(得分:0)

好吧,如果你的调整速度很慢'您可以轻松实现二极管并用1n4148二极管(阴极到74148)替换所有AND,并为所有阳极更换一个独特的上拉电阻...当任何输入驱动二极管到GND时,它将拉下avr上的INTERRUPT ...

通过适当的上拉(4.7k),您可以达到10us帧响应时间(可能更多)

答案 1 :(得分:0)

有很多键,你可能想要使用一系列并行移位寄存器(例如每个单元74HC(T)165 ... 8键) - 菊花链相互连接 - 并一次读取它们的值每10 ms左右使用ATMega128 SPI接口

further reading