Более того, резисторы идущие на базу имеют слишком маленький номинал, в итоге с МК идёт почти такой же ток, как и через светодиод, а общее потребление системы удваивается.
Если вы использовали Li-ion аккумулятор 3,7 В, то зачем повышать напряжение до 5 В?
Рабочая частота ATmega8 не превышала ведь 8 МГц. Только номиналы резисторов при светодиодах нужно уменьшить.
Если записать последнюю прошивку 4 байта в область загрузчика, то это не повлияет на частоту — PC дойдёт до конца, переполнится, т. е. станет равен 0, снова дощёлкает до загрузчика и выполнит итерацию. Только «фаза» сместится, что мы даже не заметим.
sbrs r, b
Пропустить команду, если рязряд регистра общего назначения установлен.
Если r.b = 1, то PC = PC + 2 (3), иначе PC = PC + 1
Код операции: 1111 111r rrrr 0bbb
Следовательно, sbrs r31, 7 это 0xFFF7.
Возможно, процессор воспринимает 0xFFFF как эту команду, при r31.7 = 0 он просто переходит дальше.
Да, у нас в конкретном случае объём 4 KiB, взяв другой микроконтроллер с большей памятью программ мы увеличим период, однако остальные ноги порта B осциллируют с бо́льшими частотами, можем подпаяться к ним.
Мигание таймером вполне допустимо по ТЗ, просто мне сразу показалось, что это будет занимать больше места.
А если у нас какая-никакая многозадачность, и таймер больше нигде не нужен — то предпочтительнее задействовать его, конечно!
Рабочая частота ATmega8 не превышала ведь 8 МГц. Только номиналы резисторов при светодиодах нужно уменьшить.
Он стирает flash и заливает программу через SPI.
Мы говорим о памяти программ.
Я так понял, при покупке в китае занедорого платы с FT232 вероятность найти там поддельный сабж сильно стремится к 1.
habrahabr.ru/post/240517/ UPD3
Не смог спать. Пришлось встать, проверить и дописать в статью.
Или я не понял о чём вы?
Добавил в статью.
Пропустить команду, если рязряд регистра общего назначения установлен.
Если r.b = 1, то PC = PC + 2 (3), иначе PC = PC + 1
Код операции: 1111 111r rrrr 0bbb
Следовательно, sbrs r31, 7 это 0xFFF7.
Возможно, процессор воспринимает 0xFFFF как эту команду, при r31.7 = 0 он просто переходит дальше.
«Исполняться» будут все 4 KiB, просто AVR Studio выдаст: Размер CSEG = 4
А если у нас какая-никакая многозадачность, и таймер больше нигде не нужен — то предпочтительнее задействовать его, конечно!