1 | **********************************************************************************************/
|
2 | // Include Dateien
|
3 | /**********************************************************************************************/
|
4 |
|
5 | #include <p18cxxx.h> // Für den PIC - wird autom. erkannt
|
6 | #include "delays.h" // Für die Warteschleife
|
7 | #include "RP6.X/lcd.h"
|
8 | #include "RP6.X/adu.h"
|
9 | #include "../h/i2c.h"
|
10 |
|
11 | /**********************************************************************************************/
|
12 | // Konfiguration
|
13 | /**********************************************************************************************/
|
14 |
|
15 | #pragma config FOSC = HS // Taktbereich auswählen
|
16 | #pragma config PWRT = ON // Power On Timer An
|
17 | #pragma config BOR = OFF // Brown Out Reset Aus
|
18 | #pragma config WDT = OFF // Watchdog Timer Aus
|
19 | #pragma config LVP = OFF // Low Voltage Programming Disable
|
20 | #pragma config PBADEN = OFF //
|
21 | #pragma config VREGEN = OFF //
|
22 | #pragma config MCLRE = ON // Master Clear Reset An
|
23 |
|
24 | /**********************************************************************************************/
|
25 | // Globale Variablen deklarieren
|
26 | /**********************************************************************************************/
|
27 |
|
28 | unsigned char i;
|
29 | unsigned char Akku[3];
|
30 |
|
31 | /**********************************************************************************************/
|
32 | // Hauptprogramm
|
33 | /**********************************************************************************************/
|
34 |
|
35 | void main(void)
|
36 | {
|
37 | unsigned char i;
|
38 |
|
39 | for(i=0;i<3;i++)Akku[i]=0;
|
40 |
|
41 | // Konfiguration
|
42 | LATA=LATB=LATC=0; //
|
43 | TRISA = 0x01; // PA1 --> Input Rest --> Output
|
44 | TRISB = 0x00; // Alle --> Output
|
45 | TRISC = 0x00; // Alle --> Output
|
46 |
|
47 | Setup_ADC(); // AD Wandler Konfigurieren
|
48 | Init_LCD(); // LCD Initialisieren
|
49 | OpenI2C(MASTER,SLEW_OFF); // IIC Bus konfigurieren
|
50 | SSPADD=19; // 100kHz=8MHz/4*(SSPADD+1)
|
51 |
|
52 | while(1)
|
53 | {
|
54 | //I2C
|
55 | IdleI2C();
|
56 | StartI2C(); //Start I2C
|
57 | WriteI2C(0x0A|0x00); //Adresse senden (nächster Befehl schreibend)
|
58 | while(WriteI2C(0x15)!=0); //Schreiben
|
59 | IdleI2C(); //
|
60 | RestartI2C(); //
|
61 | IdleI2C(); //
|
62 | WriteI2C(0x0A|0x01); //Adresse senden (nächster Befehl lesend)
|
63 | getsI2C(Akku,2); //Lesen und Ergebnis in Akku
|
64 | Akku[2]='\0'; //Abschluss '0'
|
65 | NotAckI2C(); //Not acknowledge
|
66 | while( SSPCON2bits.ACKEN!=0); //
|
67 | CloseI2C(); //I2C beenden
|
68 |
|
69 | //ADC
|
70 | Read_ADC(0); //Analog - Digital Pin auslesen
|
71 | }
|
72 | }
|