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

Contents of /trunk/Embedded/main.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 112 - (show annotations) (download)
Fri Nov 30 16:07:03 2007 UTC (16 years, 5 months ago) by hedin
File MIME type: text/plain
File size: 2443 byte(s)
WIP commit of embedded
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 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", "False");
104 }
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 }
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 }

  ViewVC Help
Powered by ViewVC 1.1.20