Помогите переработать таймер
- Войдите на сайт для отправки комментариев
Пнд, 09/11/2020 - 16:35
Помогите переработать таймер так, чтобы избавиться от закомментированых строк, а указать мигание светодиода каждые 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() {
}
Ромка, ну зачем тебе тут таймер. Пиши в луп, оно проще будет.
Да я знаю за это. Задание такое. Итак сложно, и еще сложности добавили. У меня просто затуп. Нужно именно без лупа и еще без сравнений. Все должен делать таймер
Антересно. Задание дали Ромке, а делать будем мы? Дистанционное обучение нынче такое?
Я кагбы сделал. Откуда я знал что придруться к такой детали. Я просто выжал тут все что знал. Учить сейчас все про таймеры просто нет времени. Помогите пж
Так и скажи преподу - чё те ещё надо, сделал же.
А если он завтра скажет в окно прыгнуть - тоже мы вместо тебя сиганем? Или в армию вместо тебя пойдем? Давай иди читай про таймеры, у тебя там 90% написано уже.
Я кагбы сделал. Откуда я знал что придруться к такой детали. Я просто выжал тут все что знал. Учить сейчас все про таймеры просто нет времени. Помогите пж
Так они всегда найдут к чему придратся. И с временем всегда напряги. А таймер - в натуре лишнее, не учи.
Учить сейчас все про таймеры просто нет времени.
Чем же Вы так заняты? И сейчас, и весь семестр, когда это надо было учить?
ТС, если для строк 52-55 напишите комментарии в которых будет однозначно сказано что эти строки делают, я вас напишу, то что вы просите :)
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(TIMER1_COMPA_vect){ if (!check) { LightDown(); } else { LightUp(); } digitalWrite(n, HIGH); pinMode(n, OUTPUT); } void setupTm(){ cli(); TCCR1A = 0; TCCR1B = 0; TCNT1 = 0; OCR1A = 62499; TCCR1B |= (1 << WGM12); TCCR1B |= (0 << CS12) | (1 << CS11) | (1 << CS10); TIMSK1 |= (1 << OCIE1A); sei(); } void setup() { Serial.begin(9600); pinMode(2, INPUT_PULLUP); attachInterrupt(0, Changer, FALLING); n = 11; setupTm(); } void loop() { }Самый бесполезный и недружелюбный форум. Оставляю готовый код и ресурс, который поможет легко генерировать нужные таймеры.
http://www.8bit-era.cz/arduino-timer-interrupts-calculator.html
Новичкам больше тут делать нечего. Все дофига советники как бабки в больнице. Никакой конкретики
Самый бесполезный и недружелюбный форум.
а вот ты не прав насчет "бесполезного". Дали тебе пинок - ты пошел и нашел решение сам(надеюсь). А получил бы сразу готовенькое - фиг бы ты что запомнил.
мне было нужно в короткие строки переработать пару строчек. Мне этот код в кошмарах сниться будет теперь, я его итак наизусть знал
я его итак наизусть знал
а не надо наизусть... надо понимать
Я вот нихера эти таймеры на память не напишу. Но всегда можно взять даташит и посмотреть, как правильно.
Кста, никто тебе не стал отвечать в том числе и потому, что мало кто помнит все это наизусть, а лезть ради тебя в справочник - с какой стати? - это ты и сам можешь сделать.
Самый бесполезный и недружелюбный форум.
Кому как.
Для бесполезных людей и форум, видимо, такой же.
а вот ты не прав насчет "бесполезного".
Человеку
а вы тут его заставили самого неделю пахать. Вашу, между прочим, работу делать! За неделю пахоты любой найдёт чешский сайт и на нём таймер сконфигурит, только нафига тогда нужны форумы?!
В общем, низачёт! Припахали гостя свою работу делать вместо того чтобы, усадить в кресло, предложить кофе, сделать минет и написать всё, что ему надо "в короткие строки".
Скорее всего, сами нихрена таймеры конфигруить не умеете - только щёки надувать горазды!