--- trunk/Embedded/main.lst 2007/11/30 16:05:11 111 +++ trunk/Embedded/main.lst 2007/11/30 16:07:03 112 @@ -25,120 +25,116 @@ 25: ADCS2 = 0; 26: 27: //Select AN0/RA0 for AD source - 28: CHS0=0; - 29: CHS1=0; - 30: CHS2=0; - 31: - 32: //Only AN0 is selected for AD and with Vdd/Vss as limits - 33: PCFG0=0; - 34: PCFG1=1; - 35: PCFG2=1; - 36: PCFG3=1; - 37: - 38: //Result is right justified - 39: ADFM=1; - 40: - 41: //Fire up for A/D converter module - 42: ADON=1; - 43: } - 44: - 45: void rs232_init(void) - 46: { - 47: SPEN = 0; // Serial Port Enable Bit... 0 = disabled - 48: TRISC6 = 0; - 49: TRISC7 = 1; - 50: SYNC = 0; // SYNC switches between async(0) and sync(1) mode. - 51: SPBRG = 25; - 52: TXSTA = 0x24; - 53: RCSTA = 0x90; - 54: SPEN = 1; - 55: } - 56: - 57: void interrupt_init(void) - 58: { - 59: // Assumes that all interrupts default is 0 - 60: PEIE = 1; - 61: GIE = 1; - 62: RCIE = 1; - 63: } - 64: - 65: void pic18_io_init(void) - 66: { - 67: TRISA0 = 1; // analog input - 68: TRISB1 = 1; // TRISB1-4 Digital input - 69: TRISB2 = 1; - 70: TRISB3 = 1; - 71: TRISB4 = 1; - 72: } - 73: - 74: void interrupt_recieve_handler(void) - 75: { - 76: // Handle recieve inputs... - 77: } - 78: - 79: void interrupt interrupt_handler(void) - 80: { - 81: // Finds out what interrupt have been trigged, and starts the respective function. - 82: if(RCIF == 1) - 83: { - 84: interrupt_recieve_handler(); - 85: RCIF = 0; - 86: } - 87: } - 88: - 89: void update_lcd(void) - 90: { - 91: int i = 0, horizontal = 0, vertical = 0; - 92: char alfa[2][LCD_LENGTH]; - 93: - 94: - 95: static char current_row = 0; - 96: static char current_char = 0; - 97: char toLCD0[LCD_LENGTH], toLCD1[LCD_LENGTH]; - 98: char B1[16]; - 99: lcd_goto(0x00); - 100: sprintf(toLCD0, "%s", "Ejdesgaard"); - 101: if(RB1) + 28: // In this (000) setup, it's only RA0/AN0 that does ad convertion. + 29: CHS0=0; + 30: CHS1=0; + 31: CHS2=0; + 32: + 33: //Only AN0 is selected for AD and with Vdd/Vss as limits + 34: PCFG0=0; + 35: PCFG1=1; + 36: PCFG2=1; + 37: PCFG3=1; + 38: + 39: //Result is left justified + 40: ADFM=0; + 41: + 42: //Fire up for A/D converter module + 43: ADON=1; + 44: } + 45: + 46: void rs232_init(void) + 47: { + 48: SPEN = 0; // Serial Port Enable Bit... 0 = disabled + 49: TRISC6 = 0; + 50: TRISC7 = 1; + 51: SYNC = 0; // SYNC switches between async(0) and sync(1) mode. + 52: SPBRG = 25; + 53: TXSTA = 0x24; + 54: RCSTA = 0x90; + 55: SPEN = 1; + 56: } + 57: + 58: void interrupt_init(void) + 59: { + 60: // Assumes that all interrupts default is 0 + 61: PEIE = 1; + 62: GIE = 1; + 63: RCIE = 1; + 64: } + 65: + 66: void pic18_io_init(void) + 67: { + 68: TRISA0 = 1; // analog input + 69: TRISB1 = 1; // TRISB1-4 Digital input + 70: TRISB2 = 1; + 71: TRISB3 = 1; + 72: TRISB4 = 1; + 73: } + 74: + 75: void interrupt_recieve_handler(void) + 76: { + 77: // Handle recieve inputs... + 78: } + 79: + 80: void interrupt interrupt_handler(void) + 81: { + 82: // Finds out what interrupt have been trigged, and starts the respective function. + 83: if(RCIF == 1) + 84: { + 85: interrupt_recieve_handler(); + 86: RCIF = 0; + 87: } + 88: } + 89: + 90: void update_lcd(void) + 91: { + 92: char toLCD0[LCD_LENGTH], toLCD1[LCD_LENGTH]; + 93: char B1[LCD_LENGTH]; + 94: char sprintF[LCD_LENGTH]; + 95: lcd_goto(0x00); + 96: sprintf(toLCD0, "%s", "Ejdesgaard"); + 97: if(RB1) + 98: { + 99: sprintf(B1, "Pwr%s", "True"); + 100: } + 101: else 102: { - 103: sprintf(B1, "%s", "True"); + 103: sprintf(B1, "%s", "False"); 104: } - 105: else - 106: { - 107: sprintf(B1, "%s", "False"); - 108: } - 109: lcd_puts(B1); + 105: lcd_puts(B1); + 106: + 107: lcd_goto(0x40); + 108: sprintf(sprintF,"%08d%08d", global_Pot_Hi, global_Pot_Lo); + 109: lcd_puts(sprintF); 110: - 111: lcd_goto(0x40); - 112: // sprintf(toLCD1, "%s", "Test"); - 113: lcd_puts("Test1"); - 114: - 115: } - 116: - 117: void main() - 118: { - 119: ///////////////////////////////////////////// - 120: // Running Init's - 121: - 122: // Running init for various components. - 123: //AD_init(); - 124: ad_init(); - 125: rs232_init(); - 126: pic18_io_init(); - 127: lcd_init(0); - 128: - 129: ///////////////////////////////////////////// - 130: // Main loop - 131: - 132: while(1) - 133: { - 134: // Checking if A/D convertion is done, and save the data in global_Pot_?? - 135: if(GODONE==0) - 136: { - 137: global_Pot_Hi = ADRESH; - 138: global_Pot_Lo = ADRESL; - 139: GODONE = 0; - 140: } - 141: - 142: update_lcd(); - 143: } - 144: } + 111: } + 112: + 113: void main() + 114: { + 115: ///////////////////////////////////////////// + 116: // Running Init's + 117: + 118: // Running init for various components. + 119: //AD_init(); + 120: ad_init(); + 121: rs232_init(); + 122: pic18_io_init(); + 123: lcd_init(0); + 124: + 125: ///////////////////////////////////////////// + 126: // Main loop + 127: + 128: while(1) + 129: { + 130: // Checking if A/D convertion is done, and save the data in global_Pot_?? + 131: if(GODONE==0) + 132: { + 133: global_Pot_Hi = ADRESH; + 134: global_Pot_Lo = ADRESL; + 135: GODONE = 1; + 136: } + 137: + 138: update_lcd(); + 139: } + 140: }