hi geng...
i kind of new here...
this is my programming...
include <p18f4520.h>
#include "delays.h"
#pragma config PWRT = OFF
#pragma config MCLRE = ON
#pragma config WDT = OFF
#pragma config LVP = OFF
#pragma config DEBUG = OFF
void msDelay(unsigned int itime);
void AD_ISR(void);
void chk_isr(void);
void initial (void);
void forward (void);
void backward (void);
#pragma code High_Priority_Int = 0x0008
void High_Priority_Int(void)
{
chk_isr();
}
#pragma code
#pragma interrupt chk_isr
void chk_isr(void)
{
if (PIR1bits.ADIF==1)
{
AD_ISR();
}
}
void main(void)
{
TRISB = 0;
TRISC = 0;
TRISD = 0;
PORTB = 0;
TRISAbits.TRISA0 = 1;
ADCON0 = 0b01000001;
ADCON1 = 0b10000100;
PIR1bits.ADIF=0;
PIE1bits.ADIE = 1;
INTCONbits.PEIE =1;
INTCONbits.GIE = 1;
msDelay(100);
while(1)
{
ADCON0bits.GO = 1;
msDelay(100);
}
}
void AD_ISR(void)
{
PORTD = ADRESH;
msDelay(130);
if (PORTB=0)
initial();
else if (PORTB<PORTD)
forward();
else if (PORTB>PORTD)
backward();
else if (PORTD=PORTB)
PORTC = 0;
PIR1bits.ADIF=0;
}
void initial (void)
{
.
.
.
}
void forward (void)
{
.
.
.
}
void backward (void)
{
.
.
.
}
void msDelay(unsigned int itime)
{
unsigned int i, j;
for (i=0;i<itime;i++)
for (j=0;j<135;j++);
}
my problem is , this program would not jump to initial,forward and backward subroutine....


i kind of new here...
this is my programming...
include <p18f4520.h>
#include "delays.h"
#pragma config PWRT = OFF
#pragma config MCLRE = ON
#pragma config WDT = OFF
#pragma config LVP = OFF
#pragma config DEBUG = OFF
void msDelay(unsigned int itime);
void AD_ISR(void);
void chk_isr(void);
void initial (void);
void forward (void);
void backward (void);
#pragma code High_Priority_Int = 0x0008
void High_Priority_Int(void)
{
chk_isr();
}
#pragma code
#pragma interrupt chk_isr
void chk_isr(void)
{
if (PIR1bits.ADIF==1)
{
AD_ISR();
}
}
void main(void)
{
TRISB = 0;
TRISC = 0;
TRISD = 0;
PORTB = 0;
TRISAbits.TRISA0 = 1;
ADCON0 = 0b01000001;
ADCON1 = 0b10000100;
PIR1bits.ADIF=0;
PIE1bits.ADIE = 1;
INTCONbits.PEIE =1;
INTCONbits.GIE = 1;
msDelay(100);
while(1)
{
ADCON0bits.GO = 1;
msDelay(100);
}
}
void AD_ISR(void)
{
PORTD = ADRESH;
msDelay(130);
if (PORTB=0)
initial();
else if (PORTB<PORTD)
forward();
else if (PORTB>PORTD)
backward();
else if (PORTD=PORTB)
PORTC = 0;
PIR1bits.ADIF=0;
}
void initial (void)
{
.
.
.
}
void forward (void)
{
.
.
.
}
void backward (void)
{
.
.
.
}
void msDelay(unsigned int itime)
{
unsigned int i, j;
for (i=0;i<itime;i++)
for (j=0;j<135;j++);
}
my problem is , this program would not jump to initial,forward and backward subroutine....