--- trunk/PIC/main.c 2007/01/31 10:45:20 26 +++ trunk/PIC/main.c 2007/01/31 12:40:37 27 @@ -4,6 +4,7 @@ //Includes #include #include +#include #include "delay.h" #include "i2c.h" @@ -69,7 +70,7 @@ unsigned char global_comm_slipstate; unsigned char global_comm_baudrate; -unsigned char global_lcd_buffer[2][20]; +unsigned char global_lcd_buffer[2][BUFFERLEN]; bit global_led_0; @@ -222,13 +223,13 @@ break; case TSwitch2: if (cmd == CmdRead) - global_comm_buffer[1] = RA4; + global_comm_buffer[1] = !RA4; else global_comm_error = 1; break; case TSwitch3: if (cmd == CmdRead) - global_comm_buffer[1] = RB0; + global_comm_buffer[1] = !RB0; else global_comm_error = 1; break; @@ -453,8 +454,29 @@ return temp; } + + void update_lcd(void) { + static char current_row = 0; + static char current_char = 0; + + if ( current_char >= BUFFERLEN || global_lcd_buffer[current_row][current_char] == 0 ) + { + current_row++; + current_char = 0; + lcd_goto(0x40); + } + + if (current_row >= 2) + { + sprintf(global_lcd_buffer[1], "T=%02d, P=%04d", global_temp, (global_potmeter_hi<<8) | global_potmeter_lo); + lcd_goto(0x00); + current_row = 0; + } + + lcd_putch(global_lcd_buffer[current_row][current_char]); + current_char++; } void reset_baudrate(void) @@ -466,17 +488,22 @@ { case Baud1200: SPBRG = 207; + strcpy(global_lcd_buffer[0],"Baud=1200 "); break; case Baud2400: SPBRG = 103; + strcpy(global_lcd_buffer[0],"Baud=2400 "); break; case Baud9600: SPBRG = 25; + strcpy(global_lcd_buffer[0],"Baud=9600 "); break; case Baud19200: SPBRG = 12; + strcpy(global_lcd_buffer[0],"Baud=19200"); break; default: + strcpy(global_lcd_buffer[0],"Baud=9600 "); SPBRG = 25; // this should not be possible, but default to 9600 anyway } SPEN = 1; // enable the serial port again @@ -504,6 +531,7 @@ // initialisation completed and we are ready to recieve commands - enable serial reception CREN = 1; + strcpy(global_lcd_buffer[0], "Baud=9600 "); while (1) { if (global_comm_ready == 1) @@ -516,6 +544,7 @@ if ( global_reset_baudrate == 1) { reset_baudrate(); + global_reset_baudrate = 0; } RB1 = global_led_0; @@ -532,6 +561,8 @@ global_potmeter_lo = ADRESL; GODONE = 1; //start ny konverering } + + update_lcd(); } }