智能车制作

标题: 悬赏一份PIT模拟PWM 可用程序 [打印本页]

作者: 蓝毅Sep    时间: 2013-8-5 21:55
标题: 悬赏一份PIT模拟PWM 可用程序
悬赏一份PIT模拟PWM 可用程序

作者: happyzn75    时间: 2013-8-5 21:55

作者: 理工小别    时间: 2013-8-5 22:19
我记得前些天就有一哥们要这种程序 大家都说的很明白了
就不能自己看看DATASHEET啊
作者: xiexie943    时间: 2013-8-5 23:22
pit中断时间就是你pwm的周期,在pit中断里面先给高电平时间,然后其他时间给低电平,这样算不算详细

作者: 蓝毅Sep    时间: 2013-8-6 08:36
理工小别 发表于 2013-8-5 22:19
我记得前些天就有一哥们要这种程序 大家都说的很明白了
就不能自己看看DATASHEET啊

#include <hidef.h>      /* common defines and macros */
#include "derivative.h"      /* derivative-specific definitions */
unsigned int i=0,PWM;
void PIT_init(void) //必须先使能总中断  EnableInterrupts;
{ DDRB=0XFF;
  PORTB=0XFF;
  PITCFLMT=0x00;//禁用PIT模块
  PITCE_PCE0=1;//使能通道0
  PITMUX=0x00;//通道0选择威定时基准0

  PITMTLD0=0xFf;//255递减   //装载初值 255*62745=16M
  PITLD0=0xFF19;//62745

  PITINTE=0x01;//允许通道1中断
  PITCFLMT=0x80;//使能PIT模块
    PITCFLMT_PFLMT0=1;
PITFLT_PFLT0=1;
}




void main(void) {
  /* put your own code here */
  EnableInterrupts;
   PIT_init();

   PWM=0;

  while(1);

  for(;;) {
    _FEED_COP(); /* feeds the dog */
  } /* loop forever */
  /* please make sure that you never leave main */
}
#pragma  CODE_SEG  __NEAR_SEG  NON_BANKED
interrupt VectorNumber_Vpit0 void PIT_ISR(void)
{


  PITTF_PTF0=1;//清中断标志

  i++;
  if(i==200)
  i=0;
      if(i<PWM)
  PORTB=1;
  else
  PORTB=0;

   PITMTLD0=0xFf;//255递减   //装载初值 255*62745=16M
  PITLD0=0xFF19;//62745


}
#pragma CODE_SEG DEFAULT
怎么不能用啊






欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2