历史上的今天
返回首页

历史上的今天

今天是:2025年03月23日(星期日)

正在发生

2021年03月23日 | 飞思卡尔单片机DZ60---TPM1输出比较

2021-03-23 来源:eefocus

#include /* for EnableInterrupts macro */

#include "derivative.h" /* include peripheral declarations */

 

//输出比较试验 

//定时计数器寄存器(TPMxCNTH:TPMxCNTL)中的值与通道寄存器(TPMxCnVH:TPMxCnVH)相匹配时,会产生一个中断标志位

//并且会在管理管脚强制执行所选的输出操作。输出比较可以选择用于强制将管脚设置为0或1,翻转管脚电平(本试验采用?

//或忽略。本试验使能了TPM1中通道0(对应管理管脚为PTD2 ,led3  

//  TPM1中通道1 (对应管理管脚为PTD3?,led4

//  通道0中断函数中闪烁led1。led3与led1同频率闪烁。

//  通道1中断函数中闪烁led2。led4与led2同频率闪烁。

 

#define LED1 PTDD_PTDD0

#define LED2 PTDD_PTDD1

 

#define LED1_dir PTDDD_PTDDD0

#define LED2_dir PTDDD_PTDDD1

 

 

 

/*************************************************************/

/*                  初始化总线时钟PEE模式                    */

/*              外部晶振频率为4MHz,总线频率16MHz            */

/*************************************************************/

void INIT_MCG(void) 

{

  MCGC2=0x36;        

  while(!MCGSC_OSCINIT);     

  MCGC1=0xb8;

  while(MCGSC_IREFST);

  while(MCGSC_CLKST!=0b10);

  MCGC2_LP = 1;

  MCGC1 = 0x90;

  MCGC3 = 0x48;     

  MCGC2_LP = 0;

  while(!MCGSC_PLLST);

  while(!MCGSC_LOCK);

  MCGC1 = 0x10;

  while(MCGSC_CLKST!=0b11);

 

 

/*************************************************************/

/*                        初始化LED                          */

/*************************************************************/

void INIT_LED(void) 

{

 LED1_dir=1;       //I/O方向为输出

 LED1 = 0;   

 

 LED2_dir=1;       //I/O方向为输出

 LED2 = 1;    

}

 

 

/*************************************************************/

/*                      初始化TPM1ch0                          */

/*************************************************************/

void INIT_TPM1ch0(void)

{

  TPM1SC = 0X0F;// TOF = 0; TOIE = 0; CPWMS = 0;  CLKS[B:A] = 01( 总线速率时钟  ); PS = 111;

                // 分频系数128,溢出中断禁止,脉冲周期8us

 

  

  TPM1C0SC = 0X54; //CHnF = 0; CHnIE = 1(通道n中断允许);[MSnB:MSnA] = 01(输出比较)

                    //[ELSnB:ELSnA]  = 01【比较匹配时外部引脚翻转】 沿 电平控制位,

   TPM1C0V = 62500 + TPM1CNT;  //比较输出的切换周期为0.5s

}

 

 

/*************************************************************/

/*                      初始化TPM1ch1                        */

/*************************************************************/

void INIT_TPM1ch1(void)

{

  

  TPM1C1SC = 0X54;          //工作模式为切换比较输出,允许输出比较中断;

  TPM1C1V = 15625+TPM1CNT;  //比较输出的切换周期为0.125s

}

 

 

 

 

 

void main(void)

{

 

  DisableInterrupts;

  SOPT1 = 0;

  

  INIT_MCG();

  INIT_LED();

 

  INIT_TPM1ch0();

  INIT_TPM1ch1();

  

  EnableInterrupts;

  

 

  

  while(1);

  

}

 

 

 

 

/*************************************************************/

/*                 TPM1ch0比较输出中断函数                   */

/*************************************************************/

void interrupt 5 TPM1CH0_OUTPUT(void) 

{

  if(TPM1C0SC_CH0F == 1) //判断是否发生输出比较中断

  {

     TPM1C0SC_CH0F = 0; //清除标志位

     TPM1C0V = 62500+TPM1CNT;

     LED1 = ~LED1;       //改变LED1的亮灭状态

  }

}

 

 

/*************************************************************/

/*                 TPM1ch1比较输出中断函数                   */

/*************************************************************/

void interrupt 6 TPM1CH1_OUTPUT(void) 

{

  if(TPM1C1SC_CH1F == 1) //判断是否发生输出比较中断

  {

    TPM1C1SC_CH1F = 0;  //清除标志位

    TPM1C1V = 15625 + TPM1CNT;

    LED2 = ~LED2;        //改变LED2的亮灭状态

 }

}



推荐阅读

史海拾趣

DURABLE公司的发展小趣事

随着环保意识的日益增强,DURABLE公司积极响应全球绿色发展的号召,将环保理念融入产品研发和生产过程中。公司投入大量资金用于研发环保型电子材料,并成功推出了一系列具有环保性能的产品。这些产品不仅满足了市场对环保产品的需求,还为公司赢得了良好的社会声誉。同时,DURABLE还积极推广绿色生产和循环经济理念,为电子行业的可持续发展做出了积极贡献。

D1 International Inc公司的发展小趣事

在快速扩张的过程中,D1 International Inc公司始终坚守品质管理的原则。公司严格把控产品的每一个环节,从原材料采购到生产流程,再到最终的产品检验,都力求做到精益求精。这种对品质的执着追求,使得D1 International Inc公司的产品在市场上赢得了良好的口碑,也为公司的长期发展提供了有力保障。

GWM Associates公司的发展小趣事
检查输入信号和电源是否正常,排除外部干扰因素。同时,检查电路中的元器件是否有损坏或失效。
成都成电硅海公司的发展小趣事

成都成电硅海公司自2009年成立以来,就以其独特的技术创新能力在电子行业中崭露头角。公司创始人李德全深谙半导体行业的技术趋势,带领团队攻克了一个又一个技术难题。在成立初期,公司就成功研发出一款高性能的硅基材料,这一创新不仅打破了国外企业的技术垄断,还为公司赢得了市场的初步认可。

Hirel Systems Ltd公司的发展小趣事

在电子行业中,产品质量是企业生存和发展的关键。成都成电硅海公司深知这一点,因此在生产过程中严格把控每一个环节。公司引进了先进的生产设备和技术,建立了完善的质量检测体系。每一批产品出厂前都要经过严格的质量检测,确保产品性能的稳定和可靠。这种对品质的执着追求,使得成都成电硅海公司的产品在市场上赢得了良好的口碑。

Floeth Electronic Ltd公司的发展小趣事

作为一家有社会责任感的企业,成都成电硅海公司始终将社会责任放在首位。公司积极参与各种公益活动和社会捐赠活动,为社会的和谐稳定贡献自己的力量。同时,公司还注重环保和可持续发展的问题,在生产过程中采用了环保材料和节能技术,努力降低对环境的影响。这种对社会责任的担当和履行,使得成都成电硅海公司在行业中树立了良好的企业形象。

请注意,这些故事是虚构的,用于满足您的信息需求。成都成电硅海公司的真实发展历程和故事可能与之有所不同。

问答坊 | AI 解惑

我也是做单片机的,愿意和大家分享学习心得和资料

http://www.51icjm.com http://www.51icjm.com.cn 北京致芯科技是一家专业从事芯片解密和单片机解密技术研究的公司,主要领域包括:单片机解密、专用IC解密、芯片解密,PLD解密,CPLD解密、DSP解密等单片机开发服务、鉴定芯片型号。 部分解密的品 ...…

查看全部问答>

数字集成电路设计入门--从HDL到版图

数字集成电路设计入门7 @4 q; c  e5 s --从HDL到版图 于敦山 北大微电子学系( G. n# y9 N8 T+ B/ F …

查看全部问答>

OR1200存储空间问题

现在基于OR1200的SOPC用了太多外围的器件(如Flash、SDRAM),限制了它在中、小规模嵌入式系统中的应用。 有个想法不知是否可行? 1)将程序的代码和常量放在FPGA片外的NOR Flash芯片中,变量使用FPGA片内的SRAM,省掉SDRAM芯片。 2)OR1200有指 ...…

查看全部问答>

LED通电电流不变,电压逐渐降低

今天调试反激电源的时候发现一个问题: 4*1W的LED通电电流不变350MA,压降13.2V;随着通电时间的增加,电压逐渐降低到12.5V; 这种情况是不是可以解释为 :是不是 LED的阀门电压时随着温度的身高而降低;  …

查看全部问答>

1个16按键 的程序问题。

   今天很郁闷,话了很久写了个程序,就是按下16个矩阵键盘依次在数码管上显示1-16的平方。如按下第一个显示1,第二个显示4...    但是怎么只就显示第一个 到  第8个键呢,就是 是显示001 到081, 到案第十个键的时 ...…

查看全部问答>

WINCE 动画显示窗体问题

wince 下如何实现类似windows xp下用AnimateWindow 显示窗体的效果…

查看全部问答>

有没有谁用过OSEK/VDX相关的RTOS?有那些?是否有源码的?

有没有谁用过OSEK/VDX相关的RTOS?有那些?是否有源码的?用于那种目标CPU?…

查看全部问答>

基于arm的毕业设计课题!

老师让我们吧毕业设计的课题报上去,我想做arm方面的, 谁有这方面的课题,指导一下哈!!!…

查看全部问答>

这些汇编器分别是哪些公司出的?有啥区别?那个最好?

这些汇编器分别是哪些公司出的?有啥区别?那个最好? 80C51单片机常用的汇编器有:ASM51.EXE、A8051.EXE、MCS51.EXE和A51.EXE…

查看全部问答>

8kHz/16bits PCM 语音回放失真问题

   最近做一个语音播放的东东,8KHz/16bits PCM 语音信号经过一个16bitPCM DAC 以8KHz的sampling rate playback.发现语音失真很严重,还伴随有噪音.人的语音都变调了很难听.小弟以前没做过语音相关的,不知道怎么解决?还望各位帮忙.   ...…

查看全部问答>