UnLoCo
Newbie level 2
Hello guys
I'm testing a simple CCS program on ISIS.
I'm using a pic16F877 (20MHZ)
it compiles fine but no PWM is shown in ISIS.
i know the problem is on ISIS because i had a similar prog running fine on hardware.
has anybody managed to show PWM on isis from a 16f877 ?
thanks a lot.
ISIS simulation file
I'm testing a simple CCS program on ISIS.
I'm using a pic16F877 (20MHZ)
it compiles fine but no PWM is shown in ISIS.
i know the problem is on ISIS because i had a similar prog running fine on hardware.
has anybody managed to show PWM on isis from a 16f877 ?
thanks a lot.
Code:
//#include "speed control.h"
#include <16F877.h>
#device adc=8
#FUSES NOWDT //No Watch Dog Timer
#FUSES HS //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD)
#FUSES NOPUT //No Power Up Timer
#FUSES NOPROTECT //Code not protected from reading
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD //No EE protection
#FUSES NOWRT //Program memory not write protected
#FUSES NODEBUG //No Debug mode for ICD
#use delay(clock=20000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
#use rs232(baud=9600,parity=N,xmit=PIN_D0,rcv=PIN_D1,bits=8,stream=DEBUG)
#define Delay 1
#int_RDA
void RDA_isr(void)
{
}
void main()
{
char com,spd,pos,val;
signed int16 diff;
setup_adc_ports(AN0_AN1_AN3);
setup_adc(ADC_CLOCK_DIV_32);
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
enable_interrupts(INT_RDA);
enable_interrupts(GLOBAL);
setup_timer_2(T2_DIV_BY_16,255,1);
setup_ccp1(CCP_PWM);
set_pwm1_duty(50);
// TODO: USER CODE!!
while(1){
set_adc_channel(1);
delay_ms(Delay);
com = read_adc();
delay_ms(Delay);
set_adc_channel(0);
delay_ms(Delay);
spd = read_adc();
diff = com - spd;
if(com > spd){pos='+';val=diff;}
else{pos='-';val=~diff;}
fprintf(DEBUG,"%c",pos);
fprintf(DEBUG,"%u\r",val);
delay_ms(Delay);
delay_ms(300);
}
}
ISIS simulation file