#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)
//#use rs232(baud=9600, xmit=PIN_D0,stream=DUMP)
#include <stdlib.h>
//- CONST ---------------------------------------
const int lenbuffer=32;
const char IExplorer_PETICION[] = "GET / HTTP/1.1\r\n";
const char RRWebServer_Cabecera1[] = "HTTP/1.0 200\r\n";
const char RRWebServer_Cabecera2[] = "Content-Type: text/html\r\n";
const char RRWebServer_Cabecera3[] = "Connection: keep-alive\r\n";
const char RRWebServer_Cabecera4[] = "Content-Length: 1300\r\n";
const char RRWebServer_Cabecera5[] = "\r\n";
const char RRWebServer_HTML_01[] = "<html>\r\n";
const char RRWebServer_HTML_02[] = "<head>\r\n";
const char RRWebServer_HTML_03[] = "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1252\">\r\n";
const char RRWebServer_HTML_04[] = "<title>RRPICWEBSERVER</title>\r\n";
const char RRWebServer_HTML_05[] = "</head>\r\n";
const char RRWebServer_HTML_06[] = "<body background=\"http://picmania.garcia-cuervo.com/images/Fondo_Circuito_Pic.gif\" link=\"#FF0000\" vlink=\"#CC3300\">\r\n";
const char RRWebServer_HTML_07[] = "<hr color=\"#FF0000\" width=\"75%%\">\r\n";
const char RRWebServer_HTML_08[] = "<div align=\"center\">\r\n";
const char RRWebServer_HTML_09[] = "<center>\r\n";
const char RRWebServer_HTML_10[] = "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"border-collapse: collapse\" bordercolor=\"#111111\" width=\"75%%\" id=\"tTitulo\">\r\n";
const char RRWebServer_HTML_11[] = "<tr>\r\n";
const char RRWebServer_HTML_12[] = "<td width=\"100%%\"><font face=\"Verdana\" size=\"5\"><font color=\"#FF0000\"><b>P</b>ic</font>Manía by <font color=\"#FF0000\"><b>R</b>ed</font>raven</font></td>\r\n";
const char RRWebServer_HTML_13[] = "</tr>\r\n";
const char RRWebServer_HTML_14[] = "<tr>\r\n";
const char RRWebServer_HTML_15[] = "<td width=\"100%%\"> </td>\r\n";
const char RRWebServer_HTML_16[] = "</tr>\r\n";
const char RRWebServer_HTML_17[] = "</table>\r\n";
const char RRWebServer_HTML_18[] = "</center>\r\n";
const char RRWebServer_HTML_19[] = "</div>\r\n";
const char RRWebServer_HTML_20[] = "<hr color=\"#FF0000\" width=\"75%%\">\r\n";
const char RRWebServer_HTML_21[] = "<p> </p>\r\n";
const char RRWebServer_HTML_22[] = "<div align=\"center\">\r\n";
const char RRWebServer_HTML_23[] = "<center>\r\n";
const char RRWebServer_HTML_24[] = "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"border-collapse: collapse\" bordercolor=\"#111111\" width=\"75%%\" id=\"tTitulo\">\r\n";
const char RRWebServer_HTML_25[] = "<tr>\r\n";
const char RRWebServer_HTML_26[] = "<td width=\"100%%\"> </td>\r\n";
const char RRWebServer_HTML_27[] = "</tr>\r\n";
const char RRWebServer_HTML_28[] = "<tr>\r\n";
const char RRWebServer_HTML_29[] = "<td width=\"100%%\"><b><font face=\"Verdana\" size=\"2\">RRBOARD2 WEB PIC SERVER</font></b><br> </td>\r\n";
const char RRWebServer_HTML_30[] = "</tr>\r\n";
const char RRWebServer_HTML_31[] = "<tr>\r\n";
const char RRWebServer_HTML_32[] = "<td width=\"100%%\"><font face=\"Verdana\" size=\"2\">Directamente desde un 18F4550 hasta tu Explorador</font></td>\r\n";
const char RRWebServer_HTML_33[] = "</tr>\r\n";
const char RRWebServer_HTML_34[] = "<tr>\r\n";
const char RRWebServer_HTML_35[] = "<td width=\"100%%\"> </td>\r\n";
const char RRWebServer_HTML_36[] = "</tr>\r\n";
const char RRWebServer_HTML_37[] = "</table>\r\n";
const char RRWebServer_HTML_38[] = "</center>\r\n";
const char RRWebServer_HTML_39[] = "</div>\r\n";
const char RRWebServer_HTML_40[] = "<p> </p>\r\n";
const char RRWebServer_HTML_41[] = "<hr color=\"#FF0000\" width=\"75%%\">\r\n";
const char RRWebServer_HTML_42[] = "</body>\r\n";
const char RRWebServer_HTML_43[] = "</html>\r\n";
//- RAM -----------------------------------------
char rec=' ';
char recbuffer[lenbuffer];
int nextrec=0;
char xcommand[lenbuffer];
int pcommand=0;
//- INTERRUPCION RECEPCION USART ----------------
#int_rda
void serial_isr() {
rec=0x00;
if(kbhit()){
if(rec!=0x00){
recbuffer[nextrec++]=rec;
if(nextrec==lenbuffer){
nextrec=0;
}
if(rec=='\n'){
pcommand=1;
}
rec=0x00;
}
}
}
void limpia_recbuffer(void){
int i;
for(i=0;i<lenbuffer;i++){
recbuffer[i]='\0';
}
}
void main() {
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);
enable_interrupts(global);
enable_interrupts(int_rda);
output_e(0x00);
limpia_recbuffer();
//delay_ms(125);
//fprintf(DUMP,"\r\n\RRBOARD2 on Ethernet\r\n\n");
delay_ms(125);
do {
if(pcommand==1){
pcommand=0;
strcpy(xcommand
,IExplorer_PETICION
); delay_ms(25);
printf(RRWebServer_Cabecera1
); delay_ms
(20); printf(RRWebServer_Cabecera2
); delay_ms
(15); printf(RRWebServer_Cabecera3
); delay_ms
(15); printf(RRWebServer_Cabecera4
); delay_ms
(15); printf(RRWebServer_Cabecera5
); delay_ms
(20); printf(RRWebServer_HTML_01
); delay_ms
(15); printf(RRWebServer_HTML_02
); delay_ms
(15); printf(RRWebServer_HTML_03
); delay_ms
(15); printf(RRWebServer_HTML_04
); delay_ms
(15); printf(RRWebServer_HTML_05
); delay_ms
(15); printf(RRWebServer_HTML_06
); delay_ms
(15); printf(RRWebServer_HTML_07
); delay_ms
(15); printf(RRWebServer_HTML_08
); delay_ms
(15); printf(RRWebServer_HTML_09
); delay_ms
(15); printf(RRWebServer_HTML_10
); delay_ms
(15); printf(RRWebServer_HTML_11
); delay_ms
(15); printf(RRWebServer_HTML_12
); delay_ms
(15); printf(RRWebServer_HTML_13
); delay_ms
(15); printf(RRWebServer_HTML_14
); delay_ms
(15); printf(RRWebServer_HTML_15
); delay_ms
(15); printf(RRWebServer_HTML_16
); delay_ms
(15); printf(RRWebServer_HTML_17
); delay_ms
(15); printf(RRWebServer_HTML_18
); delay_ms
(15); printf(RRWebServer_HTML_19
); delay_ms
(15); printf(RRWebServer_HTML_20
); delay_ms
(15); printf(RRWebServer_HTML_21
); delay_ms
(15); printf(RRWebServer_HTML_22
); delay_ms
(15); printf(RRWebServer_HTML_23
); delay_ms
(15); printf(RRWebServer_HTML_24
); delay_ms
(15); printf(RRWebServer_HTML_25
); delay_ms
(15); printf(RRWebServer_HTML_26
); delay_ms
(15); printf(RRWebServer_HTML_27
); delay_ms
(15); printf(RRWebServer_HTML_28
); delay_ms
(15); printf(RRWebServer_HTML_29
); delay_ms
(15); printf(RRWebServer_HTML_30
); delay_ms
(15); printf(RRWebServer_HTML_31
); delay_ms
(15); printf(RRWebServer_HTML_32
); delay_ms
(15); printf(RRWebServer_HTML_33
); delay_ms
(15); printf(RRWebServer_HTML_34
); delay_ms
(15); printf(RRWebServer_HTML_35
); delay_ms
(15); printf(RRWebServer_HTML_36
); delay_ms
(15); printf(RRWebServer_HTML_37
); delay_ms
(15); printf(RRWebServer_HTML_38
); delay_ms
(15); printf(RRWebServer_HTML_39
); delay_ms
(15); printf(RRWebServer_HTML_40
); delay_ms
(15); printf(RRWebServer_HTML_41
); delay_ms
(15); printf(RRWebServer_HTML_42
); delay_ms
(15); printf(RRWebServer_HTML_43
); delay_ms
(15); output_e(0x01);
delay_ms(100);
output_e(0x00);
delay_ms(100);
}
limpia_recbuffer();
}
} while (TRUE);
}