#include <reg517.h>
#include <stdio.h>
#include "lcd.h"
float speed;
void messung (void);
void takt (void);
int t2low,t2high;
int a;
void INTTIM0 (void) interrupt 1
{
t2low = TL2;
t2high = TH2;
TH2 = 0;
TL2 = 0;
TH0 = -39;
TL0 = 0;
}
void messung (void)
{
TMOD = 0x01; /**** Timer 0 Mode 1 16 Bit ****/
TH0 = -39; /**** Vorgesetzter Wert, alle 100ms Int.****/
TL0 = 0; /**** Vorgesetzter Wert ****/
ET0 = 1; /**** Timer 0 Interrupt enabled ****/
T2CON = 0x02; /**** Timer 2 Counter Einstellung ****/
TH2 = 0; /**** Timer 2 Startwert High Byte ****/
TL2 = 0; /**** Timer 2 Startwert Low Byte ****/
IT1 = 1; /**** Externer Interrupt 1 negative Flanke */
EX1 = 1; /**** Externer Interrupt 1 enabled ****/
EAL = 1; /**** Interrupt allgemein erlaubt ****/
TR0 = 1; /**** Einschalten der Zeitschleife ****/
while (1)
{
speed = (41.66 *( (float)t2low + 256.0 * (float)t2high ));
ptintf("F=%f",speed);
}
}
void takt (void)
{
a=300;
CTREL = 65535-a; /*Reloadwert*/
CTCON = 0; /*fz=6Mhz*/
CMSEL = 0x80; /*Auswahl Port4.7*/
CMEN = 0x80; /*Freigabe Port4.7*/
while(1)
{
CM7 = 65535-a/2;
}
}
main()
{
messung();
takt();
}
Arbeite mit dem µ-controller 80C51 Entwicklungsboard und werde dann das
Programm auf den Atmell 89S52 umschreiben.
hab folgendes Problem:
Es zeigt einfach das gewünschte Ergebnis an, obwohl ich mir sicher bin
dass das Programm funktionieren muss. es ist sicher nur ein kleiner
Fehler aber ich komm nicht drauf.
Lg Wörnz
PS.: sorry dass es am anfang nicht funktioniert hat mit dem Programm,
und dass ich nicht genauere Daten angegeben hab.