User Tools

Site Tools


en-us_commands:reference:igetstate

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
en-us_commands:reference:igetstate [2026/09/07 21:52] – 만듦 - 바깥 편집 127.0.0.1en-us_commands:reference:igetstate [2026/09/14 20:30] (current) – external edit 127.0.0.1
Line 14: Line 14:
  
 ===== Example ===== ===== Example =====
 +
 +This example selects MPINO-8A4R(T)-S and uses input ''P0'' and output ''P32''. Call the command on every pass through ''loop()'' without blocking it. Read the current output state of ''Iton(0, …)'' with ''IgetState(0)'' and apply it to ''P32''.
  
 <code cpp> <code cpp>
-bool Iton(uint8_t timer_id, bool state, unsigned long delayTime)+const uint8_t INPUT_PIN = 0
-bool Itof(uint8_t timer_id, bool state, unsigned long delayTime)+const uint8_t OUTPUT_PIN = 32
-bool Itpl(uint8_t timer_id, bool state, unsigned long delayTime); + 
-bool Itmon(uint8_t timer_id, bool state, unsigned long delayTime); +void setup() {} 
-bool Itmr(uint8_t timer_idbool stateunsigned long delayTime, bool reset = false); + 
-unsigned long IgetTime(uint8_t timer_id); +void loop() { 
-bool IgetState(uint8_t timer_id);+  const bool inputOn = digitalRead(INPUT_PIN== HIGH
 +  Iton(0inputOn1000);  // Update the timer in every loop before reading its state. 
 +  const bool done = IgetState(0);  // Read the output state of the timer with the same ID. 
 +  digitalWrite(OUTPUT_PIN, done ? HIGH : LOW); 
 +}
 </code> </code>
  
 ===== Precautions ===== ===== Precautions =====
  
-  * Timer interrupt callbacks run inside an ISR. For safety, change only flags in the callback and perform actual control processing in ''loop()''+  * Call the timer command repeatedly in ''loop()'' so elapsed time and OFF input are processed
-  * Do not use slow or interrupt-dependent code such as ''delay()'', ''Serial'', I2C or SPI in callbacks+  * Do not share a ''timer_id'' between different timer operations; use a separate ID for each
-  * Normally, call ''ImodbusRTU()'' repeatedly in ''loop()''Call it from a timer interrupt with a sufficient interval only when long ''delay()'' calls or debug output slow down ''loop()''+  * Call the timer with the same ID firstAn ID that has not been created returns false
-  * Do not use the default ''ItimerSet()'' together with ''tone()'' using Timer2 or ''analogWrite()'' on Timer2 PWM pins. + 
-  * Explicitly using Timer1, Timer3, Timer4 or Timer5 may conflict with PWM, analog output or high-speed counter functions using that timer+===== Built-in Commands in the Same Category ===== 
-  * Configure only one ''Itimer'' callback per hardware timer. + 
-  * Defining an ISR for the same timer directly in the sketch may conflict with ''Itimer'' operation. +  * [[:en-us_commands:reference:igettime|IgetTime() View detailed description]]
-  * ''ItimerStopAll()'' stops only hardware interrupt timers. It does not reset PLC-style timer states such as ''Iton'', ''Itof'' or ''Itmr''.+
  
 [[:en-us_commands:builtin|← Built-in Command List]] [[:en-us_commands:builtin|← Built-in Command List]]
  
en-us_commands/reference/igetstate.1788785567.txt.gz · Last modified: by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki