Комментарии 14
Все прекрасно, маленький комментарий: «И все верно — замер делается относительно опорного внутреннего напряжения. Но ведь оно падает!». Внутренний vref это в большинстве случаев просто диод, на котором падает всегда определенное напряжение. Теория тут www.ti.com/lit/eb/slyc147a/slyc147a.pdf
Очень красиво и романтично)
Красота!
Тыц
Прям ностальгией веет и теплотой! Как говаривал мой преподаватель по электронике: «Вечно можно смотреть на: поток воды, пламя костра, процесс творчества другого человека и перемаргивающиеся светодиоды»
Объясните пожалуйста смысл этих строк:
Почему не просто:
void put_str_P(PGM_P str){
static PGM_P s;
s=str;
while (pgm_read_byte(s)) put_char( pgm_read_byte(s++) );
}
Почему не просто:
void put_str_P(PGM_P str){
while (pgm_read_byte(str)) put_char( pgm_read_byte(str++) );
}
Хе :) это, судя по всему, какой-то отладочный ошметок. Спасибо.
проснулся и понял, что нет же… PGM_P — это указатель. Следовательно, приращение его внутри функции будет его менять. Указатель переприсвоен, чтобы сделать передаваемую строку reusable.
я, правда, ниже еще разок посмотрел, и вроде-бы нигде это не пригождается. Но интенция моя была, судя по всему, именно такова.
Отнюдь. Всё что происходить внутри функции остаётся внутри функции. Если конечно не трогать саму память на которую указывает указатель. А эта память уже во флеше, так что испортить её сложно. Если два раза подряд вызвать этот код:
то строка будет передана два раза с начала.
void put_str_P(PGM_P str){
while (pgm_read_byte(str)) put_char( pgm_read_byte(str++) );
}
то строка будет передана два раза с начала.
Хе :) это, судя по всему, какой-то отладочный ошметок. Спасибо.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Я подарю тебе маленькую вселенную