利用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. python 中*args 和 **kwargs的区别
  2. Sqlite表的结构修改
  3. python随机发牌_魔术师发牌问题 -- python实现
  4. 多个 gradle 文件夹 \.gradle\wrapper\dists\ 设置gradle不是每次都下载
  5. jQuery的hide() 、show() 、toggle()
  6. struts2 OGNL表达式
  7. Android Studio 安装TinyPng插件
  8. JVM篇-JVM内存结构与存储机制
  9. 服贸会 | 神州信息:5代ModelB@nk伴随银行业科技创新发展
  10. / ./ ../相对路径详细解释
  11. linux V4L2子系统——v4l2的结构体(3)之v4l2_subdev
  12. 微软Kinect:谁还要控制器?
  13. RAB, RB, SRB
  14. 节日大全c语言程序,C语言 程序设计 节日查询及任务提醒系统-万年历.doc
  15. tc7102路由器虚拟服务器,国内电信推首款WiFi 6+路由器TC7102,5G和WiFi 6成黄金搭档-贤集网...
  16. Python-pygsheets模块(读写Google谷歌文档)
  17. 六个参数帮你全面了解固态硬盘
  18. ps 海报文字设计技巧
  19. php7.4 源码安装
  20. 井字棋(C语言实现,可运行玩耍,自行编写)

热门文章

  1. STM32CubeMX配置SD卡+DMA+Fatfs文件系统
  2. 随心所欲玩电脑 各式笔记本电脑桌赏析
  3. Win10打开系统服务管理器
  4. C# winfrom 拼接图片
  5. 华为交换机清除堆叠命令
  6. Spring: Spring依赖注入有哪几种方式?
  7. 使用python的socket实现简单的加密通信
  8. 【微信小程序AR】基于Kivicube零代码实现微信小程序AR
  9. AR-HUD相关技术介绍2021-03-23
  10. X210学习--在ubuntu20.04 安装搭建交叉编译链