Category: еда

Хлебушка принёс

Купил вот прикольный хлебчик с отрубями. Вкусный, конечно, но почему он так дичайше крошится?! Это же пипец просто, берёшь кусок, а с него процентов пять еды просто ссыпается крошками. Неудобно, не эстетично.

кулинарное

Попробовал нечто молокообразное, но сделанное из гречки. Натурально, по вкусу как гречневая каша с травянистым каким-то оттенком. На пробу в плошку с кукурузными хлопьями - нормально так.
Правда, из-за очень низкой жирности (фактически, нулевой) остаётся ощущение какого-то обмана :) Вроде как и молоко, но чего-то не хватает. И намного дороже обычного коровного.

Ням-ням.



Мать-природа мудра и милосердна. Чтобы еда не убежала, её надо сначала немного придушить.
И можно есть, пока тёплое.

(no subject)

Очень хочется обычной такой, рабоче-крестьянской яичницы с беконом и сыром и перцем.

Но загреметь в больницу не хочется.

worklog: загадочные приключения ФАПЧа и SPI через DMA в STM32F072.

Собрал платку с оным чипом. Мне от неё надо только два порта SPI и USB, заодно ещё вытащил I2C и пару уартов - может быть, пригодится.
Кварц (хотя он и не особо нужен) на 8 МГц - осциллом смотрю: генератор стартовал.
А вот инициализация ФАПЧа из кода, порождённого CubeMX, не работает по непонятным пока причинам.
Рыться в этой лапше я не хочу - придётся, как в старые времена, снова написать самому.

Загадка в том, что иногда (редко) плата таки стартует после сброса, так что причина может быть не совсем программной.

Тупые индусы нахуевертили "совместимый" и "переносимый" код так, что сам Сатана будет плакать, пытаясь понять, что это за вонючая херь.
Написал просто инициализацию HSE и PLL - заработало как должно.




Оказалось, что победить передачу одного байта "в лоб", простой записью в регистр данных SPI, не так-то просто. Два байта - легко, а вот один не получается: передаётся всё равно два (записанный и нулевой). Потому что регистр данных в модуле SPI 16-битный, но даже если обращаться к нему как к 8-битному, всё равно почему-то передаётся два байта. Бодался-бодался, плюнул, написал функцию, которая делает то же самое, но при помощи DMA -- заработало. Хош один байт, хош десять. Работает!

"Перекрёсток" всё?

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

worklog: iMX6ULL, новая версия модуля IRL

Это вот он:

DSCN2679

Если он заработает (для полной проверки потребуется не один день, мягко говоря), это будет один из немногих удачных проектов, которыми в самом деле можно немного даже повыпендриваться.

Collapse )

worklog: USB - бессилие, ярость, отупение, триумф.

Я докопался до того, что передача данных (т.е. запрошенного дескриптора) в самом деле идёт и завершается успешно. После этого хост ещё раз сбрасывает шину и... всё. Таймаут, снова запрос того же дескриптора - в общем зачёте четыре раза так, затем шина отключается совсем.

И до настоящего триумфа ещё, конечно, далеко, но я наконец-то понял, почему прекращается обмен.

Это же элементарно.

Хотя нет, нихера не элементарно. Это ещё догадаться (или заметить, что это не очень внятно описано в RM) надо, что каждая конечная точка после завершения каждой транзакции автоматически сама себя отключает до следующего раза. И все запросы к ней, пока она отключена, отфуболиваются с квитком NAK. Чтобы получить следующую порцию вкусных данных, конечную точку надо снова принудительно включить тогда, когда мы к этому готовы.

И вот, после нескольких дней блужданий впотьмах, я нашёл -- обработка прерывания GINTSTS.IEPINT (точнее, DIEPINT.XFRC): этот флаг выскакивает, когда передача запрошенных данных (дескриптора, в рассматриваемом случае) завершена. Мы тут отключаем бит маски прерываний TxFIFO (DIEPEMPMSK), вызываем коллбэк (который будет, наверное, делать что-то чрезвычайно полезное) и... именно тут надо было бы включать конечную точку снова. Но это не было сделано и вообще есть некая путаница - для модуля USB в STM32F7 конечные точки IN и OUT, даже если они с одним и тем же номером, это разные сущности. Поэтому в обработчике события от IN0 нужно включать точку OUT0, чтобы контрольные запросы продолжали бы приниматься.

И вот, наконец, пришёл следующий setup:
bmRequestType: 00, bRequest: 05
wValue: 0006, wIndex: 0000, wLength: 0


А это самый настоящий SET_ADDRESS. Хост говорит мне, что нужно поставить адрес 6, по которому со мной и будут разговаривать после подтверждения операции.

Не совсем гора, но маленький такой камешек с плеч упал-таки.

Collapse )

Храбрый повар.

сделал так: купил креветок среднего размера. Разморозил, почистил. Взял муку, яйцо куриное 1 шт, кефир, кокосовую стружку, чеснок молотый, красный перец в порошоке. Смешал в некой пропорции, добавил ещё воды, чтобы оно жидкое было. Сковородка с маслом, слой толщиной в сантиметр-два. Обмакнув их в кляр, бросил туда креветки. Минуту обжарил на одной стороне, минуту на другой. Сижу, жру. Доволен. Как это называется, я не знаю (наверное, это можно назвать "свинство").

Самое обидное - осталась миска кляра, а креветки уже кончились. С другой стороны, есть индюшатина, филе. Если порезать тоненькими кусочками, чтобы быстро прожаривалось, можно будет поставить ещё один смелый эксперимент.

Но я щас, кажется, засну.