#include <18f4550.h>
#fuses HS,MCLR,NOWDT,NOPROTECT,NOPUT,NOBROWNOUT,NOPBADEN,NOLVP,NOCPD,NODEBUG,NOWRT,NOVREGEN
#use delay(clock=20000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
#bit UCON_EUSB = 0xF6D.3
const long Low = 666;
const long Medium = 333;
const long Fast = 111;
const long Mega = 55;
const long Ultra = 22;
char Keypress=' ';
char Speed;
#int_rda
void serial_isr() {
Keypress=0x00;
if(kbhit()){
if(Keypress!=0x00){
if((keypress>'0')&&(keypress<'6')){
Speed=keypress;
}
if(keypress=='F'){
Speed='\0';
}
keypress=0x00;
}
}
}
void My_Delay(void){
Switch(Speed){
case '1': delay_ms(Low); break;
case '2': delay_ms(Medium); break;
case '3': delay_ms(Fast); break;
case '4': delay_ms(Mega); break;
case '5': delay_ms(Ultra); break;
}
}
void main() {
int i=0,j;
disable_interrupts(global);
disable_interrupts(int_timer1);
disable_interrupts(int_rda);
disable_interrupts(int_ext);
disable_interrupts(int_ext1);
disable_interrupts(int_ext2);
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_spi(FALSE);
setup_psp(PSP_DISABLED);
setup_counters(RTCC_INTERNAL,RTCC_DIV_2);
setup_timer_0(RTCC_OFF);
setup_timer_1(T1_INTERNAL | T1_DIV_BY_1);
setup_timer_2(T2_DISABLED,0,1);
setup_timer_3(T3_DISABLED);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
port_b_pullups(FALSE);
set_tris_e(0b00010000);
set_tris_c(0b10000000);
UCON_EUSB=0;
enable_interrupts(global);
enable_interrupts(int_rda);
Output_c(0b00000000);
delay_ms(500);
Speed='4';
printf("\r\n\RRBOARD2 Listen on Ethernet\r\n\n"); printf("PORTC Press 1, 2, 3, 4, 5 or F\r\n\n");
do {
Output_c(i++);
My_Delay();
if(i==0){
for(j=1;j<5;j++){
Output_c(0xff);
My_Delay();
Output_c(0x00);
My_Delay();
}
}
} while (TRUE);
}