Запорожье - Севастополь - Ялта - Запорожье
Тут был:
Часы сверил, врут на 15 минут:
Ел миндаль:
Пальмы на набережной в Ялте местами таки померзли:
Имхо Ялта того не стоит, сколько она за себя просит :D
1100 км
Тут живет, умеренно жалуется на жизнь и умеренно хвалится успехами умеренно толстый хомяк
Запорожье - Севастополь - Ялта - Запорожье
Тут был:
Часы сверил, врут на 15 минут:
Ел миндаль:
Пальмы на набережной в Ялте местами таки померзли:
Имхо Ялта того не стоит, сколько она за себя просит :D
1100 км
Квенда: сервис и программка для андроида (у меня опять какие-то непонятные завихи у телефона - не хочет ничего устанавливать через маркет: пишет "Закачка начинается" и тут же все заканчивается, поэтому мне полезнее сейчас ссылки на apk), которые грубо говоря подсказывают - на что есть смысл посмотреть "где это мы сейчас" или по дороге куда-нибудь
Поглядим/потестим на выходных :)

Уха.. или не уха, а рыбный суп со сливками - я х.з. что это такое получилось
Играюсь с мультиваркой вечерами :-D
.. и море/девки, ради которых все стараюсь? :)

Стараясь в плеере наткнулся, очень годно имхо:
.. за последние лет 10 - 94 кг :)
Вроде и не такое, чтоб достижение.. 95 было уже давно, НО - это ж не то, что сходил в туалет - и вот тебе показатели ;)
"Живой вес" так сказать
Эпический подвиг совершил на выходных: перенес одну убунту на другой диск, поставил дома новую убунту, и после этого все еще и работает :)
На носу - день Святого Патрика.. хочется вкусного пива
(Увидел сегодня в "атб")
Внезапно макретологи поняли, что неокучен вкус
А еще можно сделать "Сухарики со вкусом глютамата натрия" :) - я первый в очереди покупать, с детства глютамат обожаю
.. что у меня 4-я группа крови, положительная
(гугл это увидит и точно запомнит.. а уж гугл никогда ничего не забудет)
Похоже новая симпатия
Ну очень годно на первый взгляд.. на второй - буду смотреть :)
Чем можно заняться в будний вторник на следующей неделе в Днепропетровске?.. И город рядом, 70 км, а был в нем раз 5, раз на вокзал за дитем ездил, а то - проездом
Уныние..
:)
Вчера забил на беготню; первый раз за полных 4 недели
Показометр напольный сначала показал, что я набрал 3 кг, ближе к конку месяца показал, что они опять пропали; так что 95 кг +/-
Но налицо перераспределение массы по организму :)
Слегка поднадоело :(
Тоже - в список "Смотреть": "Убить пересмешника"
Фильм занимает второе место в рейтинге «наиболее выдающихся фильмов всех времен, составленном Американским киноинститутом в 2006 году.
Дочитаю книжку и посмотрю как раз..
Дочитал; думаю - надо ли смотреть :)
Гадский "киевстар" (который купил у "билайна" мой домашний интернет и все чтото там химичит с настройками) убрал vpn авторизацию днями - т.е. ничего не надо делать для доступа в сеть
Одновременно с этим начал глючить rtorrent - тупит как зараза.. и на что тут грешить? на изменения в настройках естественно
Теперь не получается почти никогда с работы зайти удаленно в веб-морду rtorrent-а поставить что-нибудь на закачку :(
Что за фигня эти ваши орбитреки?
Не пропуская ни дня насилую его по 40-50 минут 4-ю неделю; и что? Осточертело аниме про мехов и набрал 3 кг
Вернулся к "нейтральной музыке" - может в этом дело?.. ;)
з.ы. даже не знаю теперь, что лучше - бегать или "бегать".. тут вроде погода пофиг и ходить никуда не надо, зато там - природа/собаки/etc :)

А куда деваться..
Еще бы тапочки с подогревом (только где найти а) тапочки с подогревом б) 44 размера)

