// Aufgabe 3 Schrittmotor mit Halbschritten    -    Verzögerungszeit an AD-Wandler einlesen

 

#include <reg517.h>

#include <stdio.h>

 

void wait1ms(int anzms);

 

int main ()

{

float wert1,wert2,wert3;

ADEX = 0;                            // Interner Start

ADM = 0;                                          // Einmalige Wandlung

while (1)

        {

        ADCON1 = 0;               // Kanal 0

        DAPR = 0;                                // interne Referenz:0..5V; Start

       while (BSY);

       wert1=ADDAT*5.0/255;

       ADCON1 = 1;                // Kanal 0

       DAPR = 0;                                 // interne Referenz:0..5V; Start

       while (BSY);

       wert2=ADDAT*5.0/255;

       ADCON1 = 2;                // Kanal 0

       DAPR = 0;                                 // interne Referenz:0..5V; Start

      while (BSY);

      wert3=ADDAT*5.0/255;

      printf ("\nKanal 0 : %f  Kanal 1 : %f  Kanal 2 : %f",wert1,wert2,wert3);

      wait1ms(1000);

      }

           

}

           

void wait1ms (int anzms)

{

int b,k;

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

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

}     

           

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

//Aufgabe 6 (Temperatursensor)

 

#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++);

}  

 

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

           

// Aufgabe 1 Blatt2

 

#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=2;                         // Kanal 2

             

 while (1)

            {

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

 

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

            fSpannung=ADDAT/255.0*5.0;

            printf ("\nKanal 2 : %.2f V    ",fSpannung);

            if (fSpannung<=1.0)

                        {

                        printf ("Grenzwert unterschritten !");

                        }

                       if (fSpannung>=2.0)

                        {

                        printf ("Grenzwert ueberschritten !");

                        }

                       

             wait1ms(500);

             }  

}

           

void wait1ms (int anzms)

{

int i,k;

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

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

}     

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

// Aufgabe 2 Blatt 2

 

#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

 

while (1)

         { 

ADCON1=2;                          // Kanal 2

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

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

           fSpannung=ADDAT/255.0*5.0;

           printf ("\nK2 : %.2f V    ",fSpannung);

           if (fSpannung<=1.0)

               {

               printf ("< 1.0 V !  ");

               }

               if (fSpannung>=2.0)

                 {

                 printf ("> 2.0 V !  ");

                 }

            ADCON1=5;     // Kanal 5

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

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

           fSpannung=ADDAT/255.0*5.0;

           printf ("\nK5 : %.2f V    ",fSpannung);

           if (fSpannung<=2.5)

                        {

                        printf ("< 2.5 V !  ");

                        }

                  if (fSpannung>=3.5)

                        {

                        printf ("> 3.5 V !  ");

                        }

            ADCON1=7;     // Kanal 7

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

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

                  fSpannung=ADDAT/255.0*5.0;

                  printf ("\nK7 : %.2f V    ",fSpannung);

                  if (fSpannung<=0.75)

                        {

                        printf ("< 0.75 V !  ");

                        }

                      if (fSpannung>=1.25)

                        {

                        printf ("> 1.25 V !  ");

                        }

                       

                       wait1ms(500);

                       }  

}

           

void wait1ms (int anzms)

{

int i,k;

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

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

}