/*Schrittmotor Halbschritt mit AD-Wandler01

Aufgabe1.ccp

*/

 

#include <stdio.h>

#include <reg517.h>

 

void wait1ms(unsigned int time);               //Prototyp Wartezeit

 

void main()                         //Anfang Hauptprogramm

{

int rechts[8];

int links[8];

int wartezeit=150;

int i;

 

rechts[0]=0x05;

rechts[1]=0x01;

rechts[2]=0x09;

rechts[3]=0x08;

rechts[4]=0x0a;

rechts[5]=0x02;

rechts[6]=0x06;

rechts[7]=0x04;

 

links[0]=0x04;

links[1]=0x06;

links[2]=0x02;

links[3]=0x0a;

links[4]=0x08;

links[5]=0x09;

links[6]=0x01;

links[7]=0x05;

 

ADM = 0;

ADEX = 0;

ADCON1 = 0;

 

while(1){

            DAPR = 0x00;

            while(BSY);

            if (P50==0){

               for(i=0;i<=7;i++){

                   P4=rechts[i];

                   wait1ms(ADDAT);

                   }   

               }

            else  {

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

                         {

                        P4=links[i];

                        wait1ms(ADDAT);

                                   }

                        }                                 

            }          

}                                            //Ende Hauptprogramm

 

void wait1ms(unsigned int time)     //Funktion Wartezeit

{

            int k,i;

            for(k=0;k<time;k++)              //Schleife Anzahl ms

            {

                        for(i=0;i<480;i++);                                        //Schleife läuft 1ms

            }

}          

 

 

 

/*Analog Digitalwandler

 Aufgabe02.ccp

*/

 

#include <stdio.h>

#include <reg517.h>

 

void wait1ms(unsigned int time);      //Prototyp Wartezeit

void main(void){                              //Anfang Hauptprogramm

 

float fvolt;

 ADM = 1;

 ADEX = 0;

 ADCON1 = 2;

 

while(1){

 DAPR = 0x00;

             while(BSY);

             fvolt = ADDAT*5.0/255;

             printf("\n Ausgangswert %f",fvolt);

 wait1ms(1000);

        }

            }

                                                        // Funktion Wartezet

void wait1ms(unsigned int time){     //Funktion Wartezeit

int k,i;

       for(k=0;k<time;k++){                 //Schleife Anzahl ms

              for(i=0;i<4;i++);                     //Schleife läuft 1ms

            }

    }