
void setup() { pinMode(13, OUTPUT); digitalWrite(13, LOW); } void loop() { digitalWrite(13,HIGH); delay(500); digitalWrite(13,LOW); delay(500); } 
 void setup() { pinMode(13, OUTPUT); digitalWrite(13, LOW); } uint32_t ms, ms1 = 0; bool led_stat = true; void loop() { ms = millis(); //    500  if( ( ms - ms1 ) > 500 || ms < ms1 ){ ms1 = ms; //   digitalWrite(13, led_stat); led_stat = !led_stat; } }  //     byte modes[] = { 0B00000000, //  0B11111111, //  0B00001111, //  0.5  0B00000001, //     0B00000101, //      0B00010101, //      0B01010101 //   (4   ) }; uint32_t ms, ms1 = 0, ms2 = 0; uint8_t blink_loop = 0; uint8_t blink_mode = 0; uint8_t modes_count = 0; void setup() { pinMode(13, OUTPUT); digitalWrite(13, LOW); modes_count = 1; blink_mode = modes[modes_count]; } void loop() { ms = millis(); //    125  if( ( ms - ms1 ) > 125|| ms < ms1 ){ ms1 = ms; //       if( blink_mode & 1<<(blink_loop&0x07) ) digitalWrite(13, HIGH); else digitalWrite(13, LOW); blink_loop++; } //        //    5    if( ( ms - ms2 ) > 5000|| ms < ms2 ){ ms2 = ms; blink_mode = modes[modes_count++]; if( modes_count >= 7 )modes_count = 1; } } 



 byte bytes[] = {0B00010101,0B00110011,0B10100011,0B00000010}; uint32_t ms, ms1 = 0; uint8_t blink_loop = 0; void setup() { pinMode(13, OUTPUT); digitalWrite(13, LOW); } void loop() { ms = millis(); //    125  if( ( ms - ms1 ) > 125|| ms < ms1 ){ ms1 = ms; //    (3 ) uint8_t n_shift = blink_loop&0x07; //      (2    3 ) uint8_t b_count = (blink_loop>>3)&0x3; if( bytes[b_count] & 1<< n_shift )digitalWrite(13, HIGH); else digitalWrite(13, LOW); blink_loop++; } } 
 uint8_t blink_loop = 0; uint8_t blink_mode = 0; uint8_t modes_count = 0; //    uint16_t n = 63583; //      ISR( TIMER1_OVF_vect ) { if( blink_mode & 1<<(blink_loop&0x07) ) digitalWrite(13, HIGH); else digitalWrite(13, LOW); blink_loop++; TCNT1 = n; //   TCNT1 } void setup() { pinMode(13,OUTPUT); blink_mode = 0B00000000; //     -    TCCR1A = 0; //   1024    16 TCCR1B = 1<<CS22 | 0<<CS21 | 1<<CS20; //    Timer1 TIMSK1 = 1<<TOIE1; //       TCNT1 = n; sei(); //     } } void loop() { blink_mode = 0B00001111; //  0.5  delay(5000); blink_mode = 0B00000001; //     delay(5000); blink_mode = 0B00000101; //      delay(5000); blink_mode = 0B00010101; //      delay(5000); blink_mode = 0B01010101; //   (4   ) delay(5000); }  #include "TimerOne.h" uint8_t blink_loop = 0; uint8_t blink_mode = 0; uint8_t modes_count = 0; // Callback    void timerIsr() { if( blink_mode & 1<<(blink_loop&0x07) ) digitalWrite(13, HIGH); else digitalWrite(13, LOW); blink_loop++; } void setup() { pinMode(13,OUTPUT); blink_mode = 0B00000000; Timer1.initialize(125000); Timer1.attachInterrupt( timerIsr ); } void loop() { blink_mode = 0B00001111; //  0.5  delay(5000); blink_mode = 0B00000001; //     delay(5000); blink_mode = 0B00000101; //      delay(5000); blink_mode = 0B00010101; //      delay(5000); blink_mode = 0B01010101; //   (4   ) delay(5000); }  #include <Ticker.h> uint8_t blink_loop = 0; uint8_t blink_mode = 0; uint8_t modes_count = 0; Ticker blinker; void timerIsr() { if( blink_mode & 1<<(blink_loop&0x07) ) digitalWrite(13, HIGH); else digitalWrite(13, LOW); blink_loop++; } void setup() { pinMode(13,OUTPUT); blink_mode = 0B00000000; blinker.attach(0.125, timerIsr); } void loop() { blink_mode = 0B00001111; //  0.5  delay(5000); blink_mode = 0B00000001; //     delay(5000); blink_mode = 0B00000101; //      delay(5000); blink_mode = 0B00010101; //      delay(5000); blink_mode = 0B01010101; //   (4   ) delay(5000); } Source: https://habr.com/ru/post/357904/
All Articles