金牌会员
- 积分
- 2258
- 威望
- 537
- 贡献
- 1561
- 兑换币
- 118
- 注册时间
- 2010-10-31
- 在线时间
- 80 小时
|
这里不仅仅是参考电压的问题!
还有如何更好的利用边沿检测,
否则硬件二值化带来的,
只有更多的点,
却没有处理速度的提升!!
-
- /*********************************************************************
- Function Name:PH7_INT
- Description: PH7 interrupt service function,read CMOS camera
- Inputs: None
- Outputs: None
- NOTES:
- **********************************************************************/
- #pragma CODE_SEG __NEAR_SEG NON_BANKED
-
- __interrupt void PH7_INT (void) //PH7管脚中断函数检测到黑线引发上升沿中
- 断
- {
- // Led3_ON;
- if(( v_line >= VIDEO_START_LINE ) && ( v_line < VIDEO_START_LINE +
- MAX_VIDEO_LINE ) && (Flag_down - Flag_up == 1))
- { v_point_up[v_line - VIDEO_START_LINE][Flag_up] = MCCNT; //上升沿中断
- 记录计数器值
- Flag_up ++; //此行有上升沿中断点加一
- }
- PIFH = 0X80; //PH7位写1清零,以便下次上升沿来时能产生中断
- }
- /*********************************************************************
- Function Name:PJ7_INT
- Description: PJ7 interrupt service function,read CMOS camera
- Inputs: None
- Outputs: None
- NOTES:
- **********************************************************************/
-
- #pragma CODE_SEG __NEAR_SEG NON_BANKED
- __interrupt void PJ7_INT(void) //PJ7管脚中断函数检测到黑线引发下降沿中断
- {
- //Led3_OFF;
- if(( v_line >= VIDEO_START_LINE ) && ( v_line < VIDEO_START_LINE +
- MAX_VIDEO_LINE ) && (Flag_down - Flag_up == 0))
- {
- v_point_down[v_line - VIDEO_START_LINE][Flag_down] = MCCNT; //上升沿
- 中断记录计数器值
- Flag_down ++; //此行有上升沿中断点加一
- }
- PIFJ = 0X80; //PJ7位写1清零,以便下次下降沿来时能产生中断
- }
- /*********************************************************************
- …………
- g_BlackPoint[0][cnt] = (v_point_used_up[n][i] + v_point_used_down[n][i + 1]) / 2;//记录中心点
复制代码
这段程序,
个人分析得出的结论是,
他们每行只保存了个位数的数据量,
却实现了我们保存几十甚至几百个点的效果!!
这里更是要学习的!! |
|