Солидарен. Всегда стараюсь размещать фоновый блинк, если есть возможность. Односекундный блинк, безо всяких наворотов - сразу видна работоспособность и частота (фьюзы). Ну а для самого однажды даже диагностику приходилось выводить кодом Морзе.) Понятно, что можно и UART с опторазвязкой, но зачем…)
Когда в скетче применяются конструкции со значительными задержками можно воспользоваться и таким блинком:
// (c)UA6EM
#define PIN_LED 13
#define pinINT1 3 // этот пин Шимим 490Гц
#define zFreq 2 // делитель интервала - секунда/2
/*******************МИГАЛКА ********************/
void start_Blink() {
pinMode(PIN_LED, OUTPUT);
attachInterrupt(1, Blink, RISING );
analogWrite(3, 0x80);
}
void stop_Blink() {
detachInterrupt(1);
digitalWrite(PIN_LED, LOW);
}
void Blink(void) { // процедура вызываемая прерыванием
static int i = 490 / zFreq;
if (!i--)
{
digitalWrite(PIN_LED, ! digitalRead(PIN_LED));
i = 490 / zFreq;
}
}
void setup() {
pinMode(PIN_LED, OUTPUT);
start_Blink();
}
void loop() {
}
(запись удалена автором)
UA6EM, при всём уважении, объясни пожалуйста, что это значит:
// Blink via AnalogWrite() (c)UA6EM
#define PIN_LED 13 // был 10 пин
Слюшай, зачем эти комментарий, да?
(запись удалена автором)
И что такое? Стесняемся того что сказал ранее? Ужос.(
Если ко мне - ни сколько не стесняюсь, зачем засорять?
Это ведь не просто тема, для “поболтать” ИМХО
Ну нет. Всё нормально. Сам, бывает, с бодуна, свои сообщения удаляю. Но, это крайний случай.)
Вы не стесняйтесь, редактируйте тему, добавляйте интересные, рабочие варианты кода туда.
Если эти слова ко мне, то я здесь как ученик, вряд ли смогу написать на уровне старожилов, но если что , спасибо, добавлю и свой вариант( а вдруг?)))
Это было ко всем. Там выше интересные варианты кода. Думаю интересно для понимания, что даже простешая задача может быть решена множеством способов.
пока только мой скетч не зависит от времени выполнения LOOP, жду что предложит сообщество аналогичного в рамках стандарта arduino (не залезая в программирование таймеров)
Любое прерывание на относительно медленном МК это зло, поэтому в сильно загруженном проекте я б сильно задумался о таком blink.
Впрочем чисто моё мнение, может это и имеет смысл.
у синклера частота была в 4 раза ниже, ничё, справлялся, видимо то поколение программистов умело писать программы
Не ![]()
Когда я писал для синклера на ассемблере игрушки, прерывания использовались как им и изначально задумывались, для событий внешних, т е контроллеров, клавиатур и прочего, но никак не для отображения чего либо ![]()
я только программатор и ПО к нему писал для Синклера, ради интереса даже на Бэйсике встроенном, работал, только медленно, шить ПЗУ и ПО на вязальных машинах МПФ-5
Уместно ли вместо кода прикрепить видео
зато сразу пара десятков блинка.
если гайвер вызывает негатив - не жмякайте.
Ну, обычно, всегда задумываешься что удобнее. Либо, что проще, что вызывает меньше телодвижений, и т.д. Например, у PIC-ов, с их регистровым файлом, пролог/эпилог значительно меньше нежели у AVR. Потому и накладные расходы на прерывание меньше. С другой стороны, ну если всё успевает, то какие вопросы! И пофигу на пролог/эпилог, лишь бы всё удобненько было.) Хотя, тоже стараюсь прерывания не использовать по возможности. Потому что volatile, и даже не только это. Сложнее в отладке хотя бы.
Ну да, блинков можно много придумать. Только заради чего? Думаю, имеет смысл ради лаконичности, либо экономии. На больше фантазии не хватает.)
Ну, раздел создан “для готовых примеров”, а не для самых коротких или самых понятных. Иначе он бы назывался типа " Занимательные задачки от Петровича"
Кстати, думаю неплохая идея, на старом форуме они были антяресны и познавательны.