历史上的今天
返回首页

历史上的今天

今天是:2025年04月19日(星期六)

2021年04月19日 | MC9S12G定时器中断设置

2021-04-19 来源:eefocus

一、关闭定时器模块


时TSCR1的TEN位为0;


二、设定IOSx为输出比较引脚(以7为例)


TIOS_IOS7 = 1;


三、绑定输出比较引脚


TCTL1_OM7 = 0;


TCTL1_OL7 = 1;


四、设置计数器的比较值(在24Mhz的系统时间下,0xBB为1ms)中断周期:0x4926*128/24MHz = 100ms


TC7 = 0xBB;


五、设置定时器分频设置(以128分频为例)


TSCR2_PR = 0x7;


六、设置定时器比较成功后输出从而产生中断


TSCR2_TCRE = 1;


七、最后开启定时器


TSCR1_TEN = 1;


八、中断函数要写为


#pragma CODE_SEG __NEAR_SEG NON_BANKED

   void interrupt VectorNumber_Vtimch7 TIM7_ISR(void)



//并且每次中断后要清除标志位


TFLG1 =128U;


}





代码



void OutputCompare_Init(void)

    {

    TSCR1_TEN = 0; /* Disable Timer module before adjusting registers. */

    TIOS_IOS7 = 1; /* Set Channel 0 as output compare. */

    TCTL1_OM7 = 0; /* Set channel 0 to toggle when a Timer match occurs. */

    TCTL1_OL7 = 1; /* Set channel 0 to toggle when a Timer match occurs. */

    TC7 = 0xBB; /* Set a value for channel 0 timer compare. */

    TIE_C7I = 1; /* Enable channel 0 interrupt, handled by function TIM0ISR. */

    TSCR1_TSWAI = 1; /* Disables the timer module while in wait mode. */

    TSCR1_TSFRZ = 1; /* Disables the timer counter while in freeze mode. */

    TSCR2_PR = 0x7; /* Set prescaler to divide by 128 */

    TSCR2_TCRE = 1;

    TSCR1_TEN = 1; /* Timer Enable. */

    //中断周期:0x4926*128/24MHz = 100ms

    }



#pragma CODE_SEG __NEAR_SEG NON_BANKED

  void interrupt VectorNumber_Vtimch7 TIM7_ISR(void)

    {

    

    TFLG1 =TFLG1_C7F_MASK; /* Clear channel 0 flag. */

     PORTB ^= bit4;


    }


推荐阅读

史海拾趣

Advanced Interconnections Corp公司的发展小趣事

在电子行业的早期阶段,AIC公司凭借其前瞻性的技术创新,成功开发了一种新型的连接器技术。这种连接器具有更高的传输速度和更强的稳定性,满足了市场对高性能电子产品的迫切需求。AIC公司的这一技术突破迅速获得了市场的认可,公司的销售额和市场份额均实现了快速增长。

AIC [Analog Intergrations Corporation]公司的发展小趣事

为了进一步提升国际竞争力,AIC公司开始实施全球化布局战略。公司先后在多个国家设立了研发中心和生产基地,以便更好地服务全球客户。同时,AIC公司还积极参加国际展览和交流活动,与海外企业建立合作关系,推动产品的全球化销售。这些举措使AIC公司的国际影响力不断提升,市场份额也进一步扩大。

Frequency Management International公司的发展小趣事

FMI深知技术创新是企业发展的核心动力。因此,公司一直致力于在石英晶体和晶体振荡器领域进行技术研发和创新。通过不断的技术积累和优化,FMI成功开发出了一系列高性能、高稳定性的产品,如压控温度补偿晶体振荡器(VCTCXO)、压控晶体振荡器(VCXO)、温度补偿晶体振荡器(TCXO)等。这些产品的推出不仅丰富了FMI的产品线,还进一步提升了公司在行业内的竞争力。

BOSER公司的发展小趣事

随着科技的不断发展,BOSER公司意识到只有不断创新才能在激烈的竞争中立于不败之地。因此,公司投入大量研发资源,致力于开发具有自主知识产权的新技术。经过不懈努力,BOSER成功推出了一系列创新产品,引领了电子行业的技术发展潮流。

Dearborn Electronics Inc公司的发展小趣事

随着技术的不断进步,Dearborn Electronics Inc.不断投入研发,推出了一系列具有创新性的产品,如钽电容、陶瓷电容器等。这些产品以其卓越的性能和可靠性赢得了市场的广泛认可。同时,公司也积极拓展市场,将产品销售到全球各地,特别是医疗、石油、交通、工业等严苛应用领域。

Gravitech公司的发展小趣事

Dearborn Electronics Inc.始终将品质放在首位,建立了严格的质量管理体系。公司从原材料采购到生产、检验、包装等各个环节都进行严格的质量控制,确保每一件产品都符合最高标准。此外,公司还不断引进先进的生产设备和技术,提高生产效率和产品质量。

问答坊 | AI 解惑

电磁流量计原理

1. 概 述 电磁流量计(以下简称EMF)是利用法拉第电磁感应定律制成的一种测量导电液体体积流量的仪表。50年代初EMF实现了工业化应用,近年来世界范围EMF产量约占工业流量仪表台数的5%~6.5%。 70年代以来出现键控低频矩形波激磁方式,逐渐替代早 ...…

查看全部问答>

电流转换成电压再进行AD转换的电路,有个问题,请教模电

最近正在做一个同时电压和电流的电路 。现在有个问题。 单独测量电压和电流都没有问题,只是不能同时测量,同时测量的话,电压正常,电流就不对了。 电流测量点是在VDD端,我估计可能是共模干扰的问题,但是不知道怎么解决。 请高手指点,不胜感 ...…

查看全部问答>

4星C++经典(英文清晰PDF)

C++: The Complete Reference, 3rd Edition Product DescriptionBest-selling genius Herb Schildt covers everything from keywords, syntax, and libraries, to advanced features such as overloading, inheritance, virtual functions, name ...…

查看全部问答>

这种情况下怎样滤波效果更好?

最近用到AD698来检测位移,用示波器发现698输出的直流电压有纹波,大约10mv,几十Hz,即使使用电池供电也照样存在!想用简单的阻容滤除,但电容加大到100uF才滤掉了纹波!但此时出现了一个非常讨厌的现象:          ...…

查看全部问答>

为什么我的贴被删

不可以那样发贴吗,版主,解释下 死也要死的明白??…

查看全部问答>

诚聘硬件部经理

公司:深圳市亚特尔南京研发中心(正在筹建中) 地址:南京市鼓楼区定淮门12号世界之窗软件园15号楼北301室 TEL:025-83752651     Website:www.szartel.com 要求: 1、本科以上学历,电子信息相关专业; 2、从事ARM、DS ...…

查看全部问答>

供应VGA控制板

VGA控制板: 1. 为单片定身量做的显卡,单片机通过8/16/32位数据总线或IO口直接控制             2. 标准VGA输出接口,直接驱动15/17\"LCD和CRT显示器            ...…

查看全部问答>

CF卡的驱动

您好,我最近在做CF卡的驱动,是基于arm9(at91rm9200)平台linux操作系统的,看了一段时间书也没什么大的头绪,能否给我源代码做参考,非常感谢! 我的邮箱:jink1977@163.com…

查看全部问答>

版主,请问串口1如何使用呢?

版主,我用的是207R8,想使用串口1,如何配置寄存器,才能使它像普通单片机串口一样收发使用呢,寄存器配置太多,不知道如何使用了 使用库函数也行啊 我使用的是 stvp,外部时钟 22.1184…

查看全部问答>