6410/210按键中断编程
中断编程
1、初始化按键、2、初始化中断控制器、3、中断处理
底板原理图:
去核心板原理图
去找到6410的芯片手册,
引脚配置:touch button.c
#define GPLCON1 (volatile unsigned long *)0x7F008814
void button_init()
{
*(GPLCON1) = (0b0011<<0)|(0b0011<<4)|(0b0011<<8)|(0b0011<<12);
}
中断控制器的初始化:touch interrupt.c(做的工作:使能中断、取消中断的屏蔽位,设置按键应该是下降沿触发)
#define EINT0CON1 (volatile unsigned long *)0x7F008904
#define EINT0MASK (volatile unsigned long *)0x7F008920
#define VIC1INTENABLE(volatile unsigned long *)0x71300010
#define EINT16_19(volatile unsigned long *)0x71300100
#define EINT0PEND(volatile unsigned long *)0x7f8924
void key1_isr()
{
}
void key2_isr()
{}
void key3_isr()
{}
void key4_isr()
{}
void init_irq()
{
//配置下降沿触发,去找到6410手册中的外部中断的控制器,找到这个寄存器EINT0CON1
*(EINT0CON1) = (0b010<<0)|(0b010<<4);
//去掉对应屏蔽掩码写1清零
*(EINT0MASK)=(0b1<<16)|(0b1<<17)|(0b1<<18)|(0b1<<19);
//使能中断,我们使用的是EINT16-19,进入到向量中断控制器
我们的EINT16-19中断隶属于32号中断源,由VIC1中断控制器控制的。
到VIC1控制器中去使能EINT16-19对应位
找到寄存器VICXINTENABLE这个寄存器,去搜VIC1INTENABLE这个寄存器













}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】