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

Contents of /trunk/Embedded/main.c

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 MIME type: text/plain
File size: 2521 byte(s)
WIP commit
1 #include <pic18.h>
2 #include <stdio.h>
3 #include <string.h>
4 #include "lcd.h"
5 // Delay.h is included inside lcd.c
6
7 #define LCD_LENGTH 16
8 #define LCD_ROWS 2
9
10
11 unsigned char global_Pot_Hi;
12 unsigned char global_Pot_Lo;
13 unsigned char global_LCD_Buffer[LCD_ROWS][LCD_LENGTH];
14 /*void AD_init(void)
15 {
16 ADON = 1;
17 }
18 */
19 // Nicked from H7
20 void ad_init(void)
21 {
22 // AD Conversion clock
23 ADCS0 = 0;
24 ADCS1 = 0;
25 ADCS2 = 0;
26
27 //Select AN0/RA0 for AD source
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 right justified
40 ADFM=1;
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 int i = 0, horizontal = 0, vertical = 0;
93 char alfa[2][LCD_LENGTH];
94
95
96 static char current_row = 0;
97 static char current_char = 0;
98 char toLCD0[LCD_LENGTH], toLCD1[LCD_LENGTH];
99 char B1[16];
100 lcd_goto(0x00);
101 sprintf(toLCD0, "%s", "Ejdesgaard");
102 if(RB1)
103 {
104 sprintf(B1, "Pwr%s", "True");
105 }
106 else
107 {
108 sprintf(B1, "%s", "False");
109 }
110 lcd_puts(B1);
111
112 lcd_goto(0x40);
113 // sprintf(toLCD1, "%s", "Test");
114 lcd_puts("Test1");
115
116 }
117
118 void main()
119 {
120 /////////////////////////////////////////////
121 // Running Init's
122
123 // Running init for various components.
124 //AD_init();
125 ad_init();
126 rs232_init();
127 pic18_io_init();
128 lcd_init(0);
129
130 /////////////////////////////////////////////
131 // Main loop
132
133 while(1)
134 {
135 // Checking if A/D convertion is done, and save the data in global_Pot_??
136 if(GODONE==0)
137 {
138 global_Pot_Hi = ADRESH;
139 global_Pot_Lo = ADRESL;
140 GODONE = 0;
141 }
142
143 update_lcd();
144 }
145 }

  ViewVC Help
Powered by ViewVC 1.1.20