Ну а что делать :)
Из обрезка пластиковой "доски" (почему-то не выброшеного); дешево и сердито
.. ничегонеделания :)
На работе с богопротивным маком чего не хватает? часов, вот дошли руки делать
з.ы. до чего этот ипад отвратительно фотографирует :(
Скажем - 90 кг.. ну к примеру к началу весны :)
Внезапно обнаружил, что на орбитреке тоже неплохо: 2 серии типичного аниме по 25 минут помогают хорошо провести эти 50 минут, а нагрузка (сначала вроде как чепуховая) очень даже ничего..
И не надо ждать потепления :)
Больше для того, чтобы группу свою узнать :)
Узнал (я и знал когда-то, но как-то умудрился забыть.. помнил, что "крайняя" в списке) - 4-я
Дали печеньку, стакан чая, взяли пол-литра крови, "голова не кружится? идите в кассу за деньгами" (вообще я не за деньги ходил сдавать, а ребенку знакомых знакомого, но дают - бери, $3 заработал :) )
Никаких побочных эффектов не ощутил, кому-то помог - молодец

Так вот Jazzamor теперь у меня не выключается из наушников, а дома что делать?
А ничего, прямо в планшете открыл music.google.com и слушаю, и плеер отдельный триста лет не нужен :)
Вообще мне надо потестить рсс с роликами на ютубе,совмещу тогда уж полезное с приятным
Ссылка - вот ссылка на ютуб
Не подумавши о заговоре дворников (которые не чистят лед с тротуаров) прогулялся сходил в магазин; еле дошел :(
Но обнаружил полезное - "тормозить двигателем" можно и пешеходу, очень эффективный способ не грохнуться
В кои-то веки что-то полезное, а не что я ел или пил :)
Моя убунта безнадежно устарела оказывается (9.04); по принципу "что работает то не трогай" я и не трогал ее, а когда тронул (sudo apt-get update) то оказалось, что все ссылки дают 404 - нет больше файлов для моей системы
И просто так "поднять" до 10 или 11 не получится, не поддерживается upgrade для нее.. что-то я профукал
В общем через apt-get ничего не получалось установить :( но оказалось есть простой способ пофиксить это: адреса репозиториев хранятся в файле /etc/apt/sources.list - в виде строчек типа
deb http://ua.archive.ubuntu.com/ubuntu/ jaunty main restricted
Всего-то и надо, что поменять ua.archive.ubuntu.com (или что там указано) на old-releases, т.е. на
deb http://old-releases.ubuntu.com/ubuntu/ jaunty main restricted
И все - sudo apt-get update проапдейтил список и можно ставить; я ставил mediatomb
Это медиасервер upnp, который "вещает" в локальную сеть видео/музыку/картинки
Простой, как двери - установился (sudo apt-get install mediatomb) и работает. Настраивается через веб-интерфейс http://host_name:49152 (номер порта можно где-то там в конфигах поменять, только зачем?..) - добавляются папки, которые "расшариваются" и после этого upnp-клиенты (xbmc, модные телевизоры и т.д.) видят ресурсы
Игрался, потому что посмотрел одну серию "Guilty crown", которую через iTunes залил в айпод, а как следующие смотреть, если синкится дивайс только с одним айТюнсом и тот остался на работе? Качаю/пробую разные видео-плееры, которые и всеформатно-ядные, и знают, что такое upnp (не так их и много, но есть)
Билайн продал вроде ж свой интернет домашний киевстару (это наши местные украинские "игроки на рынке сотовой связи" :) ), в связи с чем что-то они там меняют в настройках - короче, мой интернет совсем перестал конектится.. а новые настройки на мою устаревшую (ну да) убунту не становятся.. а затевать переустановку системы - выше моих сил; так что я роутер подключил прямо к шнурку интернетному, чтобы он сам конектился и дальше в сеть (проводную/беспроводную) уже отдавал готовый интернет.. перенастроил dhcp на сервере, чтобы он адрес default gateway/dns правильный отдавал, вроде все работает по квартире. Чует попа, будут проблемы теперь с удаленным доступом, но извне админку модема я вижу, так что уже с работы буду настраивать редиректы в домашнюю сетку (очень уж это удобно - торентами с работы рулить, svn домашний активно юзаю)
Теперь можно и на аниме залипнуть :)))
Убрали елку, статистика: 72 стеклянных игрушки, ок. 110 всего - пластиковые/ниточные/прочие; давно хотел пересчитать все :)

