/[H9]/trunk/Embedded/main.lst
ViewVC logotype

Contents of /trunk/Embedded/main.lst

Parent Directory Parent Directory | Revision Log Revision Log


Revision 109 - (show annotations) (download)
Fri Nov 30 13:47:05 2007 UTC (16 years, 5 months ago) by hedin
File size: 4384 byte(s)
WIP commit
1 1: #include <pic18.h>
2 2: #include <stdio.h>
3 3: #include <string.h>
4 4: #include "lcd.h"
5 5: // Delay.h is included inside lcd.c
6 6:
7 7: #define LCD_LENGTH 16
8 8: #define LCD_ROWS 2
9 9:
10 10:
11 11: unsigned char global_Pot_Hi;
12 12: unsigned char global_Pot_Lo;
13 13: unsigned char global_LCD_Buffer[LCD_ROWS][LCD_LENGTH];
14 14: /*void AD_init(void)
15 15: {
16 16: ADON = 1;
17 17: }
18 18: */
19 19: // Nicked from H7
20 20: void ad_init(void)
21 21: {
22 22: // AD Conversion clock
23 23: ADCS0 = 0;
24 24: ADCS1 = 0;
25 25: ADCS2 = 0;
26 26:
27 27: //Select AN0/RA0 for AD source
28 28: CHS0=0;
29 29: CHS1=0;
30 30: CHS2=0;
31 31:
32 32: //Only AN0 is selected for AD and with Vdd/Vss as limits
33 33: PCFG0=0;
34 34: PCFG1=1;
35 35: PCFG2=1;
36 36: PCFG3=1;
37 37:
38 38: //Result is right justified
39 39: ADFM=1;
40 40:
41 41: //Fire up for A/D converter module
42 42: ADON=1;
43 43: }
44 44:
45 45: void rs232_init(void)
46 46: {
47 47: SPEN = 0; // Serial Port Enable Bit... 0 = disabled
48 48: TRISC6 = 0;
49 49: TRISC7 = 1;
50 50: SYNC = 0; // SYNC switches between async(0) and sync(1) mode.
51 51: SPBRG = 25;
52 52: TXSTA = 0x24;
53 53: RCSTA = 0x90;
54 54: SPEN = 1;
55 55: }
56 56:
57 57: void interrupt_init(void)
58 58: {
59 59: // Assumes that all interrupts default is 0
60 60: PEIE = 1;
61 61: GIE = 1;
62 62: RCIE = 1;
63 63: }
64 64:
65 65: void pic18_io_init(void)
66 66: {
67 67: TRISA0 = 1; // analog input
68 68: TRISB1 = 1; // TRISB1-4 Digital input
69 69: TRISB2 = 1;
70 70: TRISB3 = 1;
71 71: TRISB4 = 1;
72 72: }
73 73:
74 74: void interrupt_recieve_handler(void)
75 75: {
76 76: // Handle recieve inputs...
77 77: }
78 78:
79 79: void interrupt interrupt_handler(void)
80 80: {
81 81: // Finds out what interrupt have been trigged, and starts the respective function.
82 82: if(RCIF == 1)
83 83: {
84 84: interrupt_recieve_handler();
85 85: RCIF = 0;
86 86: }
87 87: }
88 88:
89 89: void update_lcd(void)
90 90: {
91 91: int i = 0, horizontal = 0, vertical = 0;
92 92: char alfa[2][LCD_LENGTH];
93 93:
94 94:
95 95: static char current_row = 0;
96 96: static char current_char = 0;
97 97: char toLCD0[LCD_LENGTH], toLCD1[LCD_LENGTH];
98 98: char B1[16];
99 99: lcd_goto(0x00);
100 100: sprintf(toLCD0, "%s", "Ejdesgaard");
101 101: if(RB1)
102 102: {
103 103: sprintf(B1, "%s", "True");
104 104: }
105 105: else
106 106: {
107 107: sprintf(B1, "%s", "False");
108 108: }
109 109: lcd_puts(B1);
110 110:
111 111: lcd_goto(0x40);
112 112: // sprintf(toLCD1, "%s", "Test");
113 113: lcd_puts("Test1");
114 114:
115 115: }
116 116:
117 117: void main()
118 118: {
119 119: /////////////////////////////////////////////
120 120: // Running Init's
121 121:
122 122: // Running init for various components.
123 123: //AD_init();
124 124: ad_init();
125 125: rs232_init();
126 126: pic18_io_init();
127 127: lcd_init(0);
128 128:
129 129: /////////////////////////////////////////////
130 130: // Main loop
131 131:
132 132: while(1)
133 133: {
134 134: // Checking if A/D convertion is done, and save the data in global_Pot_??
135 135: if(GODONE==0)
136 136: {
137 137: global_Pot_Hi = ADRESH;
138 138: global_Pot_Lo = ADRESL;
139 139: GODONE = 0;
140 140: }
141 141:
142 142: update_lcd();
143 143: }
144 144: }

  ViewVC Help
Powered by ViewVC 1.1.20