Loginbox
Please enter your username and password into the following fields to log in.
RTC Timer für 8 Ereignisse
Subject: RTC Timer für 8 Ereignisse - Posted: 09.12.2020 - 14:13 -
Hallo User,
kann mir jemand auf die Sprünge helfen?
Ich möchte von 8 Geräten zu unterschiedlichen Zeiten „innerhalb einer Minute!“ die Zeit messen die ich dann für jedes Gerät aufaddiere
Herausforderung:
wie deklariere ich die 8 Timer? dass jeder Timer (1-8)für sich arbeitet (startet und stoppt)
-------------------------------------------------------------------------------------------
import SysTick,SerPort,ADCPort,TWIMaster,RTclock,;
from RTclock import RTCtimer,Random,float;
define
ProcClock = 16000000; // Hertz
SysTick = 10,Timer0; // msec}
…...
…...
// RTCtimer = [1..8],cannels,iData; // Cannels; Fehler ??????
RTclock = iData, DateTime; // DateTime
RTCsource = SysTick; //
RTCtimer = 4; ?????
--------------------------------------------------------------------------------------------------------------
procedure RTC_start(chan:byte); // (1-8)
begin
Disableints;
RTCsetSecond(0);//RTCsetminute(0); // Timer (1-8) auf 0 ?????
Enableints;
end;
// --------------------------------------------------------------
procedure RTC_stop(chan:byte); // (1-8)
begin
Disableints;
st:=RTCgetSecond;//RTCgetMinute; // Timer (1-8) st = xx Sek
Enableints;
end;
Grüsse
Toni
kann mir jemand auf die Sprünge helfen?
Ich möchte von 8 Geräten zu unterschiedlichen Zeiten „innerhalb einer Minute!“ die Zeit messen die ich dann für jedes Gerät aufaddiere
Herausforderung:
wie deklariere ich die 8 Timer? dass jeder Timer (1-8)für sich arbeitet (startet und stoppt)
-------------------------------------------------------------------------------------------
import SysTick,SerPort,ADCPort,TWIMaster,RTclock,;
from RTclock import RTCtimer,Random,float;
define
ProcClock = 16000000; // Hertz
SysTick = 10,Timer0; // msec}
…...
…...
// RTCtimer = [1..8],cannels,iData; // Cannels; Fehler ??????
RTclock = iData, DateTime; // DateTime
RTCsource = SysTick; //
RTCtimer = 4; ?????
--------------------------------------------------------------------------------------------------------------
procedure RTC_start(chan:byte); // (1-8)
begin
Disableints;
RTCsetSecond(0);//RTCsetminute(0); // Timer (1-8) auf 0 ?????
Enableints;
end;
// --------------------------------------------------------------
procedure RTC_stop(chan:byte); // (1-8)
begin
Disableints;
st:=RTCgetSecond;//RTCgetMinute; // Timer (1-8) st = xx Sek
Enableints;
end;
Grüsse
Toni
Harry 
PowerUser
Gender: 
Location:
zwischen Augsburg und Ulm
Age: 55
Posts: 1757
Registered: 03 / 2003

PowerUser


Location:

Age: 55
Posts: 1757
Registered: 03 / 2003
Subject: Re: RTC Timer für 8 Ereignisse - Posted: 09.12.2020 - 16:46 -
Hallo Toni,
brauchst du die Uhrzeit oder nur diese 60 Sekunden? Ich hatte mal ne Anwendung, bei der ich nur eine Zeitdifferenz benötigte. Dazu habe ich an einen Eingang einen 1Hz Oszillator angeschlossen und mit einem Interrupt darauf eine LongWord hoch gezählt. Dann gabs noch je Teilnehmer eine Start- und Stop-Variable als LongWord. Start: Start-Var:=TimerVar und Stop: Stop-Var:=TimerVar. Zeit:=StopVar - StartVar. Fertig.
LongWord reicht für ca. 136 Jahre
Gruss
Harry
brauchst du die Uhrzeit oder nur diese 60 Sekunden? Ich hatte mal ne Anwendung, bei der ich nur eine Zeitdifferenz benötigte. Dazu habe ich an einen Eingang einen 1Hz Oszillator angeschlossen und mit einem Interrupt darauf eine LongWord hoch gezählt. Dann gabs noch je Teilnehmer eine Start- und Stop-Variable als LongWord. Start: Start-Var:=TimerVar und Stop: Stop-Var:=TimerVar. Zeit:=StopVar - StartVar. Fertig.
LongWord reicht für ca. 136 Jahre

Gruss
Harry
Elektronik arbeitet mit Rauch - wenn man den Rauch raus läßt, funktioniert es nicht mehr.
Electronics works with smoke - if you let the smoke out, it works no longer.
Electronics works with smoke - if you let the smoke out, it works no longer.
Subject: Re: RTC Timer für 8 Ereignisse - Posted: 09.12.2020 - 17:05 -
Hallo Harry,
136 Jahre dürften gerade reichen!- hihi
Die Motherboard's sind fertig, da möchte ich nicht mehr herum basteln
ich brauche nur Sekunden (RTCgetSecond(1-8) aber für Motor 1 - 8 jeweils einzeln um bei erreichen eines max Wert Pumpen einzuschalten
Gruss
Toni
136 Jahre dürften gerade reichen!- hihi
Die Motherboard's sind fertig, da möchte ich nicht mehr herum basteln
ich brauche nur Sekunden (RTCgetSecond(1-8) aber für Motor 1 - 8 jeweils einzeln um bei erreichen eines max Wert Pumpen einzuschalten
Gruss
Toni
Harry 
PowerUser
Gender: 
Location:
zwischen Augsburg und Ulm
Age: 55
Posts: 1757
Registered: 03 / 2003

PowerUser


Location:

Age: 55
Posts: 1757
Registered: 03 / 2003
Subject: Re: RTC Timer für 8 Ereignisse - Posted: 09.12.2020 - 17:49 -
Hallo Toni,
genau ist aber anderst
.
Ich verstehe das so: Du rufst Procedure RTCtimer_Load (chan : byte; seconds : word[longword]); auf, mit chan 0...7 und einer Zeit seconds. Ist die Zeit abgelaufen, wird die CallBack-Procedure RTCtimer(chan : byte); mit dem gleichen Kanal chan aufgerufen.
Wenn du keinen festen Timer willst, mußt du die Zeit messen.Du kannst meine o.g. Methode verwenden, läßt die Zeitvariable aber über die CallBack Procedure RTCtickSecond; aufaddieren.
Harry
PS: Dieses Unterforum dient zum bereit stellen von Codeschnipseln, Programmen, Treibern, ..... nicht dazu, Fragen zu stellen
genau ist aber anderst

Ich verstehe das so: Du rufst Procedure RTCtimer_Load (chan : byte; seconds : word[longword]); auf, mit chan 0...7 und einer Zeit seconds. Ist die Zeit abgelaufen, wird die CallBack-Procedure RTCtimer(chan : byte); mit dem gleichen Kanal chan aufgerufen.
Wenn du keinen festen Timer willst, mußt du die Zeit messen.Du kannst meine o.g. Methode verwenden, läßt die Zeitvariable aber über die CallBack Procedure RTCtickSecond; aufaddieren.
Harry
PS: Dieses Unterforum dient zum bereit stellen von Codeschnipseln, Programmen, Treibern, ..... nicht dazu, Fragen zu stellen

Elektronik arbeitet mit Rauch - wenn man den Rauch raus läßt, funktioniert es nicht mehr.
Electronics works with smoke - if you let the smoke out, it works no longer.
Electronics works with smoke - if you let the smoke out, it works no longer.

Subject: Re: RTC Timer für 8 Ereignisse - Posted: 10.12.2020 - 09:56 -
Hallo Harry,
jetzt bin ich armer Tor genau so schlau wie zuvor, ich dachte es wäre einfacher zu lösen als longword... vielleicht habe ich mich auch
völlig missverständlich ausgedrückt und unerlaubt um eine Problemlösung in diesem Portal gebeten.
Bei EINEM Timer (Bad Beleuchtung) count down -> 120" -> 0" funktioniert's
Gruss
Toni
Ich werde nun auch diese 8 Timer in meine Do loop Schleife einbauen wo bereits 40 zuverlässig(perfekt) laufen (sehr zu empfehlen, simpel, und Speicher sparend)
Do
mdelay(10);
Befehlsregister(30 Befehle - if serstat = true ......) IF BF 'xx' then ....'
Time Out Proc -> if M1-M8_Flag = true then inc(x01-x08): '.......... ~10ms Auflösung
HW-Watchdog
loop
jetzt bin ich armer Tor genau so schlau wie zuvor, ich dachte es wäre einfacher zu lösen als longword... vielleicht habe ich mich auch
völlig missverständlich ausgedrückt und unerlaubt um eine Problemlösung in diesem Portal gebeten.
Bei EINEM Timer (Bad Beleuchtung) count down -> 120" -> 0" funktioniert's
Gruss
Toni
Ich werde nun auch diese 8 Timer in meine Do loop Schleife einbauen wo bereits 40 zuverlässig(perfekt) laufen (sehr zu empfehlen, simpel, und Speicher sparend)
Do
mdelay(10);
Befehlsregister(30 Befehle - if serstat = true ......) IF BF 'xx' then ....'
Time Out Proc -> if M1-M8_Flag = true then inc(x01-x08): '.......... ~10ms Auflösung
HW-Watchdog
loop
Harry 
PowerUser
Gender: 
Location:
zwischen Augsburg und Ulm
Age: 55
Posts: 1757
Registered: 03 / 2003

PowerUser


Location:

Age: 55
Posts: 1757
Registered: 03 / 2003
Subject: Re: RTC Timer für 8 Ereignisse - Posted: 10.12.2020 - 10:16 -
Quote by tbegle
... unerlaubt um eine Problemlösung in diesem Portal gebeten.
Das ist ein Blödsinn, natürlich kannst du hier im Forum fragen, aber vielleicht besser da: index.php?f=1
Aber wieso willst du plötzlich 8 Timer auf diese Art realisieren, wenn du schon 40 anderst laufen hast?
Was ich immer noch nicht verstanden habe: Sind deine Timer immer gleich lang?
Gruss
Harry
Elektronik arbeitet mit Rauch - wenn man den Rauch raus läßt, funktioniert es nicht mehr.
Electronics works with smoke - if you let the smoke out, it works no longer.
Electronics works with smoke - if you let the smoke out, it works no longer.

![]() |
Registered users in this topic Currently no registered users in this section |