Теперь надо начинать ждать море ;)
"и я, брут.." :)
Ипад прикольный, а я падкий на халяву ;)
Следайте мне забыть как я ел только что грейпфрут :)
Умничал: его надо было разрезать и есть ложкой - а не чистить и есть как апельсин
только разрезал я его неправильно :)
На свой ДР заказал подарок, вот юзаю:

Я не то, чтоб кофеман, но нравится сам процесс (делания/выпивания) и запах. Теперь в доме 3 кофеварки - эспрессо, "турка" и эта
Жалко на работе нет открытого огня, а то баловался бы ею на работе :)
.. начнет ли телевизор смотреть в тебя?
Меня этот вопрос начал занимать лет в 5-6-7, точно не помню; докладываю: опытным путем установлено, что перед телевизором можно ходить голышем и никто не осудит
Что за опытный путь? Я прятался за креслом и показывал диктору новостей дулю
:D
з.ы. вообще я гуглю, из какого фильма фраза про бездну, но не нагугливается что-то пока.. почему гуглю? скучаю, слышаю ТНМК / С.П.А.М, а там в "прикольных вставочках" есть эта фраза, вырезанная явно из видеофильма (потому что с "характерным" переводом)
1. Представьте, что вы у реки.
2. Здесь холодный горный воздух, вы слышите пение птиц.
3. Никто, кроме вас, не знает об этом тайном месте.
4. Вы полностью скрылись от безумного места под названием «мир».
5. Успокаивающие звуки водопада наполняют воздух спокойствием.
6. Вода прозрачнее слезы.
7. Вы можете легко разглядеть лицо человека, которого вы держите под водой.
Вот если/когда мне надоест читать "Плоский мир", то надо прочитать что-то страшное Кинга, а то я только один наверное фильм смотрел (про бешеную машинку), а хвалят же
Хотя я как-то не очень понимаю, как можно читать книжку и бояться
Вот когда я первый раз смотрел "Чужого" (в пустом кинотеатре на 8-м ряду) - вот тогда мне было ОЧЕНЬ страшно; я 1-го "чужого" до сих пор боюсь пересматривать :)
В обыкновенном шведском городе жила обыкновенная шведская семья: папа имел маму, брат имел сестру, а Малыш хотел иметь собаку.
А.Линдгрен «Малыш и Карлсон»
"По долгу, а не для развлечения" подписан на полторы сотни всяких rss, из которых и скопипастил
Собственно все, чем занимаюсь все выходные - смотрю несмотренное, пересматриваю смотренное
Какой отстой, какой отстой этот новый "служебный роман".. смотрю всего 15 минут, а уже сил нету..
Наконец посмотрел этот мультик про вязаных тряпичных человечков
Это офигенно круто..
з.ы. ну не про вязаных (хотя некоторые именно так для меня выглядели)
Внезапно с утра узнал, что моя (с моей точки зрения абсолютно) бесполезная программка в AppStore побывала на 8-м месте в топе платных
Программку я только делал (в смысле не выдумывал), так что заслуга небольшая (идея/продвижение сейчас важнее), но все равно "мелочь, а приятно"
з.ы. хотя я вообще слабо представляю, как это все там происходит.. с "милиардами" скачек ангри-бердсов вообще никто ж не сравнится наверное, а они не на 1-м (и не на 2/3/4/... месте), так что все то происки маркетологов :D
Нравится:
А еще у нее есть типичные.. "завывания с минарета", но как ни странно (регилиозно ж нетерпим) нравится :)
Новый год наступил и надо "сбрасывать счетчик" и ждать что-нибудь еще - например, море/пляж :)
Буду тренироваться пить "брют", скорее мне понравилось
Отвел душу дарением подарков; наверное, Новый год люблю так потому, что есть повод дарить подарки, в этом году бил рекорды (за 5 минут до "курантов" не мог вспомнить, где припрятал две коробочки, но все нашлось). Если верить "пострадавшим" :) на упаковку художественную потратил время не зря :)

ну и все в таком духе :)
Ждать подарки особо не жду, поэтому некоторые не-полученные подарки/поздравления и не расстроили
Зато полученные понравились; от "тайного санты" в конторе (надо теперь заняться вычислением, от кого же подарок) очень приятный подарок например.. или вот

вчера наконец смотрел Love Actually (ну да, в 256-й раз, так что теперь?..), сравнивал субтитры с переводом, непонятное смотрел в словаре, умничал :)
Новый год в общем вcтречен более чем хорошо, будем надеяться, что и пройдет он теперь не хуже :)
Ну маскарадная шапка напялена - свято почалося! :)
Ближайшие 4 дня ни о чем не думаем, не переживаем, смотрим нового мужа пугачевой по ОРТ в огоньках и топчем оливье
Ура
А сегодня стал; ну вроде ничего серьезного, но "как говорицца - жизненный опыт"
Свято совсем близко, полным ходом идет упаковка подарков; такая вот феечка, охраняющая коробку:

Вот они часто достают "бомбочку", швыряют ее на пол, та с дымом взрывается и нинзи под покровом дыма ретируются
А почему ни в одном фильме с нинзями не было сцены, где бы в схватке нинзя получал по карману с бомбочками и те там не взрывались?.. Забавно ведь было бы имхо :)
ну или что-то типа:
Вообще странно, что нет китайских боевиков с лайт-сайберами и прочим (индийские "звезные_войны" я на ютубе видел, спасибо, хватило)

Выбор шампанского, которое будет первым выпито в Новом Году - имхо очень важно :)
Что/как выпьешь, так и весь год питься будет, так ведь по идее.. из 6 (пока) претендентов теперь надо выбрать кандидата (и дублера, как у космонавтов) :-)
Просто новиготнее:


Не прошло и пол-года (ну больше года если на то пошло) и я посмотрел "Елки"
Я терпеть не могу русское кино - так уж сложилось; советское - люблю (и то не все), а русское - терпеть не могу. С исключениями, но бОльшей частью
Ну так вот внезапно "Елки" - очень новогоднее кино, приходится признать :)
Или бутылочка "черного мускателя", или я был предвзят
Образцы вчера курьер принес, теперь надо быстро (не откладывая в длинный ящик на 6 лет) что-то с ними сделать.
Сделать хочу еще одни часы - на работу :) себе; ТуДу:
1) часы + дата: ds1307, которая сама будет считать время, учитывать високосные года и т.д. На 3В батарейке резервной обещают часы будут работать 10 лет
2) температура: ds1820 (если не выбросил/найду), или ds75
3) питание от усб + удлинитель усб (чтобы можно было флешку втыкать, раз уж они 1 порт в маке займут)
4) ?? надо придумать чего-то
Я все играюсь с всяким-разным ненужным, что когда-то позаказывал "нахаляву"
Захотел часы еще и себе на работу сделать :) только на специальном часовом чипе, который бы и высокосные года считал, и от резервной батарейки работал бы, когда электричества нет - заказал образец (ну и еще до кучи на будущее чип для can-шины)
Заказал да и заказал, типа "через месяц может почта что-нибудь принесет".. неделя всего прошла наверное, сегодня позвонили сначала из киева, потом из запорожской конторы - куда курьеру "пакет из-за границы" принести :)
Аж неудобно O:-)
Я предупредил!
Я не досмотрел до конца, но логично было бы, если бы там (в конце) шест не выдержал
О_о
Не, не мебель по феншую расставили - просто инет починился
Да что скромничать - ПОЧИНИЛ! :)
Инет начал с неделю назад выбрыкиваться, сам по себе пропадать и подолгу не восстанавливаться, позвонил в сапорт - пообещали до вчера все решить. Вчера пришел мастер-монтажник (меня правда дома не было, а жаль), переобжал кабель, переткнул его в другой порт где-то в свитче на крыше - вроде (с роутером "железячным") заработало
А вечером та же фигня - роутер тоже связь как потеряет, так по 10 минут найти не может, убунта вообще ни в какую.. пришлось логи пристально посмотреть - оказалось, access denied модем убунте говорил, когда она конектилась
И пофиксилось всего-навсего изменением имени пользователя с 000123456 на 000123456@internet.beeline.ua
Сдается мне в свете покупки интернета киевстаром у билайна они меняют сервера авторизации и "старые" сервера постепенно вытеснились новыми; а адрес сервера авторизации иногда меняется (в смысле его IP адрес для одного и того же доменного имени), видимо раньше чаще выдавался старый, а теперь чаще/все время - новый, который начал меня "отбуцывать"
Короче задним умом можно что угодно обьяснить :)
А я уже (с роутером то худо-бедно работает.. кстати почему - пока не понятно :) ) начал думать - как дома инфраструктуру через роутер завернуть.. Все ж настроено как часы, все работает и трогать не хочется (раздача ip, dns сервер, удаленный доступ, svn-ы с firewall-ами) - садись и плачь, себя жалей :)
Начал даже (каюсь-каюсь) размышлять, к кому бы переключится; есть неск. вариантов, но то дороже, то фич меньше (хотя бы ретрекер torrents.ru в внутрисети билайна - что означает скачивание популярных релизов на 100 мегабитах)
Так что щастье - ничего переделывать не нужно :)
Ровно год назад ДР очередной прошел в ацких муках и кресле стоматолога
Так что на фоне этого вчера просто идеальный день :) был: очередная попытка сделать сырное фондю - эпик вин!
Хоть сравнивать не с чем, имхо не идеально конечно, но очень хорошо; надо вместо "шардоне" что-то еще попробовать, ну и с дозировками поиграться
А в конторе, где я обычно покупаю разное, нет и штуки такого:

Проэкспериментирую с выводными светодиодами, не получится - надо покупать в интернете.. А что делать? Душа бажае свята..
Пугает и смешит меня эта запись:
keywords[[btn tag]]
з.ы. внутренняя пара скобок - посылка метода обьекту, внешняя - доступ к массиву

Светящаяся ветка, которую я клятвенно обещал себе сделать еще года два назад :)
Это одна ветка ветки :) в финале их будет несколько, на каждой синие светодиоды (для количества просто добавил зеленый) будут мягко пульсировать, 7 независимых "веток" пульсации
Должно быть хорошо :)
Смотреть "то самое кино" еще вроде рано :) а уже чего-то такого НГднего хочется - так что в очереди Санта-Хрякус: Страшдественская сказка
Отзывы правда на кинопоиске разные, но лучше раз увидеть, чем прочитать сто отзывов, так что будем смотреть сегодня вечером, буду с книжкой сравнивать (не знаю по какой уж причине я перестал читать "Плоский мир".. вот читаю, когда время появляется)
upd: длинновато, мрачненько, не читая книгу вообще не поймешь, о чем речь, атмосферненько (страшдественская фоновая музыка все время напоминает, что"свято наближаеться"), понравилось
это я в воскресенье утром:

(я сдуру сел "посмотреть" на скайрим и закончил смотреть в 5:11 утра.. и главное смотреть не на что, все думал ".. ну вот сейчас перепрусь через эту гору, посмотрю, что там - и спать")
.. вчера была проделана; и проделана хорошо
В ошибки я отнес кривоватый шим для яркости цифр - противно подрагивали серменты, особенно когда яркость низкая, так что вчера сел и переоптимизировав переписал основной код заново
Получилось намного лучше; выяснил неприятное - чувствительности мышиного датчика хватает реагировать на свет настольной лампы, а вот есть ли верхний свет в комнате или вообще темно - ему пофиг :( Раз так - то методом научного тыка установил порог срабатывания всего для 2-х значений яркости - максимального и комфортного для темного времени суток
Т.е. теоретически когда будет яркое солнце - должна будет включиться максимальная яркость, все остальное время у экрана умеренная яркость, которая и ночью по глазам не бьет, и цифры видно хорошо
Подправленные исходники - здесь (в т.ч. поправленная схема)
Это - внутренности лампы-энергосберегайки:

Хорошо что я ее не выбросил - мне срочно понадобилось ферритовое колечко, зелененькое на переднем плане
Из него (а также 2 кусков провода, транзистора кт315 и резистора) наколхозил источник питания для светодиода:


Витков на колечке - сколько влезло, меньше 20. Спаял компактный вариант, с 2-я такими светодиодами и с ААА батарейкой, кинул на ночь на шкаф вместо ночника :)
Зачем: НГ же все на носу, в доме с каждым Новым Годом все больше разных подсвечников (которые типа домика, в который вставляется свечка)
Вот была идея вместо свечки вставлять такую приблуду, чтоб не переживать за пожар и прочее.. на новогодне-праздничные вечера одной батарейки (даже полудохлой, которая никуда больше не сгодится.. а тут высасывается пишут очень хорошо) хватит
Только не доволен результатом: с 2-я светодиодами светит ярко, но эффект все же не тот, что со свечкой: или свечка светит еще ярче, или все-таки из-за спектра (тут свет холодный)

Вот то в кляксе флюсовой и проводках - многострадальный термометр, который пришлось выпаивать, а потом жилкой перепаивать
Сынище сошкреб в кучку подаренные на ДР и накопленные деньги, заказал для апгрейда железяк, попросил забрать (причем поставил уже перед фактом, заберу или искать кого-то еще), выбирал как-то там сам
И собирать сказал будет с дружбаком, папина помощь не нужна уже
Проц с 4 ядрами, память, видео.. играться короче, было б для дела :(
Вот так вот.. Прикол, но я свой первый компьютер начал ковырять примерно в таком вот возрасте, правда тогда это был деревяный (фанерный) ящик с 1 мегагерцовым процессором и 16 килобайтами памяти :)
Всего то четверть века прошло. НИХРЕНА себе, четверть века прошла с тех пор
Причем намного фейеличнее, чем прошлый (там я просто "доставил" ножки индикатору из резисторов в мелких корпусах, получилось даже как-то изящьненько :)
А тут - ds75 в библиотеке eagle не было и я добавил ее сам; и связал неправильно ноги, 4 ножки с одной стороны попутал местами. Неудивительно, что вчера термометр не заработал, хорошо хоть сообразил быстро
Пришлось выпаять датчик (оплетка для выпаивания рулит), порезать дорожки, припаять назад и жилкой от провода попаять ноги правильно - после чего заработало (ну маладец, чо там.. но сам себе геморой придумал на абсолютно пустом месте)
Думаю, откуда питание брать; и еще думаю, что стратил, мысль поздно пришла: надо было на плату мини-usb разьем добавить и "большой" usb-разьем - был бы и удлинитель для флешки сразу, и питание от usb.. такое и на миник на работе можно было бы поставить, не стимпанк, но тоже забавное :)

От я му.. неправ был; я в схему часов забыл резисторы добавить, к сегментам
Распаял мелочь вчера, лег спать и дошло.. Как вариант сделаю что-ли "ножки" из выводных резисторов и на них припаяю уже цифры
*фейспалм*
А вот интересно (чисто академически так сказать) - мусульманское порно - оно какое? медленное снятие паранджи?..
Заказывал для древнего кпк аккумулятор, неожиданно посылка пришла всего через 3 недели (21 - 4 = ну да, 17 дней)
Забрал, внутри неожиданно обнаружил ручку
Мелочь, а халява :)
Похоже я их закончил; не все идеально, но имхо достаткол для разминки:
(кликабельно)
Итак получилось вроде все, что хотел:
Позже выложу исходники, малоли, пригодится кому
Для улучшения настроения достаточно сесть и посмотреть "Амели" или "Реальную любовь" (если дело перед Новым Годом)
(Ну и запить пивом или вином ;) )
Еще кусок: DS75 термометр
Вчера я с ним промудохался :( - работал на макетке в тесовом проекте специально для чтения температуры, воткнул вчера в макетку с часами - а хрен вам
В общем, бубном тарахтел-тарахтел вокруг него, потом зачем-то прошил фьюзы, чтобы контроллер тактовался не от внешнего кварца (14 МГц с копейками, просто какой был в небольшом корпусе), а от внутреннего генератора 8 МГц - и все заработало.. Может кварц плохой или быстрый слишком, хз; поменяю да и все
В общем вот так он (термометр) подключается:

Уж проще некуда - питание, А0-А2 задают адрес, у меня тупо 0х00; линии SDA/SCL подтянуты к Vcc через 5 кОм резисторы. Кода немного:
unsigned char i2c_start(void)
{
TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN); //Send START condition
while (!(TWCR & (1<<TWINT)));
if ((TWSR & 0xF8) == TW_START) //Check value of TWI Status Register
return(0);
else
return(1);
}
unsigned char i2c_sendAddress(unsigned char address)
{
unsigned char STATUS;
if((address & 0x01) == 0)
STATUS = TW_MT_SLA_ACK;
else
STATUS = TW_MR_SLA_ACK;
TWDR = address;
TWCR = (1<<TWINT)|(1<<TWEN);
while (!(TWCR & (1<<TWINT)));
if ((TWSR & 0xF8) == TW_STATUS)
return(0);
else
return(1);
}
unsigned char i2c_sendData(unsigned char data)
{
TWDR = data;
TWCR = (1<<TWINT) |(1<<TWEN);
while (!(TWCR & (1<<TWINT)));
if ((TWSR & 0xF8) != TW_MT_DATA_ACK)
return(1);
else
return(0);
}
unsigned char i2c_receiveData_ACK(void)
{
unsigned char data;
TWCR = (1<<TWEA)|(1<<TWINT)|(1<<TWEN);
while (!(TWCR & (1<<TWINT)));
if ((TWSR & 0xF8) != TW_MR_DATA_ACK)
return(TW_BUS_ERROR);
data = TWDR;
return(data);
}
unsigned char i2c_receiveData_NACK(void)
{
unsigned char data;
TWCR = (1<<TWINT)|(1<<TWEN);
while (!(TWCR & (1<<TWINT)));
if ((TWSR & 0xF8) != TW_MR_DATA_NACK)
return(TW_BUS_ERROR);
data = TWDR;
return(data);
}
void i2c_stop(void)
{
TWCR = (1<<TWINT)|(1<<TWEN)|(1<<TWSTO); //Transmit STOP condition
}В конце даташита на DS75 есть последовательности - "что надо сделать, чтобы.." В след. процедуре сначала задается адрес термометра (0х00), а потом читаются данные из него
#include "twi.h"
...
u08 measureTemp () {
i2c_start();
i2c_sendAddress(0x90);
i2c_sendData(0);
i2c_sendData(0);
i2c_stop();
i2c_start();
i2c_sendAddress(0x91);
u08 ms = i2c_receiveData_ACK();
i2c_receiveData_NACK();
i2c_stop();
return ms;
}
Так не совсем правильно конечно, но в моем конкретном случае сойдет: я использую 9-битную точность (если так можно выражаться), если я правильно все понял, то это означает, что под знак отводится бит, под целые градусы - 7 бит и под десятые доли - 1 бит, т.е. точность в пол-градуса; в младшем байте эти пол-градуса и храняться, а в старшем - или просто положительное значение, или отрицательное, если старший бит установлен в "1"; поск. я не собираюсь (пока) измерять температуру зимой на улице, то значение старшего байта == температуре
Чтобы подключить 4 цифры к контроллеру надо в самом простом случае 12 выводов контроллера:
Цифра - фактически 8 светодиодов в одном корпусе, расположенных так, чтобы визуально образовывать кусочки цифр (7 сегментов и точка), соединенных вместе катодом или анодом
Чтобы не было такой мешанины в схеме (и при разводке) удобнее использовать сразу много цифр в одном корпусе; в библиотеке игла не нашлось с 4-ю, но как-то так:

Каждый сегмент будет гореть, если к нему подать напряжение (резисторы нужны, я их поленился нарисовать); если у цифры общий катод, то этим катодом ее надо соединить с "землей" и на выводы a - g, dp подать напряжение - кусочек цифры загорится; или в конкретном случае на выводы 12 - 19 контроллера надо подать "1", а на 8 - 11 - "0"
Только если так сделать (скажем, подать "1" на a, b, c, d, e, f и "0" на CA1, CA2, CA3), то зажгутся 3 цифры "0", что явно не очень полезно. Поэтому используют такую фигню, которая связана с инертностью человеческого зрения: на CA1 подаем "0", на остальные катоды - "1", на сегменты подаем комбинацию для вывода нужной цифры - на экране горит нужная 1-я цифра, 2-я и 3-я не горят вообще; потом подаем "0" на СА2 и "1" на остальные катоды, выставляем сегменты для другой нужной цифры - горит 2-я цифра, 1-я и 3-я не горят вообще
Точно так же - с 3-й цифрой
А теперь (прямо как моргунов обьяснял за танцы) делаем все это быстро-быстро :) Формально ничего не меняется, горит в каждый момент времени только одна цифра; но глаз видит все 3, прицем каждая показывает свое значение.. Только переключать катоды надо быстро, чтобы не было мерцания
Вот куски кода из вчерашней фотографии; код сложнее, чем мог бы быть, потому что: я же сильно хотел попользовать меги, которые у меня болтаются без дела; они мелкие шо зараза, поэтому разводка платы должна быть чем прощеЮ тем лучше - а с таким условием проще всего если разные сегменты подключены к разным портам - чтобы зажечь скажем цифру "5" мне надо выставить по несколько бит каждому из 3-х портов (не поменяв при этом те биты, которые не относятся к цифрам, т.е. PORTC |= 0x34 не прокатит, потому что обнулит "не те" биты):
// digit 5
#define PORTB_5 ((1 << SEG_D_SHIFT) | (0 << SEG_E_SHIFT) | (0 << SEG_DP_SHIFT))
#define PORTC_5 ((1 << SEG_A_SHIFT) | (1 << SEG_F_SHIFT))
#define PORTD_5 ((0 << SEG_B_SHIFT) | (1 << SEG_C_SHIFT) | (1 << SEG_G_SHIFT))
const u08 pb_d [] = {PORTB_0, PORTB_1, PORTB_2, PORTB_3, ...
Чтобы не мешать остальным "пользователям", которые подключены к тем же портам, цифры выводятся вот так:
void showDigit(u08 digit) {
PORTB &= ~PORTB_E; // обнуляем все биты, которые используются цифрами
PORTC &= ~PORTC_E;
PORTD &= ~PORTD_E;
PORTB |= pb_d[digit]; // зажигаем биты, которые нужно показать
PORTC |= pc_d[digit];
PORTD |= pd_d[digit];
}
т.е. я сначала выключаю те линии, которые используются цифрами (и только их!), а потом зажигаю нужные сегменты (в массивах pbd, pcd, pd_d как раз и используются вот те дефайны для цифр)
Т.е. с формированием цифр понятно; теперь как их показывать: я использую для этого счетчик Counter0, он 8-битный, т.е. он тупо прибавляет себе единичку на каждый тик, до 256, вот я в каждом тике и меняю - какой катод должен быть установлен в "0" (та цифра будет гореть). Прерывание у меня возникает, когда счетчик доходит до заданного значения, почему именно так - я сейчас уже и не помню.. можно в теории и просто по переполнению было сделать
Но кроме этого тут еще один финт ушами: я завел volatile переменную, которая увеличивается с каждым тиком счетчика (volatile - чтобы ее никакая зараза не соптимизировала, потому что ее значение меняется в прерывании, т.е. непредсказуемым образом); доходя до определенного значения она просто обнуляется - все. Ну, не все - есть еще одна переменная, brightnes (ну сэкономил я почему-то на букве, так и болтается), значение которой меняется каким-то сейчас не очень важно каким именно способом
ISR(TIMER0_COMPA_vect) {
if (++pwm >= pwm_step)
pwm = 0;
setNextDigit(show_point);
}
Зачем она нужна? Затем:
void setNextDigit(BOOL pointVisible) {
switch (digit++) {
case 0:
CAT_4 = 1;
showDigit(d1);
CAT_1 = brightnes < pwm;
break;
case 1:
CAT_1 = 1;
showDigit(d2);
CAT_2 = brightnes < pwm;
showPoint(pointVisible);
break;
case 2:
CAT_2 = 1;
showDigit(d3);
CAT_3 = brightnes < pwm;
break;
case 3:
CAT_3 = 1;
showDigit(d4);
CAT_4 = brightnes < pwm;
break;
}
digit = digit % 4;
}
Допустим, pwm считает от 0 до 256 (т.е. pwm_step зададим 256) - а brightnes пусть установлена в 100: значит 100 вызовов функции из 256 на катодах будет "0" (цифры будут гореть), оставшееся время - "1", цифры погашены
Что это означает с учетом опять же инерционности нашего зрения? Что визуально яркость цифр будет меньше - т.е. имеем управление яркостью. Вообще говоря, получили софтварный ШИМ (PWM) - широтно-импульсную модуляцию. А brightnes может меняться например в зависимости от измеренного с помощью АЦП напряжения (я игрался просто переменным резистором, но на его месте должен быть фотодатчик, так что яркость будет меняться в зависимости от освещенности)
Но снова, чтобы не было мерцания, переключения должны делаться быстро-быстро :)