====== Ictd() ====== ''Ictd()'' loads the preset value, then decrements the current value at each input rising edge. {{:en-us_commands:reference:ictd.svg?900|Ictd command operation flow}} ''bool Ictd(uint8_t counter_id, bool CD, bool LOAD, int32_t PV)'' ===== Commands ===== ^ Command ^ Arguments ^ Return Value ^ Operation ^ | ''Ictd(counter_id, CD, LOAD, PV)'' | ''uint8_t counter_id'' — Counter number. Supports ''0'' ~ ''255'', the ''uint8_t'' range\\ ''bool CD''\\ ''bool LOAD''\\ ''int32_t PV'' — Preset value | ''bool'' | Loads the preset value, then decrements the current value at each input rising edge. | ===== Example ===== This example uses the P0 and P1 inputs and the P32 output on MPINO-8A4R(T)-S. const uint8_t COUNTER_ID = 1; const int32_t START_QUANTITY = 50; void setup() { Serial.begin(115200); } void loop() { const bool shipped = digitalRead(0) == HIGH; const bool loadQuantity = digitalRead(1) == HIGH; const bool empty = Ictd(COUNTER_ID, shipped, loadQuantity, START_QUANTITY); // Load the preset, then decrement the current value on each rising input edge. digitalWrite(32, empty ? HIGH : LOW); } ===== Precautions ===== * The previous fixed 0~31 restriction has been removed. However, the argument type is ''uint8_t'', so the maximum ID is ''255''. * If insufficient memory prevents allocation of counter state, counter commands return ''false'' or ''0''. * Once created, counter state is retained while the program runs. ===== Built-in Commands in the Same Category ===== * [[:en-us_commands:reference:ictu|Ictu() View detailed description]] * [[:en-us_commands:reference:ictud|Ictud() View detailed description]] * [[:en-us_commands:reference:igetcount|IgetCount() View detailed description]] * [[:en-us_commands:reference:isetcount|IsetCount() View detailed description]] * [[:en-us_commands:reference:ictuddownstate|IctudDownState() View detailed description]] [[:en-us_commands:builtin|← Built-in Command List]]