// Aufgabe 3 Blatt 2

 

#include <reg517.h>

#include <stdio.h>

 

void wait1ms(int anzms);

 

int main ()      

{

             

 float fTemperaturSoll,fTemperaturIst;

 int i;

 P5=0x00;

 ADEX=0;                  // Interner Start

 ADM=0;        // Einmalige Wandlung

             

 while (1)

            {

                           //Einlesen der Führungsgröße (Sollwert w)

            ADCON1=1;             // Kanal 1

            DAPR=0x0;               // *** Starte Wandlungsvorgang, Lupe aus ***

            while(BSY);               // Warte, bis Wandlung abgeschlossen ist.

            fTemperaturSoll=ADDAT/255.0*50.0;     

                                   

                                    //Einlesen der Regelgröße (Istwert x)

            ADCON1=0;      // Kanal 0

            DAPR=0x0;               // *** Starte Wandlungsvorgang, Lupe aus ***

            while (BSY);  // Warte, bis Wandlung abgeschlossen ist.

            fTemperaturIst=ADDAT/255.0*50.0;

            if (fTemperaturIst<=fTemperaturSoll)

                        {

printf ("\nSollwert : %.2f °C    Istwert : %.2f °C    Heizung an !",fTemperaturSoll,fTemperaturIst);

                        P50=1;

                        }

                        if (fTemperaturIst>fTemperaturSoll)

                        {

printf ("\nSollwert : %.2f °C    Istwert : %.2f °C    Heizung aus !%i",fTemperaturSoll,fTemperaturIst);

                        P50=0;

                        }

            wait1ms(250);

               }  

            }

           

void wait1ms (int anzms)

{

int i,k;

for(k=0;k<anzms;k++)

for(i=0;i<480;i++);

}     

*************************************************************************************************

// Aufgabe 4 Blatt 2

 

#include <reg517.h>

#include <stdio.h>

 

void wait1ms(int anzms);

int main ()      

{

             

float fTemperaturSoll,fTemperaturIst;

int i;

P5=0x00;

ADEX=0;                   // Interner Start

ADM=0;        // Einmalige Wandlung

             

 while (1)

            {

                           //Einlesen der Führungsgröße (Sollwert w)

            ADCON1=1;             // Kanal 1

            DAPR=0x0;               // *** Starte Wandlungsvorgang, Lupe aus ***

            while(BSY);               // Warte, bis Wandlung abgeschlossen ist.

            fTemperaturSoll=ADDAT/255.0*50.0;     

                                  

                        //Einlesen der Regelgröße (Istwert x)

            ADCON1=0;      // Kanal 0

            DAPR=0x0;               // *** Starte Wandlungsvorgang, Lupe aus ***

            while (BSY);  // Warte, bis Wandlung abgeschlossen ist.

           fTemperaturIst=ADDAT/255.0*50.0;

           if (fTemperaturIst<=fTemperaturSoll-0.25)

                        {

printf ("\nSollwert : %.2f °C    Istwert : %.2f °C    Heizung an !",fTemperaturSoll,fTemperaturIst);

                        P50=1;

                        }

                 if (fTemperaturIst>fTemperaturSoll+0.25)

                        {

printf ("\nSollwert : %.2f °C    Istwert : %.2f °C    Heizung aus !",fTemperaturSoll,fTemperaturIst);

                        P50=0;

                        }

                  wait1ms(250);

               }  

            }

void wait1ms (int anzms)

{

int i,k;

for(k=0;k<anzms;k++)

for(i=0;i<480;i++);

}     

 

// Aufgabe 6 Termometer 0° - 100°

 

#include <reg517.h>

#include <stdio.h>

void wait1ms(int anzms);

 

int main ()      

{

 

 float fSpannung,fTemperatur;

 int i;

 ADEX=0;                  // Interner Start

 ADM=0;        // Einmalige Wandlung

 ADCON1=0;     // Kanal 0

             

 

 while (1)

            {

            DAPR=0xC8;            // Bereich   373 K - 273 K  ~ 3730mV - 2730mV

                                   // Oberer Grenzwert : 3,7500 V ~ 1100 = C

                                   // Unterer Grenzwert : 2,500 V ~ 1000 = 8

                                    // *** Starte Wandlungsvorgang ***

                       

            while (BSY);  // Warte, bis Wandlung abgeschlossen ist.

        fSpannung = (ADDAT * 1.2500/255) + 2.5000;

        fTemperatur=(fSpannung-2.73)*100;

        printf("\rTemperatur : %f ",fTemperatur);

        wait1ms(1000);

        }  

}

           

void wait1ms (int anzms)

{

int i,k;

for(k=0;k<anzms;k++)

for(i=0;i<480;i++);

}