89C51 C Laufzeitmessung

Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte

Elektronik Forum Nicht eingeloggt       Einloggen       Registrieren




[Registrieren]      --     [FAQ]      --     [ Einen Link auf Ihrer Homepage zum Forum]      --     [ Themen kostenlos per RSS in ihre Homepage einbauen]      --     [Einloggen]

Suchen


Serverzeit: 12 7 2026  01:13:53      TV   VCR Aufnahme   TFT   CRT-Monitor   Netzteile   LED-FAQ   Oszilloskop-Schirmbilder            


Elektronik- und Elektroforum Forum Index   >>   Microcontroller        Microcontroller : Hardware - Software - Ideen - Projekte

Autor
89C51 C Laufzeitmessung
Suche nach: laufzeitmessung (14)

    







BID = 164893

Leon79

Gelegenheitsposter



Beiträge: 77
Zur Homepage von Leon79
 

  


Hallo Leute

Ich möchte mir eine Laufzeitmessung mittels µC realisieren.
Bei einem Tastendruck soll ein startimpuls ausgegeben werden und gleichzeitig fängt der timer 0 zum zählen an. Wenn am Externen interrupt eine negative flanke ansteht soll er den timer 0 stoppen und die beiden bytes vom timer ausgeben auf 16 leds. dieser wert müsste dann meine zeit sein (Abhängig von der taktfrequenz und denn clocks)?
Nur leider funct das ned so wirklich. Vielleicht könnte ja jemand kurz über meinen Code drüberschauen und mir ein paar tipps geben. Wär wirklich super, probiere jetzt schon seit 2 tagen und mach leider keine fortschritte.


#include <reg51.h>

int i,j,HighByte,LowByte,Selbsthaltung;
char Fehler;
sbit Taster = P0^0;
sbit Messimpuls = P0^1;


void Messung (void);



void ex0isr(void) interrupt 0
{
TR0 = 0; //Timer 0 stoppen
Messung(); //
}



void isrT0 (void) interrupt 1
{
Fehler = 1; //bei timerüberlauf Fehler =1
}







void main (void)
{
Messimpuls = 1;
Taster = 1;
TMOD = TMOD & 0xF0; //Timer 1 auf 0000, timer 0 modus 1 16 bit timer gate 0,
TMOD = TMOD | 0x01;
IT0 = 1; // interrupt 0 type control bit Flankengesteurt

EX0 = 1; //enable external interrupt 0
EA = 1; // disable all interrupt low aktiv!!
ET0 = 1; //enable timer 0 overflow interrupt
Fehler = 0;
Selbsthaltung = 0;


while (1)
{
Messimpuls = 1;
for (i=0;i<5;i++)
{
i=i;
}
if (Taster == 0)
{
Messimpuls = 0;
for (i=0;i<5;i++)
{
i=i;
}

TR0 = 1;
Messimpuls = 1;

//for (j=0;j<32000;j++)
for (i=0;i<15000;i++)
{
for (j=0;j<200;j++)
{
j=j;
}
}
P1 = 0xFF;
P2 = 0xFF;
}

Taster = 1;


}
}

void Messung (void)
{
//Selbsthaltung = 0;
HighByte = TH0;
LowByte = TL0;
TH0 = 0x00;
TL0 = 0x01;
P2 = LowByte^0xFF;
P1 = HighByte^0xFF;

}


vielen DAnk für eure Hilfe

mfg
Leo




_________________
"Krieg ist Frieden", "Freiheit ist Sklaverei" und "Unwissenheit ist Stärke"

BID = 165218

Leon79

Gelegenheitsposter



Beiträge: 77
Zur Homepage von Leon79

 

  

Hat sich schon erübrigt.
Fehler lag am Versuchsaufbau

mfg
Leo

_________________
"Krieg ist Frieden", "Freiheit ist Sklaverei" und "Unwissenheit ist Stärke"


Zurück zur Seite 0 im Unterforum          Vorheriges Thema Nächstes Thema 


Zum Ersatzteileshop


Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum       Datenschutz       Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland       

gerechnet auf die letzten 30 Tage haben wir 7 Beiträge im Durchschnitt pro Tag       heute wurden bisher 0 Beiträge verfasst
© x sparkkelsputz        Besucher : 192370318   Heute : 186    Gestern : 4345    Online : 397        12.7.2026    1:13
0 Besucher in den letzten 60 Sekunden         ---- logout ----viewtopic ---- logout ----
xcvb ycvb
0.0516510009766