页次: 1
裸机程序,引脚信号一发生程序就挂了,不知道哪里有问题。
关掉GPIOE中断,看PE_EINT_STATUS对应位状态是正常变化的。
中断程序
void EXTI_PE_IRQHandler(void)
{
if(read32(PIO_REG_BASE + PE_EINT_STATUS) & (1<<3))//PE3 触摸中断事件
{
write32(PIO_REG_BASE + PE_EINT_STATUS, (1<<3));//清引脚中断状态
get_point();
}
if(read32(PIO_REG_BASE + PE_EINT_STATUS) & (1<<7))//PE7 1268中断事件
{
write32(PIO_REG_BASE + PE_EINT_STATUS, (1<<7));//清引脚中断状态
// RadioIrqProcess();
}
f1c100s_intc_clear_pend(F1C100S_IRQ_GPIOE);//清除GPIOE中断标志
}
初始化
f1c100s_intc_set_isr(F1C100S_IRQ_GPIOE, EXTI_PE_IRQHandler);//中断函数
write32(PIO_REG_BASE + PE_EINT_STATUS, (1<<7));//清引脚中断状态
or32(PIO_REG_BASE+PE_CFG0, (6 << 3*4));//PE7 设置为EINTE3输入
or32(PIO_REG_BASE+PE_CFG0, (6 << 7*4));//PE7 设置为EINTE7输入
//or32(PIO_REG_BASE+PE_EINT_CFG0, (1 << 3*4));//电平边沿选择pin0-7 默认上升沿触发
//or32(PIO_REG_BASE+PE_EINT_CFG0, (1 << 7*4));//电平边沿选择pin0-7 默认上升沿触发
or32(PIO_REG_BASE+PE_EINT_STATUS, (1 << 3));//清引脚中断状态
or32(PIO_REG_BASE+PE_EINT_STATUS, (1 << 7));//清引脚中断状态
or32(PIO_REG_BASE+PE_EINT_CTRL, (1 << 3));//PE3中断脚使能
or32(PIO_REG_BASE+PE_EINT_CTRL, (1 << 7));//PE7中断脚使能
//
f1c100s_intc_clear_pend(F1C100S_IRQ_GPIOE);//清除引脚中断状态
//
f1c100s_intc_enable_irq(F1C100S_IRQ_GPIOE);//使能GPIOE中断
那我这个固件测试看看,会不会跳点:
F1C100s_RTX_emWin_LCD480x272_NS2009.zip
用F1C100s硬件IIC的,充分利用中断的方式开发,不用浪费高速CPU死循环检测INT_FLAG标志!也不是用os_delay插在循环中。
https://whycan.cn/files/members/1592/F1C100s_RTX_emWin_LCD480x272_NS2009.mp4
是用的中断加状态机吧?
电阻触摸屏测试程序:
RTX-emWin-480x272-ns2009.zip
TINY200烧这个程序运行点校正没反应说明触摸坏的么?
页次: 1