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

Annotation of /trunk/Embedded/main.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 109 - (hide annotations) (download)
Fri Nov 30 13:47:05 2007 UTC (16 years, 6 months ago) by hedin
File MIME type: text/plain
File size: 2521 byte(s)
WIP commit
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     //Result is right justified
40     ADFM=1;
41    
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     {
92     int i = 0, horizontal = 0, vertical = 0;
93     char alfa[2][LCD_LENGTH];
94 hedin 82
95 hedin 109
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 hedin 82
118     void main()
119     {
120 hedin 109 /////////////////////////////////////////////
121     // Running Init's
122    
123     // Running init for various components.
124     //AD_init();
125     ad_init();
126 hedin 82 rs232_init();
127     pic18_io_init();
128 hedin 109 lcd_init(0);
129    
130     /////////////////////////////////////////////
131     // Main loop
132    
133     while(1)
134 hedin 100 {
135 hedin 109 // 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 hedin 100
143 hedin 109 update_lcd();
144 hedin 100 }
145 hedin 82 }

  ViewVC Help
Powered by ViewVC 1.1.20