2019-08-17 05:35发布
Owen 发表于 2017-6-24 18:22 我理解你的意思是在一个I/O口出现上升沿或者下降沿的时候启动DMA开始传输数据。GPIO没有直接的DMA请求信 ...
福尔摩木南 发表于 2017-6-24 19:09 想问你一下你说的外部中断,具体应该怎么处理呢?下面的是在K60上面的程序
Owen 发表于 2017-6-26 08:51 像素中断的上升沿或者下降沿是什么意思
最多设置5个标签!
想问你一下你说的外部中断,具体应该怎么处理呢?下面的是在K60上面的程序
[mw_shl_code=applescript,true]//外部中断服务函数
void PORTC_Interrupt()
{
if(PORTC_ISFR & (1 << 18))//场中断 //PTC18触发中断
{
PORTC_ISFR |= (1 << 18);//写1清中断标志位
HREF_count=0;
VSYN_flag=0;
}
if(PORTC_ISFR & (1 << 19))//行中断 //PTC19触发中断
{
PORTC_ISFR |= (1 << 19);//写1清中断标志位
HREF_count++;
DMA_EN(DMA_CH1);
}
}
//PIT中断服务函数
void Timer0_isr()
{
CLR_PIT0;
PIT_TCTRL0 |= PIT_TCTRL_TEN_MASK; //计时器使能
}
void DMA_CH1_Handler()
{
DMA_IRQ_CLEAN(DMA_CH1); //清除通道传输中断标志位(这样才能再次进入中断)
DMA_DIS(DMA_CH1); //采集完H个数据后进入这个DMA中断,停止DMA传输。行中断中打开DMA传输
if(HREF_count>=240)
{
VSYN_flag=1;
}
}[/mw_shl_code]
想问你一下你说的外部中断,具体应该怎么处理呢?下面的是在K60上面的程序
[mw_shl_code=applescript,true]//外部中断服务函数
void PORTC_Interrupt()
{
if(PORTC_ISFR & (1 << 18))//场中断 //PTC18触发中断
{
PORTC_ISFR |= (1 << 18);//写1清中断标志位
HREF_count=0;
VSYN_flag=0;
}
if(PORTC_ISFR & (1 << 19))//行中断 //PTC19触发中断
{
PORTC_ISFR |= (1 << 19);//写1清中断标志位
HREF_count++;
DMA_EN(DMA_CH1);
}
}
//PIT中断服务函数
void Timer0_isr()
{
CLR_PIT0;
PIT_TCTRL0 |= PIT_TCTRL_TEN_MASK; //计时器使能
}
void DMA_CH1_Handler()
{
DMA_IRQ_CLEAN(DMA_CH1); //清除通道传输中断标志位(这样才能再次进入中断)
DMA_DIS(DMA_CH1); //采集完H个数据后进入这个DMA中断,停止DMA传输。行中断中打开DMA传输
if(HREF_count>=240)
{
VSYN_flag=1;
}
}[/mw_shl_code]
像素中断的上升沿或者下降沿是什么意思
是像素信号的上升沿或者下降沿,来触发DMA传输
一周热门 更多>