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

Annotation of /trunk/Embedded/main.lst

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 size: 4334 byte(s)
WIP commit of embedded
1 hedin 82 1: #include <pic18.h>
2     2: #include <stdio.h>
3     3: #include <string.h>
4 hedin 109 4: #include "lcd.h"
5     5: // Delay.h is included inside lcd.c
6 hedin 82 6:
7 hedin 109 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 hedin 112 28: // In this (000) setup, it's only RA0/AN0 that does ad convertion.
29     29: CHS0=0;
30     30: CHS1=0;
31     31: CHS2=0;
32     32:
33     33: //Only AN0 is selected for AD and with Vdd/Vss as limits
34     34: PCFG0=0;
35     35: PCFG1=1;
36     36: PCFG2=1;
37     37: PCFG3=1;
38     38:
39     39: //Result is left justified
40     40: ADFM=0;
41     41:
42     42: //Fire up for A/D converter module
43     43: ADON=1;
44     44: }
45     45:
46     46: void rs232_init(void)
47     47: {
48     48: SPEN = 0; // Serial Port Enable Bit... 0 = disabled
49     49: TRISC6 = 0;
50     50: TRISC7 = 1;
51     51: SYNC = 0; // SYNC switches between async(0) and sync(1) mode.
52     52: SPBRG = 25;
53     53: TXSTA = 0x24;
54     54: RCSTA = 0x90;
55     55: SPEN = 1;
56     56: }
57     57:
58     58: void interrupt_init(void)
59     59: {
60     60: // Assumes that all interrupts default is 0
61     61: PEIE = 1;
62     62: GIE = 1;
63     63: RCIE = 1;
64     64: }
65     65:
66     66: void pic18_io_init(void)
67     67: {
68     68: TRISA0 = 1; // analog input
69     69: TRISB1 = 1; // TRISB1-4 Digital input
70     70: TRISB2 = 1;
71     71: TRISB3 = 1;
72     72: TRISB4 = 1;
73     73: }
74     74:
75     75: void interrupt_recieve_handler(void)
76     76: {
77     77: // Handle recieve inputs...
78     78: }
79     79:
80     80: void interrupt interrupt_handler(void)
81     81: {
82     82: // Finds out what interrupt have been trigged, and starts the respective function.
83     83: if(RCIF == 1)
84     84: {
85     85: interrupt_recieve_handler();
86     86: RCIF = 0;
87     87: }
88     88: }
89     89:
90     90: void update_lcd(void)
91     91: {
92     92: char toLCD0[LCD_LENGTH], toLCD1[LCD_LENGTH];
93     93: char B1[LCD_LENGTH];
94     94: char sprintF[LCD_LENGTH];
95     95: lcd_goto(0x00);
96     96: sprintf(toLCD0, "%s", "Ejdesgaard");
97     97: if(RB1)
98     98: {
99     99: sprintf(B1, "Pwr%s", "True");
100     100: }
101     101: else
102 hedin 109 102: {
103 hedin 112 103: sprintf(B1, "%s", "False");
104 hedin 109 104: }
105 hedin 112 105: lcd_puts(B1);
106     106:
107     107: lcd_goto(0x40);
108     108: sprintf(sprintF,"%08d%08d", global_Pot_Hi, global_Pot_Lo);
109     109: lcd_puts(sprintF);
110 hedin 109 110:
111 hedin 112 111: }
112     112:
113     113: void main()
114     114: {
115     115: /////////////////////////////////////////////
116     116: // Running Init's
117     117:
118     118: // Running init for various components.
119     119: //AD_init();
120     120: ad_init();
121     121: rs232_init();
122     122: pic18_io_init();
123     123: lcd_init(0);
124     124:
125     125: /////////////////////////////////////////////
126     126: // Main loop
127     127:
128     128: while(1)
129     129: {
130     130: // Checking if A/D convertion is done, and save the data in global_Pot_??
131     131: if(GODONE==0)
132     132: {
133     133: global_Pot_Hi = ADRESH;
134     134: global_Pot_Lo = ADRESL;
135     135: GODONE = 1;
136     136: }
137     137:
138     138: update_lcd();
139     139: }
140     140: }

  ViewVC Help
Powered by ViewVC 1.1.20