[求助]PIC程序中参数不能自加;

发布时间:2024-04-30 15:18 发布:上海旅游网

问题描述:

程序如下:
故障:1、run_st不能自加,每次只能自加5次就从头开始自加;
2、如果屏蔽initializtion();函数,可以实现自加;但我的程序需要这段初始化程序,不能屏蔽掉;
请问大侠,如何处理;
编译仿真器MPLAB IDE 8.00

//******头文件
#include <p18f452.h>
#include <timers.h>

//*****配置位定义
#pragma config OSC = HS, BOR = ON , BORV=27
#pragma config WDT = OFF,WDTPS=64, CPD = ON
#pragma config CP0=OFF,CP1=OFF,CP2=OFF,CP3=OFF
#pragma config EBTR0 = OFF,EBTR1 = OFF,EBTR2 = OFF,EBTR3 = OFF

//*****常量定义*******
unsigned int start_q,run_st,start_jiange;
unsigned int canshu[21],ja;

void initializtion(void);

void main(void)
{
initializtion();
run_st=45;
start_q=4000;
while(1)
{
ja=1;
start_jiange=((start_q-3500)/(run_st*50));
if(start_jiange<3){start_jiange=(((start_q-2000)*3)/(run_st*50));ja=3;}
run_st++;
}
}

/////////////////初始化程序
void initializtion(void)
{

PORTA=PORTB=PORTC=PORTD=PORTE=0;
TRISA=0x01;
TRISB=0x0F;
TRISC=0x28;
TRISD=0xff;
TRISE=0x00;
///////////// //PWM (CCP:比较/捕捉/脉宽调制)
T2CON=0X55; //后分频11,预分频4
PR2=90; // (TMR2的周期寄存器?与TMR2匹配时中断)
CCPR1L=45; // CCP寄存器低8位,用作CCP的高8位
CCP1CON=0X3C; //CCP1L低俩位为11,工作用PMW模式
PIE1bits.CCP1IE=0;
PIE1bits.TMR2IE=1;
PIR1bits.TMR2IF=0;
//////////////////

IPR1=IPR2=0X00;///都处于低优先级
RCONbits.IPEN=1;//中断分优先级
INTCONbits.GIE=1; //总中断允许
INTCONbits.PEIE=1; //外设中断允许
Nop();

}
问题已经解决.没有加中断程序

问题解答:

[求助]PIC程序中参数不能自加;这个旅游问答期待您的解答,请登录账号或关注微信公众号回答这个问题。

热点新闻