⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pwm.c

📁 包括流水灯
💻 C
字号:
#include "regs240x.h"     
//#define PWM_MAX 6000    
/*void initial()  
{  
    asm(" setc  SXM");          // 符号位扩展有效  
    asm(" clrc  OVM");          // 累加器中结果正常溢出  
    asm(" clrc  CNF");          // B0被配置为数据存储空间  
    SCSR1=0x81FE;               // CLKIN=10M,CLKOUT=4*CLKIN=40M  
    WDCR=0x06f;             // 不使能看门狗,因为SCSR2中的WDOVERRIDE  
    WDKEY=0x5555;  
    WDKEY=0xaaaa;                   // 软件禁止看门狗  
    IMR=0x0000;                 // 禁止所有中断  
    IFR=0x0FFFF;                // 清除全部中断标志,"写1清0"  
    WSGR=0X00;                  // 禁止所有的等待状态  
  
}*/   
main()   
{   
//  unsigned int uWork;    
//  initial();    
    asm(" setc INTM");  /* 关中断 */   
    asm(" setc  SXM");  /* 符号位扩展有效 */   
    asm(" clrc  OVM");  /* 累加器中结果正常溢出 */   
    asm(" clrc  CNF");  /* B0被配置为数据存储空间 */   
   
    WDCR=0x6f;   
    WDKEY=0x5555;   
    WDKEY=0xaaaa;   /* 关闭看门狗中断 */   
   
    SCSR1=0x81fe;   /* DSP工作在40MHz */   
    IMR=0;          /* 屏蔽所有可屏蔽中断 */   
    IFR=0x0ffff;    /* 清除中断标志 */   
//  uWork=WSGR;     /* I/O引脚0等待 */    
//  uWork&=0x0fe3f;    
//  WSGR=uWork;    
   
//  MCRA=MCRA|0x0c0;    /* IOPA6-7被配置为基本功能方式,PWM1-2 */    
//  ACTRA=0x06;         /* PWM2低有效,PWM1高有效 */    
    MCRA=MCRA|0xfc0;    /* IOPA6-7被配置为基本功能方式,PWM1-2 */   
    ACTRA=0x0aaa;       /* PWM2高有效,PWM1高有效 PWM4高有效,PWM3高有效 */   
    DBTCONA=0x00;       /* 不使能死区控制 */   
    CMPR1=0x3000;       /* 比较单元1设置 */      
    CMPR2=0x2000;       /* 比较单元2设置 */      
    CMPR3=0x1000;   
    T1PER=0x6000;       /* 设置定时器1的周期寄存器,以确定不同的输出占空比 */   
    COMCONA=0x8200;     /* 使能比较操作 */   
    T1CON=0x1000;       /* 定时器1为连续增计数模式 */   
   
    T1CON=T1CON|0x0040; /* 启动定时器1 */   
    while ( 1 )   
    {   
      CMPR1+=1;   
      CMPR3+=1;    
      if(CMPR1>=0x5f00)   
       CMPR1-=0x4f00;   
      if(CMPR3>=0x5f00)   
       CMPR3-=0x4f00;   
         
    }   
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -