这个是初始化的内容
- void system_init(void)
- {
- WTST = 0; //设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快
- EAXFR = 1; //扩展寄存器(XFR)访问使能
- CKCON = 0; //提高访问XRAM速度
-
- P0M0 = 0x00; P0M1 = 0x00;
- P1M0 = 0x00; P1M1 = 0x00;
- P2M0 = 0x03; P2M1 = 0x00; //lcd 2.4567双向口 2.0 2.1推挽输出
- P3M0 = 0x00; P3M1 = 0x00;
- P4M0 = 0x18; P4M1 = 0x00; //p4.3,p4.4推挽输出
- P5M0 = 0x00; P5M1 = 0x00;
- P6M0 = 0xff; P6M1 = 0x00; //pwm p6
- P7M0 = 0x70; P7M1 = 0x00; //lcd p7.456推挽输出
-
- ADCTIM = 0x3f; //设置 ADC 内部时序,ADC采样时间建议设最大值
- ADCCFG = 0x2f; //设置 ADC 时钟为系统时钟/2/16/16
- ADC_CONTR = 0x80; //使能 ADC 模块
-
- UART1_config(2);
- CANInit();
- init(128);
- Timer0_init();
-
- Timer3_init();
- pwm_init();
-
- CMPEN = 1; //使能比较器模块
- fule_angle_temp=0;
- water_angle_temp=0;
- zs_angle_temp=0;
-
- EX3 = 1; //使能 INT3 下降沿中断
- EA = 1;
-
- }
复制代码
目的是int3引脚,有下降沿触发中断函数里面的内容
- /********************* INT3中断函数 *************************/
- void INT3_int (void) interrupt 11 //进中断时已经清除标志
- {
- EA=0;
- HC595DATA &=0x0000;
- HC595_DATAOUT(HC595DATA);
-
- end_stepmotor();
- fule_angle_temp=0;
- water_angle_temp=0;
- zs_angle_temp=0;
- while(low_vol==1)
- {;}
- EA=1;
- }
复制代码
但是为什么使能了比较器模块(CMPEN = 1; //使能比较器模块),int3中断函数才能正常运行。
电路里面有3个2200微法电容。
当int3有下降沿信号,关闭所有灯,三个电机回转
但是去掉比较器模块使能,外部中断就不能正常运行了
|