closed

Loginbox

Please enter your username and password into the following fields to log in.


  • Username:
  • Password:
  •  
  • Auto log in on every visit.


  •  

RTC Timer für 8 Ereignisse



tbegle offline
Benutzer
Avatar
Gender: n/a
Location: n/a 
Age: 60
Posts: 75
Registered: 01 / 2018
Private message
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
go down go up
Harry offline
PowerUser
Avatar
Gender: male
Location: GERMANY  zwischen Augsburg und Ulm
Age: 55
Posts: 1757
Registered: 03 / 2003
Private message
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
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.
go down go up
tbegle offline
Benutzer
Avatar
Gender: n/a
Location: n/a 
Age: 60
Posts: 75
Registered: 01 / 2018
Private message
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
go down go up
Harry offline
PowerUser
Avatar
Gender: male
Location: GERMANY  zwischen Augsburg und Ulm
Age: 55
Posts: 1757
Registered: 03 / 2003
Private message
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 ;)
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.
This post has been edited 1-times. Last edit: 10.12.2020 - 08:51 by Harry.
go down go up
tbegle offline
Benutzer
Avatar
Gender: n/a
Location: n/a 
Age: 60
Posts: 75
Registered: 01 / 2018
Private message
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
go down go up
Harry offline
PowerUser
Avatar
Gender: male
Location: GERMANY  zwischen Augsburg und Ulm
Age: 55
Posts: 1757
Registered: 03 / 2003
Private message
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.
This post has been edited 1-times. Last edit: 10.12.2020 - 10:19 by Harry.
go down go up
 


Registered users in this topic
Currently no registered users in this section

Delete cookies of this forum  •  FAQ / Help  •  Team page  •  Imprint   |  Local time: 20.01.2021 - 22:56