#1 2020-11-09 16:17:02

IzzyVilagosz
Учасник
Зареєстрований: 2020-10-27
Повідомлень: 6

Как переработать таймер?

Как переработать таймер так, чтобы избавиться от закомментированых строк, а указать мигание светодиода каждые 0.25 сек в самом таймере?

volatile unsigned long int timerLED;
unsigned long int timePreview = 0;

unsigned char n = 0;
bool check = false;

void LightDown() {
  digitalWrite(n, LOW);
  n--;
  if (n < 8) {
    n = 11;
  }
}

void LightUp() {
  digitalWrite(n, LOW);
  n++;
  if (n > 11) {
    n = 8;
  }
}

void Changer() {
  if (!check) {
    check = true;
  } else {
    check = false;
  }
}

ISR (TIMER0_COMPA_vect){
  digitalWrite(n, HIGH);
  pinMode(n, OUTPUT);
  timerLED++;
  //if(timerLED - timePreview >= 250){
    timePreview = timerLED;
    
    if (!check) {
      LightDown();
    } else {
      LightUp();
    }
  }
}

void setup() {
  Serial.begin(9600);
  pinMode(2, INPUT_PULLUP);
  attachInterrupt(0, Changer, FALLING);
  n = 11;

  TCCR0A |= (1<<WGM01);
  OCR0A = 0xF9;
  TIMSK0 |= (1<<OCIE0A);
  TCCR0B |= (1<<CS01) | (1<<CS00);
  sei();
}

void loop() {
}

Остання редакція IzzyVilagosz (2020-11-09 16:17:18)

Неактивний

#2 2020-11-09 17:11:49

г0сть
Гість

Re: Как переработать таймер?

Почитать не предлагать?

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму