Pull to refresh
2
0
Send message

Я экспериментировал. Открываешь окно в комнате — показывает 400 ppm (минимум), закрываешь — через час 4000-5000 ppm. Дышалось при этом вполне нормально. Максимум шкалы в районе 8100 ppm также достигался без особых проблем. Какое отношение эти попугаи (eCO2) имеют к концентрации углекислого газа, я не понял.

set keymap=russian-jcukenwin в .vimrc

И если вы мне скажете, что не кайфуете от чувства собственного превосходства, то вы врете.

Вообще-то не все люди нуждаются в том, чтобы гнобить и унижать более слабых, будь то в школе, в армии или на работе. Так что не равняйте всех по себе.

Спасибо, очень наглядно. Увидел, что Вы это и в статье объясняли, просто я сразу не разобрался.

Поясните, пожалуйста, момент, зачем нужно irq_disable перед WFI. И что делает irq_disable — cpsid i или что?

Ура, наконец-то я понял, что означала фраза "транзистор работает за счет захвата коллектором основных носителей, инжектируемых эмиттером в базу", когда изучал электронику в институте.

А самые продвинутые уже говорят: "Вы сделали мой день"

Почему они говорят "he didn't make it" вместо "he hasn't made it" ?

У меня 8 ГБ ОЗУ, своп не используется. Иногда какой-то процесс отжирает всё ОЗУ, и система впадает в ступор минут на 20-30, непрерывно светя индикатором жёсткого диска. После этого этот процесс убивается, память освобождается и всё продолжает работать нормально. Но что происходит в эти 20-30 минут?

Объяснение очень простое. Использование констант таким образом позволяет поиграться с их разными значениями в отладчике, не перепрошивая девайс всякий раз.

У меня вот в микроконтроллере стек uIP крутится, там есть функция uip_process — 1118 строк + 69 goto, а тут какие-то жалкие тойотовские 740 строк.

После Ctrl-r надо набрать название регистра (что-то вроде именованного буфера обмена), из которого вставлять текст. В данном случае "правильнее" набрать двойную кавычку (регистр по умолчанию), т.е. <Ctrl-r>";<Esc>. Или можно <Ctrl-o>p;<Esc>.

Перенос левого мизинца на Esc делается без отрыва кисти от поверхности в отличие от переноса всего правого предплечья на блок стрелок (и тем более на мышь).
Мне как раз нравится из-за названий, по-моему, очень читабельно, особенно если параметры не такие очевидные, как UARTSpeed115200. И узнал я о таком способе весьма недавно из книги «21st Century C» (Ben Klemens).
Вариант без статической структуры, о которой не надо знать пользователю.

Либа:
typedef struct UARTConfigT
{
UARTSpeedT speed;
UARTStopT stop;
UARTParityT parity;
} UARTConfigT;

int UARTConfigUse(UARTConfigT config)
{
return DoSomething();
}

// инициализация со значениями по умолчанию
#define UARTConfig(...) UARTConfigUse((UARTConfigT){.speed = UARTSpeed9600, .stop = UARTStop1, .parity = UARTParityNone, __VA_ARGS__})

Инициализация с нужными параметрами:
UARTConfig(.speed = UARTSpeed115200, .parity = UARTParityEven);
Далеко не сразу — это как? Попробуйте пробежать 400 м в полную силу, хотя большинству людей и 100 м хватит.
Бит TC в регистре статуса, прерывание от него маскируется битом TCIE в USART_CR1.
Вызов pxMBFrameCBTransmitterEmpty() в UART_IRQ_Handler() при передаче последнего байта вызывает vMBPortSerialEnable( TRUE, FALSE ), что выключает DE в то время как этот байт только начал передаваться по линии.
По поводу костыля. Вы обрабатываете событие TXE передатчика, поэтому линия DE деактивируется в момент начала передачи последнего байта, а не тогда, когда этот байт уже целиком «выдвинется». Поэтому либо Ваш костыль, либо после записи последнего байта нужно ждать события TC (transmission complete).

Information

Rating
Does not participate
Registered
Activity