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