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  | }
  |