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