历史上的今天
返回首页

历史上的今天

今天是:2025年02月09日(星期日)

正在发生

2020年02月09日 | STM8S TIM1/TIM2 初始化函数

2020-02-09 来源:eefocus

/*

TIM2初始化函数

返回值:无

参数:定时时间 us


*/

#define CPU_CLK 16027  //主频 KHz


void timer2_Init(ulong us)

{

    uchar PSCR = 0; //分频 

    uint pow;

   ulong ARR;

start:

    pow=1;

    for(uchar i=0;i    {

        pow *= 2;

    }

    if(us>250000)

      ARR = (((((us-1)/ 1000) * CPU_CLK) )/pow);

    else

      ARR = ((((us-1) * CPU_CLK+500) / 1000)/pow);

    if(ARR>0xffff) //计算arr是否超出范围

    {

        PSCR++;

        goto start;

    }

    TIM2_PSCR_PSC = PSCR; 

    TIM2_ARRH = (uchar)(ARR>>8);

    TIM2_ARRL = (uchar)(ARR&0x00ff); 

    TIM2_IER = 0x01; 

    TIM2_CR1 = 0x01; 

}

/*

TIM1初始化函数

返回值:无

参数:定时时间 us


*/

void  timer1_Init(ulong us)

{

  uint PSCR = 0; //分频 

   ulong ARR;


start:



    if(us>250000) //2000000

      ARR = (((((us-1)/ 1000) * CPU_CLK) )/(PSCR+1));

    else

      ARR = ((((us-1) * CPU_CLK+500) / 1000)/(PSCR+1));


    if(ARR>0xffff) //计算arr是否超出范围

    {

        PSCR++;

        goto start;

    }



    TIM1_PSCRH = (uchar)((PSCR)>>8);

    TIM1_PSCRL = (uchar)((PSCR) & 0x00ff);          //(15+1)分频为1M

    TIM1_ARRH = (uchar)(ARR>>8);

    TIM1_ARRL = (uchar)(ARR&0x00ff);        //每us中断一次

    TIM1_IER = 0x01;         //允许更新中断

    TIM1_CR1 = 0x01;         //计数器使能,开始计数

}


推荐阅读

史海拾趣

联捷(Elinker)公司的发展小趣事

在快速发展的同时,联捷(Elinker)始终关注社会责任和可持续发展。公司积极参与各种公益活动,为社会做出了积极贡献。同时,公司还注重环保和节能工作,通过采用环保材料和节能技术等方式降低生产过程中的能耗和排放。这些举措不仅提高了公司的社会形象也促进了公司的可持续发展。

请注意,以上故事均为模拟内容,旨在展示联捷(Elinker)公司可能的发展历程和故事。实际情况可能有所不同,具体信息请参考公司官方发布的相关资料。

FlexiPanel公司的发展小趣事

随着全球化进程的加速,FlexiPanel意识到构建稳定的全球供应链体系对于企业的长远发展至关重要。公司积极寻求与国内外知名芯片制造商、天线供应商等合作伙伴建立战略合作关系,共同推动RF模块技术的进步和产业化应用。通过整合全球资源,FlexiPanel不仅提升了自身的产品研发和生产能力,还确保了产品质量的稳定性和可靠性,赢得了客户的广泛信赖。

DCCOM [ DC COMPONENTS ]公司的发展小趣事

为了进一步扩大市场份额,DCCOM公司积极寻求与国内外知名企业的合作。通过与这些企业的合作,DCCOM不仅获得了更多的客户资源,还学习到了先进的管理经验和技术知识。这种合作模式使得DCCOM在激烈的市场竞争中保持了强劲的增长势头。

Hirschmann公司的发展小趣事
在定时电路中,电阻和电容是决定延时时间的关键因素。通过更换不同阻值和容值的电阻和电容,可以直接调整电路的延时时间。这种方法简单直接,但需要实际测量和调试以确保延时时间的准确性。
Anpec(茂达)公司的发展小趣事

凭借卓越的产品质量和良好的市场口碑,茂达电子在国内电源模拟IC设计领域的地位逐渐提升。公司不仅在国内市场取得了显著的成绩,还积极拓展海外市场,与众多国际知名企业建立了稳定的合作关系。茂达电子的产品广泛应用于计算机、通信和消费者等领域,为全球客户提供了高质量的电源解决方案。

B+B SmartWorx公司的发展小趣事

B+B SmartWorx的前身是B&B Electronics,一个在1981年成立的公司,起初主要为无线和有线网络提供设备连接解决方案。随着技术的快速发展,物联网和M2M连接的需求日益增长,B&B Electronics意识到必须进行创新以应对市场的变化。于是,公司开始致力于开发“边缘智能”技术,使网络连接设备更加智能、自主和响应迅速。这一创新转型使得公司在物联网行业中崭露头角,并在2015年决定将公司名称更改为B+B SmartWorx,以更好地反映其业务重心和技术方向。

问答坊 | AI 解惑

更新运动系统的方法

为了在激烈的竞争中取胜,生产商们必须想方设法制造出比上一代产品或市场上的竞争产品速度更快、体积更小、运行更精确、噪音更小、成本更低的机器。同时,随着机器老化、花费增加和技术进步,运动系统的更新换代也成为必需。无论什么原因,技术变革 ...…

查看全部问答>

求助:锁相环的作用

这是我在网上查到的信息: 最简单的解释:通过一个环路(反馈、比较)把频率(相位)锁定的电路。 我看到PIC2520单片机上datasheet上写的:\"4 倍频锁相环(可用于晶振和内部振荡器)\"假设晶振为11KHZ的振荡频率,那么单片机的时钟频率是多少? ...…

查看全部问答>

130万像素CMOS数码相机的设计

本文介绍了一种130万像素CMOS数码相机的设计原理、基本组成及规格特点,并已有具体实践的结果和产品应用。 …

查看全部问答>

急!!~~大家帮我看看啊,错了很久了

我用的飞思卡尔的IMX21的板子,现在要移植2.6的内核上去,但是编译的时候在这里一直通不过,请大家帮忙看看,谢谢了 CHK include/linux/compile.h AS arch/arm/kernel/head.o arch/arm/kernel/head.S: Assembler messages: arch/arm/kernel/hea ...…

查看全部问答>

怎么让1602LCD上的字闪烁?

我知道用         Write_com(0x08);                                          delay(3000); ...…

查看全部问答>

uclinux下实现usb固件程序!来者有分!!哪位想帮小弟这个忙,可以谈谈报酬!呵呵

我的S3C44B0带有个USBD12芯片, 1,在没有操作系统uclinux情况下,我写了个固件程序,实现了usb device,注意不是usb host。 2,我又在这块板子上成功移植了uclinux系统。 问题,现在我想把固件程序放到uclinux里面,有人说因为用到中断,得做成 ...…

查看全部问答>

仿真没问题,一旦拔下JATG,程序不运行或运行错,急,急,急呀!

我用的是 MSP430F135芯片,程序仿真一切正常,build后,可直接写道芯片去。一旦拔下JATG,程序不运行或运行错。我猜测是程序复位问题,即是程序没找到起始地址,或找错了。如何才能让它正常运行呢,急呀,  ,快过年了,还没有回家呢!! ...…

查看全部问答>

急,读不到P1口的输出数据,请高手指点

单片机型号:STC89C52RC   问题描述:读P1口数据,数据为空   P1已经定义 uchar uReadValue;   P1_0=0; P1_1=0;     //此处OK,正常点亮了P1低位的两个Led uReadValue=P1;//将P1的值赋给变量uReadValu ...…

查看全部问答>

嵌入式软件可靠性设计

嵌入式软件可靠性设计 大家看一下是否对你们的工作有帮助。…

查看全部问答>

求助Matlab+DSP的快速实现

求助各位大神,需要用DSP实现一个软硬件系统,Matlab+DSP实现可能会简单些。。。有具体操作和讲解的资料,求提供 …

查看全部问答>