📄 key.c.bak
字号:
#include "2407A.h"
void initial(); /*初始化子程序 */
void timer3initial(); /*定时器3初始化子程序 */
void pwminitial(); /*PWM初始化子程序 */
unsigned int CMPR; /*设置PWM周期变量 */
unsigned int TPER; /*设置Timer1周期变量 */
void inline disable()
{
asm(" SETC INTM"); /*禁止所有中断*/
}
void inline enable()
{
asm(" CLRC INTM"); /*开放所有中断 */
}
void initial()
{
asm(" SETC SXM"); /*抑制符号位扩展 */
asm(" SETC OVM"); /*根据遇到溢出的情况,累加器被设置为它的最大正值或负值 */
asm(" SETC CNF"); /*B0被设置为程序存储空间 */
*SCSR1=0X87FE; /*clock=fin;使能ADC、SCI、SPI、CAN、EVA、EVB模块*/
*WDCR=0X0E8; /*不使能看门狗*/
*IMR=0X0002; /*允许INT2中断*/
*IFR=0X0FFFF; /*清除全部中断标志*/
WSGR=0X00; /*禁止所有等待状态*/
*MCRA=*MCRA|0X0040; /*IOPA6端口设置为基本功能,PWM1 */
*MCRC=*MCRC&0X0FF00; /*IOPE端口设置为一般的I/O功能 */
*PADATDIR=*PADATDIR|0X4000; /*IOPA6设置为输出方式*/
//*PEDATDIR=*PEDATDIR|0X0000; /*IOPE端口设置为输入方式*/
*PEDATDIR=*PEDATDIR&0X0000;
}
void pwminitial()
{
*ACTRA=0X0001; /*PWM1低有效*/
*DBTCONA=0X00; /*不使能死区控制*/
*CMPR1=0X4A9C; /*设置CMPR1,以确定输出占空比*/
*T1PER=0X9538; /*设置Timer1周期寄存器,以确定PWM周期*/
*COMCONA=0X8200; /*使能比较操作*/
*T1CON=0X1000; /*Timer1为连续增计数模式,预分频值为1,使用内部时钟,Timer1比较使能*/
}
void main()
{
disable();
initial();
pwminitial();
*T1CON=*T1CON|0X0040;
while(1)
{
asm(" nop");
}
}
void interrupt nothing( )
{
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -