利用STM32的定时器中断功能编写线阵CCD(ILX554B)的驱动时序

1.利用定时器完成线阵CCDILX554B的驱动时序,采用两个管脚1个用于产生ROG信号,一个用于产生CLK信号
2.使用一个按键,每按一次,CLK的频率变为原来的1/2,ROG的信号长度依次类推

#include "pbdata.h"void RCC_Configuration(void);
void GPIO_Configuration(void);
void NVIC_Configuration(void);
void TIM3_Configuration(void);
void EXTI_Configuration(void);
//端口等配置省略
u16 T,i,flag;//主函数
int main(void)
{i=0;T=20;RCC_Configuration();    //系统时钟初始化GPIO_Configuration();TIM3_Configuration();EXTI_Configuration();NVIC_Configuration();flag=0;while(1){if(flag==0){GPIO_SetBits(GPIOB,GPIO_Pin_5); //clk1delay_ms(10);GPIO_ResetBits(GPIOD,GPIO_Pin_6);    //rog0delay_ms(20);GPIO_SetBits(GPIOD,GPIO_Pin_6);  //rog1delay_ms(10);GPIO_ResetBits(GPIOB,GPIO_Pin_5);    //clk0flag=1;}TIM_Cmd(TIM3,ENABLE);                    if(i==2*2086)                             {TIM_Cmd(TIM3,DISABLE);TIM3_Configuration();i=0;f=0;}}
}

void TIM3_Configuration(void)
{
//定时器初始化
TIM_TimeBaseInitTypeDef TIM_TimeBaseStruct;

TIM_ClearITPendingBit(TIM3,TIM_IT_Update);TIM_TimeBaseStruct.TIM_Period=T-1;        //预分频频率
TIM_TimeBaseStruct.TIM_Prescaler=35999;        //预分频系数
TIM_TimeBaseStruct.TIM_ClockDivision=0;
TIM_TimeBaseStruct.TIM_CounterMode=TIM_CounterMode_Up;TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStruct);TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);
TIM_Cmd(TIM3,DISABLE);

}


```c
//中断函数void TIM3_IRQHandler(void)
{if(GPIO_ReadOutputDataBit(GPIOB,GPIO_Pin_5)==Bit_RESET){GPIO_SetBits(GPIOB,GPIO_Pin_5);  }else{GPIO_ResetBits(GPIOB,GPIO_Pin_5);}i++;TIM_ClearITPendingBit(TIM3,TIM_IT_Update);
}void EXTI9_5_IRQHandler(void)
{if(EXTI_GetITStatus(EXTI_Line5)==SET){delay_ms(10);if(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_5)==RESET){T*=2;}}EXTI_ClearITPendingBit(EXTI_Line5);
}

利用STM32的定时器中断功能编写线阵CCD(ILX554B)的驱动时序相关推荐

  1. 东芝线阵CCD芯片TCD1305DG驱动时序设计

    最近在做微型光谱仪,用到了东芝的CCD芯片TCD1305DG,该芯片是单行3648像素,输出信号是时间上离散的模拟信号,典型输出速率为0.5M,即每2000ns输出一个像素值(模拟信号),芯片内部集成 ...

  2. 初学STM32之定时器中断

    初学STM32之定时器中断 一.定时器概述 1.定时器的分类 STM32F10x系列总共最多有8个定时器分为高级定时器,通用定时器和基本定时器.三种定时器的主要区别如下图所示: 本文章仅介绍通用定时器 ...

  3. stm32入门——定时器中断和中断优先级简介

    stm32入门--定时器中断 产生定时中断是定时器的用法之一,与定时器用来进行PWM输出和输入捕获相比,定时器中断更容易理解.掌握. 原理简介 使用通用定时器进行中断的原理,其实和开发板Systick ...

  4. 基于FPGA的线阵CCD实时图像采集系统

    基于FPGA的线阵CCD实时图像采集系统 2015年微型机与应用第13期 作者:章金敏,张 菁,陈梦苇 2016/2/8 20:52:00 关键词: 实时采集 电荷耦合器件 现场可编程逻辑器件 信号处 ...

  5. 线阵CCD相机与面阵相机的区别

    一.线阵相机 线阵CCD工业相机主要应用于工业.医疗.科研与安全领域的图象处理.在机器视觉领域中,线阵工业相机是一类特殊的视觉机器.与面阵工业相机相比,它的传感器只有一行感光元素,因此使高扫描频率和高 ...

  6. 线阵CCD(摄像机)与面阵CCD(摄像机)的区别

    (1)线阵CCD图像传感器是由一列MOS(金属-氧化物-半导体)光敏单元和一列CCD移位寄存器并行而构成的.如果要用线阵CCD获取二维图像,必须配以扫描运动,而且为了能确定图像每一像素点在被测件上的对 ...

  7. LCAMV06-TCD1304线阵CCD模组

    LCAMV06-TCD1304线阵CCD模组 LCAMV06系列是我司自主研发的低噪声线阵CCD模组 ,搭配TCD1304 sensor,电路采用了16bit专业ccd处理器,有TTL接口和Micro ...

  8. DALSA线阵CCD开发纪要(C++)

    应用背景:晶体表面疵病工业检测,导轨运动的光栅尺反馈系统产生的脉冲用于外触发Dalsa相机进行图像采集. 解决问题:Dalsa线阵CCD直接采集的图像是当前一行的图像,配套的采集卡中用于存储图像的缓冲 ...

  9. 基于FPGA的线阵CCD图像测量系统研究——笔记

    本文是对基于FPGA的线阵CCD图像测量系统研究(作者:高尚)的阅读笔记 第一章绪论 1. 读读看 读了前面的摘要依然没有看懂作者要做什么.接着往下读....终于看到了一个字眼"基于机器视觉 ...

最新文章

  1. 如何快速将Android库发布到JCenter
  2. Qt Creator编写代码
  3. jvm系列(五):Java GC 分析
  4. 七 内置锁 wait notify notifyall; 显示锁 ReentrantLock
  5. java自动化高频面试题
  6. 完美解决vmware连接摄像头问题(驱动程序错误)
  7. IQ Questions
  8. java实现文字识别营业执照识别(百度、讯飞)
  9. Dissect Certificate
  10. 为什么每个语言都要和Java作比较?一文带你搞懂!
  11. 爬取虎扑社区-晒晒照片
  12. VirtualBox安装centos7时无法安装问题
  13. 大数据行业再拉警报,51信用卡或将彻底沦陷?
  14. 滴水逆向——PE导出表
  15. 计算机开机自检是如何工作的
  16. 基于Java的开源CMS有哪些推荐,各自特点是什么
  17. 做一个python的旅游系统_Python爬取13个旅游城市,告诉你新年大家最爱去哪玩?...
  18. 北京拓保世纪:以硬技术为根本,用专业力量传递价值!
  19. Python爬取《创造营2020》小姐姐数据并用腾讯云人脸识别做颜值评分
  20. VTK修炼之道65:体绘制裁剪_Cropping技术

热门文章

  1. android拒绝权限,拒绝权限:这需要android.permission.INTERACT_ACROSS
  2. matlab print dmeta,转:MATLAB导出高清晰图片
  3. java有哪三个版本_Java 平台有哪几个版本?
  4. 关于Mybatis的insert方法返回值(将返回值受影响条数改为插入后的自增主键id)
  5. 百度Java架构师谈Java面向对象
  6. android进销存系统
  7. STM32使用HAL库,整体结构和函数原理介绍
  8. 用Python理解极限,看了这个就不会挂高数了
  9. 极大似然函数求解_关于极大似然估计的学习(附Matlab中mle函数的求解)
  10. JS无形装逼,最为致命