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

Annotation of /trunk/Embedded/main.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 112 - (hide annotations) (download)
Fri Nov 30 16:07:03 2007 UTC (16 years, 6 months ago) by hedin
File MIME type: text/plain
File size: 2443 byte(s)
WIP commit of embedded
1 hedin 82 #include <pic18.h>
2     #include <stdio.h>
3     #include <string.h>
4     #include "lcd.h"
5 hedin 109 // Delay.h is included inside lcd.c
6 hedin 82
7 hedin 109 #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 hedin 100 {
16     ADON = 1;
17     }
18 hedin 109 */
19     // Nicked from H7
20     void ad_init(void)
21     {
22     // AD Conversion clock
23     ADCS0 = 0;
24     ADCS1 = 0;
25     ADCS2 = 0;
26 hedin 82
27 hedin 109 //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 hedin 112 //Result is left justified
40     ADFM=0;
41 hedin 109
42     //Fire up for A/D converter module
43     ADON=1;
44     }
45    
46 hedin 82 void rs232_init(void)
47     {
48     SPEN = 0; // Serial Port Enable Bit... 0 = disabled
49     TRISC6 = 0;
50     TRISC7 = 1;
51 hedin 100 SYNC = 0; // SYNC switches between async(0) and sync(1) mode.
52 hedin 82 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 hedin 109 TRISA0 = 1; // analog input
69     TRISB1 = 1; // TRISB1-4 Digital input
70 hedin 82 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 hedin 109 // Finds out what interrupt have been trigged, and starts the respective function.
83 hedin 82 if(RCIF == 1)
84     {
85     interrupt_recieve_handler();
86     RCIF = 0;
87     }
88     }
89 hedin 109
90     void update_lcd(void)
91 hedin 112 {
92 hedin 109 char toLCD0[LCD_LENGTH], toLCD1[LCD_LENGTH];
93 hedin 112 char B1[LCD_LENGTH];
94     char sprintF[LCD_LENGTH];
95 hedin 109 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 hedin 112 sprintf(sprintF,"%08d%08d", global_Pot_Hi, global_Pot_Lo);
109     lcd_puts(sprintF);
110 hedin 109
111     }
112 hedin 82
113     void main()
114     {
115 hedin 109 /////////////////////////////////////////////
116     // Running Init's
117    
118     // Running init for various components.
119     //AD_init();
120     ad_init();
121 hedin 82 rs232_init();
122     pic18_io_init();
123 hedin 109 lcd_init(0);
124    
125     /////////////////////////////////////////////
126     // Main loop
127    
128     while(1)
129 hedin 100 {
130 hedin 109 // 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 hedin 112 GODONE = 1;
136 hedin 109 }
137 hedin 100
138 hedin 109 update_lcd();
139 hedin 100 }
140 hedin 82 }

  ViewVC Help
Powered by ViewVC 1.1.20