правда в отличии от предыдущего здесь почти нулевая истрия продаж. Толи маркетинг толи мухлеж, не купишь не узнаешь
Да вроде не совсем нулевая. 29 продаж и все отзывы положительные. Несколько человек сказали, что очень быстро доставляет. Типа, до Москвы -- две недели.
Immortal пишет:
Тоже беру Pro Mini и мегу328 сдуваю феном. Такие платы-доноры можно позже оживить запаяв туда 8 или 168
Вот за что я люблю здешний форум, так как раз за простые, но весьма эффектные решения, которы самому почему-то в голову не приходили. Есть у меня пара ардуин про-мини, стоЯщих по месту и выполняющих простейшие функции. Есть так же несколько старых мег8, которые давно уже просто лежат без дела. Только прочитав про "сдуваю феном", задумался, что мегам328п с ардуин можно найти более интересное применение, а вот мегам8 как раз будет самое место на тех ардуинах. Осталось проверить, все ли подойдет и можно приступать к трансплантации.
Парни, очень прошу не считать рекламой - не имею я отношения к этой компании, но я тут как-то писал уже про совершенно смешную цену на гнёзда С8 на блок в России. Тогда я заказал 20 штук и, честно говоря, ожидал звонка от менеджера, типа мол недоразумение. Нет, ни фига, вчера получил - всё нормально. Если ещё и без доставки (там несколько пунктов самовывоза в разных городах), то просто даром. В Москве, например, пункт самовывоза в двух шагах от метро - очень удобно, я вчера забрал без проблем.
Парни, очень прошу не считать рекламой - не имею я отношения к этой компании, но я тут как-то писал уже про совершенно смешную цену на гнёзда С8 на блок в России. Тогда я заказал 20 штук и, честно говоря, ожидал звонка от менеджера, типа мол недоразумение. Нет, ни фига, вчера получил - всё нормально. Если ещё и без доставки (там несколько пунктов самовывоза в разных городах), то просто даром. В Москве, например, пункт самовывоза в двух шагах от метро - очень удобно, я вчера забрал без проблем.
Лично я, как-то не впечатлен. В конструкции, где нагреватель встроен в жало, конечно есть свои преиущества, но одно такое жало стоит столько, сколько набор из 10 штук разных для Hakko-936.
Парни, очень прошу не считать рекламой - не имею я отношения к этой компании, но я тут как-то писал уже про совершенно смешную цену на гнёзда С8 на блок в России. Тогда я заказал 20 штук и, честно говоря, ожидал звонка от менеджера, типа мол недоразумение. Нет, ни фига, вчера получил - всё нормально. Если ещё и без доставки (там несколько пунктов самовывоза в разных городах), то просто даром. В Москве, например, пункт самовывоза в двух шагах от метро - очень удобно, я вчера забрал без проблем.
Кстати, у меня ящик DB9 папа, DB9 мама и корпуса у ним серые и цветные без дела валяются. Может быть, кому-то оно нужно? :)
Оно неплохо, но жало с негревателем замурованным - хранить неудобно, менять и стоит ощутимо дороже простенького этого, как его - ну, на который наконечники кругом вёдрами продают. У меня Лаки-720 уже несколько лет, бывало сутками работает и нормально. Хотя, и такие станции сейчас стоят дорого. Можно отдельно купить регулятор из этого набора и отдельно паяльник, если на станцию денег не хватает. Но фен всё равно понадобится. Недавно видел распродажу, где станция с феном стоила 1500р + тыща с кусочком доставка.
расходомер на трубу (счетчик) , если он считает то вода гдето открыта,самый простой вариант
Расходомер не предупредит, что кран в магистрали открыт и нельзя откручивать шланги рукомойника. :)|
Надо ставить давленометр (ну, манометр по-научному). :)
P.S.: Ничего дешевле не нашел, хотя наверно больше часа потратил на поиски.
Да ладно! Я специально не искал, но видел нормальные фены примерно за столько же... А этот плюс-минус лапоть ведь дуть будет со своими крутилочками никем не калиброванными. Впрочем, температура для фена не так уж и критична к точности - всё равно она сильно зависит от расстояния, от движения. Если есть тестер с термопарой, то можно будет и самому откалибровать.
P.S.: Ничего дешевле не нашел, хотя наверно больше часа потратил на поиски.
Вот даже не искал - в рекомендациях сама появилась: хороший набор, хотя, в коментариях иногда встречаются отзывы, что ничего описанного, кроме самой станции, нет.
Возможно, это же наш чел его придумал. У них сплав Вуда, который что-то нехорошее содержит - уже не помню состав, но ещё лучше плавится, если не ошибаюсь,, при 65гр.
Вот даже не искал - в рекомендациях сама появилась: хороший набор, хотя, в коментариях иногда встречаются отзывы, что ничего описанного, кроме самой станции, нет.
кстати кто подскажет датчик открытия крана? должен показывать открытия любого крана в стояке.
Сделать сужение на трубе, что-то вроде сопла. Манометр до сужения, манометр-после. При отсутствии расхода давление на манометрах равно, при расходе - различно.
расходомер на трубу (счетчик) , если он считает то вода гдето открыта,самый простой вариант
Расходомер не предупредит, что кран в магистрали открыт и нельзя откручивать шланги рукомойника. :)|
Надо ставить давленометр (ну, манометр по-научному). :)
В случае с манометром тоже может получится ситуация что все краны вроде как закрыты, а давление высокое. Это происходит из-за герметичности соединений.
Strannik, free shipping не всегда дает самый дешевый результат. Я к тому же сейчас вообще стараюсь не брать с бесплатной доставкой - без отслеживания почта или таможня ворует.
кстати кто подскажет датчик открытия крана? должен показывать открытия любого крана в стояке.
Сделать сужение на трубе, что-то вроде сопла. Манометр до сужения, манометр-после. При отсутствии расхода давление на манометрах равно, при расходе - различно.
у кого есть опыт использования? сколько они ходят ?
накипи там быть не может а клинить может только из за мусора, ставьте фильтр как рекомендованно перед любым счетчиком, также можно купить обычный советский квартирный счетчик уже с сигнальными проводами, (на рынке продают) но что и как от туда снимать я не знаю. в новостройках видел ставят сейчас такие
free shipping не всегда дает самый дешевый результат. Я к тому же сейчас вообще стараюсь не брать с бесплатной доставкой - без отслеживания почта или таможня ворует.
более-менее дорогие товары китайцы отправляют с полноценными трек номерами!
и ещё хочу сказать, что нужно обращать внимание, какой указан Free Shipping перевозчик - от этого очень сильно зависит скорость доставки!
Strannik, free shipping не всегда дает самый дешевый результат. Я к тому же сейчас вообще стараюсь не брать с бесплатной доставкой - без отслеживания почта или таможня ворует.
Free shipping конечно не всегда дает самый дешевый результат, более того он не всегда выдает даже то, что было с free shipping когда галочка не стояла. И часто поиск вообще не дает самый дешевый результат.
nevkon пишет:
Я к тому же сейчас вообще стараюсь не брать с бесплатной доставкой - без отслеживания почта или таможня ворует.
Это у вас жестко. У меня обычно все приходит. Но наличие отслеживания чвасто не связано с Free shipping, больше зависит от цены товара.
axill, а не пробовали писать на С++ для AVR? Я вот пишу на С++ и проверяю полученный машинный код в дизассемблере.
Использование классов в С++ совместно с define-макросами позволяет ускорить разработку прошивок.
Да и вообще при грамотном использовании C++ позволяет писать столь же эффективные решения что и решения на C, но при этом получать более читаемый и более безопасный за счет проверок компилятора код. А механизм шаблонов позволяет писать эффективные реализации обобщенных алгоритмов, что проблематично на C.
axill, а не пробовали писать на С++ для AVR? Я вот пишу на С++ и проверяю полученный машинный код в дизассемблере.
Использование классов в С++ совместно с define-макросами позволяет ускорить разработку прошивок.
Да и вообще при грамотном использовании C++ позволяет писать столь же эффективные решения что и решения на C, но при этом получать более читаемый и более безопасный за счет проверок компилятора код. А механизм шаблонов позволяет писать эффективные реализации обобщенных алгоритмов, что проблематично на C.
я сознательно не использую С++ хотя имею большой опыт его использования на компьютерах
С++ это более высокий уровень абстракции, но это не только плюс в проверках компилятора, эти плюсы стоят ресурсов управление которыми берет на себя компилятор
сейчас случайно видел очень мелкую маркировку на сменных жалах купленных на али
HAKKO 900M-T-B
LEADFREE
MADE IN YAPAN 13BL729 1366
Да вроде не совсем нулевая. 29 продаж и все отзывы положительные. Несколько человек сказали, что очень быстро доставляет. Типа, до Москвы -- две недели.
Вот за что я люблю здешний форум, так как раз за простые, но весьма эффектные решения, которы самому почему-то в голову не приходили. Есть у меня пара ардуин про-мини, стоЯщих по месту и выполняющих простейшие функции. Есть так же несколько старых мег8, которые давно уже просто лежат без дела. Только прочитав про "сдуваю феном", задумался, что мегам328п с ардуин можно найти более интересное применение, а вот мегам8 как раз будет самое место на тех ардуинах. Осталось проверить, все ли подойдет и можно приступать к трансплантации.
сейчас случайно видел очень мелкую маркировку на сменных жалах купленных на али...
а чем она сделана? Лазером?
скорее всего. немного оттенок отличается, но ямки нет. поэтому сразу и не заметил
Интересно, могут ли китайские лазерные граверы делать надписи на металле?
Я имею в виду самые дешевые, типа такого 500mW DIY Laser Engraver USB Carving Printer Machine Box High Power Speedy
Стоит ли покупать готовый, или лучше самому сделать? Намного ли дешевле получится?
Насколько я понял, работать с ним можно только в специальных защитных очках, а каких именно - зависит от длины волны лазера?
металл врядли. раза в 1.5-2 наверно дешевле выйдет. смотря с чем сравнивать. цены скачут
Интересно, могут ли китайские лазерные граверы делать надписи на металле?
Я имею в виду самые дешевые, типа такого 500mW DIY Laser Engraver USB Carving Printer Machine Box High Power Speedy
Стоит ли покупать готовый, или лучше самому сделать? Намного ли дешевле получится?
Насколько я понял, работать с ним можно только в специальных защитных очках, а каких именно - зависит от длины волны лазера?
ИМХО - игрушка из бумаги не белой трафареты делать, да на фанерке выжигать. Нормальный аппарат на CO2 лазере 40Вт с охлаждением от $600
http://ru.aliexpress.com/item/Free-Shipping-By-DHL-1PC-XD-40-CO2-40W-Las...
Нормальный аппарат на CO2 лазере 40Вт с охлаждением от $600
http://ru.aliexpress.com/item/Free-Shipping-By-DHL-1PC-XD-40-CO2-40W-Las...
Кстати, как частному лицу, такую штуку получиться через кордон протащить? Или как то мощность регламентируется?
Вот дешевле и мощнее: http://ru.aliexpress.com/item/Quality-Guarantee-High-Speed-Leather-Engraving-Tools-1000mm-s-50W-K40-CO2-Laser-Engraving-Machine/32368748085.html?spm=2114.10010208.100010.9.ID5m6l
А вот дешевле и с большим рабочим полем: http://ru.aliexpress.com/item/0-8-KW-Air-Cooled-Spindle-Motor-CNC-engraving-milling-grind-220-AC-65x185mm-ER11-4/1717232652.html?spm=2114.10010208.100010.5.ID5m6l
Вот дешевле и мощнее: http://ru.aliexpress.com/item/Quality-Guarantee-High-Speed-Leather-Engraving-Tools-1000mm-s-50W-K40-CO2-Laser-Engraving-Machine/32368748085.html?spm=2114.10010208.100010.9.ID5m6l
А вот дешевле и с большим рабочим полем: http://ru.aliexpress.com/item/0-8-KW-Air-Cooled-Spindle-Motor-CNC-engraving-milling-grind-220-AC-65x185mm-ER11-4/1717232652.html?spm=2114.10010208.100010.5.ID5m6l
У меня в РФ с доставкой дороже получается
Так я с доставкой и смотрел. Уже давно не покупаюсь на цену товара - всегда захожу и смотрю на строку итого.
Что то мне думается такие мощные лазеры никто не пропустит для простого обывателя
Парни, очень прошу не считать рекламой - не имею я отношения к этой компании, но я тут как-то писал уже про совершенно смешную цену на гнёзда С8 на блок в России. Тогда я заказал 20 штук и, честно говоря, ожидал звонка от менеджера, типа мол недоразумение. Нет, ни фига, вчера получил - всё нормально. Если ещё и без доставки (там несколько пунктов самовывоза в разных городах), то просто даром. В Москве, например, пункт самовывоза в двух шагах от метро - очень удобно, я вчера забрал без проблем.
Парни, очень прошу не считать рекламой - не имею я отношения к этой компании, но я тут как-то писал уже про совершенно смешную цену на гнёзда С8 на блок в России. Тогда я заказал 20 штук и, честно говоря, ожидал звонка от менеджера, типа мол недоразумение. Нет, ни фига, вчера получил - всё нормально. Если ещё и без доставки (там несколько пунктов самовывоза в разных городах), то просто даром. В Москве, например, пункт самовывоза в двух шагах от метро - очень удобно, я вчера забрал без проблем.
прикольно
R_Touch screen 9.0", 5 wires, thickness_1.4mm, tail_155mm, F(212.9X134.7), A(197.4X118.7) - 1534руб
прикольно
R_Touch screen 9.0", 5 wires, thickness_1.4mm, tail_155mm, F(212.9X134.7), A(197.4X118.7) - 1534руб
Это я не знаю, я про разъём писал :)))
А "R_Touch screen 9.0" тоже у них нашли что-ли? И, простите мою неосведомлённость, 1534 руб. это дороо или дёшево?
Я имею в виду самые дешевые, типа такого 500mW DIY Laser Engraver USB Carving Printer Machine Box High Power Speedy
Стоит ли покупать готовый, или лучше самому сделать? Намного ли дешевле получится?
металл врядли. раза в 1.5-2 наверно дешевле выйдет. смотря с чем сравнивать. цены скачут
а если взять "механику" и моторчики от старых CD/DVD приводов? Рассмотрел внимательно фото, и пришел к выводу, что "железо" очень похоже! Разве нет?
так и есть. сам лазер дешевле 2300 не нашел вчера
Мож кому надо.....
New 5V 8 Channel Relay Module Board for Arduino PIC AVR MCU DSP ARM Electronic
5 уе цена до 18 апреля.....
http://www.buyincoins.com/?r=bicProduct/index&pid=11203&gid=676#.VwzdAnq...
Как смотрите на такой набор? http://ru.aliexpress.com/item/Hot-DIY-Electric-Unit-High-quality-Basic-Ability-PracticalDigital-Soldering-Iron-Station-Temperature-Controller-Kits-T12/32578171288.html?aff_platform=aaf&sk=eub6yrrBy%3A&cpt=1460464513264&af=26449&cv=1812217&cn=3o5itmofb3zkhv2m6bfygmx7bl03tmol&dp=v5_3o5itmofb3zkhv2m6bfygmx7bl03tmol&afref=&aff_trace_key=af397a4354f24411bbb137901a02f6b7-1460464513265-04439-eub6yrrBy
и обзор: https://www.youtube.com/watch?v=6Mz66CK5n10
Мож кому надо.....
New 5V 8 Channel Relay Module Board for Arduino PIC AVR MCU DSP ARM Electronic
5 уе цена до 18 апреля.....
http://www.buyincoins.com/?r=bicProduct/index&pid=11203&gid=676#.VwzdAnq...
очень дорого....
вот сильно дешевле http://www.ebay.com/itm/182045093944
Лично я, как-то не впечатлен. В конструкции, где нагреватель встроен в жало, конечно есть свои преиущества, но одно такое жало стоит столько, сколько набор из 10 штук разных для Hakko-936.
Парни, очень прошу не считать рекламой - не имею я отношения к этой компании, но я тут как-то писал уже про совершенно смешную цену на гнёзда С8 на блок в России. Тогда я заказал 20 штук и, честно говоря, ожидал звонка от менеджера, типа мол недоразумение. Нет, ни фига, вчера получил - всё нормально. Если ещё и без доставки (там несколько пунктов самовывоза в разных городах), то просто даром. В Москве, например, пункт самовывоза в двух шагах от метро - очень удобно, я вчера забрал без проблем.
Кстати, у меня ящик DB9 папа, DB9 мама и корпуса у ним серые и цветные без дела валяются. Может быть, кому-то оно нужно? :)
Как смотрите на такой набор? http://ru.aliexpress.com/item/Hot-DIY-Electric-Unit-High-quality-Basic-Ability-PracticalDigital-Soldering-Iron-Station-Temperature-Controller-Kits-T12/32578171288.html?aff_platform=aaf&sk=eub6yrrBy%3A&cpt=1460464513264&af=26449&cv=1812217&cn=3o5itmofb3zkhv2m6bfygmx7bl03tmol&dp=v5_3o5itmofb3zkhv2m6bfygmx7bl03tmol&afref=&aff_trace_key=af397a4354f24411bbb137901a02f6b7-1460464513265-04439-eub6yrrBy
и обзор: https://www.youtube.com/watch?v=6Mz66CK5n10
Оно неплохо, но жало с негревателем замурованным - хранить неудобно, менять и стоит ощутимо дороже простенького этого, как его - ну, на который наконечники кругом вёдрами продают. У меня Лаки-720 уже несколько лет, бывало сутками работает и нормально. Хотя, и такие станции сейчас стоят дорого. Можно отдельно купить регулятор из этого набора и отдельно паяльник, если на станцию денег не хватает. Но фен всё равно понадобится. Недавно видел распродажу, где станция с феном стоила 1500р + тыща с кусочком доставка.
кстати кто подскажет датчик открытия крана? должен показывать открытия любого крана в стояке.
расходомер на трубу (счетчик) , если он считает то вода гдето открыта,самый простой вариант
расходомер на трубу (счетчик) , если он считает то вода гдето открыта,самый простой вариант
Расходомер не предупредит, что кран в магистрали открыт и нельзя откручивать шланги рукомойника. :)|
Надо ставить давленометр (ну, манометр по-научному). :)
Парни, кто-нибудь слав Розе находил на али? Блин, розочки и прочая дребедень, миллион припоев... - уже как только не искал...
я такой заказал 1Pcs Black 220V Portable Hand Held HOT AIR Desoldering Tool Station Free Shipping с бесплатной доставкой!
P.S.: Ничего дешевле не нашел, хотя наверно больше часа потратил на поиски.
я такой заказал 1Pcs Black 220V Portable Hand Held HOT AIR Desoldering Tool Station Free Shipping с бесплатной доставкой!
P.S.: Ничего дешевле не нашел, хотя наверно больше часа потратил на поиски.
Да ладно! Я специально не искал, но видел нормальные фены примерно за столько же... А этот плюс-минус лапоть ведь дуть будет со своими крутилочками никем не калиброванными. Впрочем, температура для фена не так уж и критична к точности - всё равно она сильно зависит от расстояния, от движения. Если есть тестер с термопарой, то можно будет и самому откалибровать.
Парни, кто-нибудь слав Розе находил на али? Блин, розочки и прочая дребедень, миллион припоев... - уже как только не искал...
этот сплав вроде только у нас встречается. я здесь покупал http://p-plata.ru/product/splav-roze/
я такой заказал 1Pcs Black 220V Portable Hand Held HOT AIR Desoldering Tool Station Free Shipping с бесплатной доставкой!
P.S.: Ничего дешевле не нашел, хотя наверно больше часа потратил на поиски.
Вот даже не искал - в рекомендациях сама появилась: хороший набор, хотя, в коментариях иногда встречаются отзывы, что ничего описанного, кроме самой станции, нет.
http://ru.aliexpress.com/item/Best-Selling-220V-8586-2in1-Rework-Station-Hot-Air-Gun-Solder-Iron-better-than-ATTEN/2024661747.html
Если поискать, то и схорошими отзывами и даже дешевле найти - я думаю.
Парни, кто-нибудь слав Розе находил на али? Блин, розочки и прочая дребедень, миллион припоев... - уже как только не искал...
этот сплав вроде только у нас встречается. я здесь покупал http://p-plata.ru/product/splav-roze/
Возможно, это же наш чел его придумал. У них сплав Вуда, который что-то нехорошее содержит - уже не помню состав, но ещё лучше плавится, если не ошибаюсь,, при 65гр.
http://ru.aliexpress.com/item/Best-Selling-220V-8586-2in1-Rework-Station-Hot-Air-Gun-Solder-Iron-better-than-ATTEN/2024661747.html
Посмотрел на цену - подумал "халява" - паяльная станция всего за $34, но...
посмотрел ниже - доставка службой EMS $86,61! Вместе $120,61!!!
Перед тем как искать товар, я почти всегда ставлю галочку "Free Shipping"! Это заметно упрощает поиск!
кстати кто подскажет датчик открытия крана? должен показывать открытия любого крана в стояке.
расходомер на трубу (счетчик) , если он считает то вода гдето открыта,самый простой вариант
Расходомер не предупредит, что кран в магистрали открыт и нельзя откручивать шланги рукомойника. :)|
Надо ставить давленометр (ну, манометр по-научному). :)
В случае с манометром тоже может получится ситуация что все краны вроде как закрыты, а давление высокое. Это происходит из-за герметичности соединений.
Strannik, free shipping не всегда дает самый дешевый результат. Я к тому же сейчас вообще стараюсь не брать с бесплатной доставкой - без отслеживания почта или таможня ворует.
кстати кто подскажет датчик открытия крана? должен показывать открытия любого крана в стояке.
нашел такие http://www.ebay.com/itm/Generic-Magnetic-Stainless-Steel-Flow-Switch-Water-Sensor-C-Type-/350993888095?hash=item51b8ddb35f:g:D88AAOxygPtS9QWt только что-то дорого и стремно :)
или вот http://www.ebay.com/itm/Water-Flow-Sensor-Switch-Hall-Effect-Flowmeter-Counter-Water-Control-1-30L-min-/331316531184?hash=item4d24010ff0:g:~doAAOSwRLZUEW2K но корпус пластиковый сомнения вызывает, да и крыльчатка банально стоп словит из-за накипи или еще чего,
у кого есть опыт использования? сколько они ходят ?
пример блинка на iar можешь показать для stm8?
заказал на всякий случай еще 103 плату
могу на моей библиотеке показать) это будет очень просто.
ну так что там с примером?
или вот http://www.ebay.com/itm/Water-Flow-Sensor-Switch-Hall-Effect-Flowmeter-Counter-Water-Control-1-30L-min-/331316531184?hash=item4d24010ff0:g:~doAAOSwRLZUEW2K но корпус пластиковый сомнения вызывает, да и крыльчатка банально стоп словит из-за накипи или еще чего,
у кого есть опыт использования? сколько они ходят ?
накипи там быть не может а клинить может только из за мусора, ставьте фильтр как рекомендованно перед любым счетчиком, также можно купить обычный советский квартирный счетчик уже с сигнальными проводами, (на рынке продают) но что и как от туда снимать я не знаю. в новостройках видел ставят сейчас такие
ну так что там с примером?
для полноты картины надо показать с десяток файлов библиотеки, это можно наглядно сделать если опубликовать на каком нить github, пока руки не дошли
могу просто показать пример последней программы датчика работающего на rs485
там есть и работа с таймером, с портами, с АЦП, с UART и тд
//---------------------------------------------------------------------------------- // настройки //#pragma bitfields=reversed #define F_MASTER 16000000UL #define I2C_BITRATE 100000UL #define TIMERS_BMP085_SEC 60 #define TIMERS_DHT_SEC 10 #define TIMERS_VALID_MIN 10 #define PHOTO_MIN 180 #define PHOTO_MAX 940 #define ADC_COUNT 64 #define ADC_CHANNEL_PHOTO 2 #define ADC_CHANNEL_NTC 3 //---------------------------------------------------------------------------------- // библиотеки #include <string.h> //---------------------------------------------------------------------------------- // настройка простого ввода-вывода #define UART1 #define UART1_RX_BUFFER_SIZE 64 #define UART1_TX_BUFFER_SIZE 64 #include <stavrcomlib/stavrcomlib_gpio.h> #include <stavrcomlib/stavrcomlib_uart.h> #include <stavrcomlib/stavrcomlib_i2c.h> #include <stavrcomlib/stavrcomlib_bmp085.h> #include <stavrcomlib/stavrcomlib_dht.h> // smartlets #include <smartlets/smartlets_in_uart.h> // общая структура данных для передачи #include <axill/sensor_meteo_rs485.h> // nts data #include "ntc_mf52at_10k.h" //---------------------------------------------------------------------------------- // определение пинов ввода/вывода STAVR_define_gpio_functions(rs485_rw, C, 6) // режим передачи rs485 STAVR_define_gpio_functions(bmp085_eoc, D, 3) // bmp085 EOC STAVR_define_gpio_functions(dht, C, 5) // DHT22 STAVR_define_dht_sensor(dht, dht_get, dht_set, dht_clr, dht_setoutput, dht_setinput) //---------------------------------------------------------------------------------- // определение функций void mcu_init(); //void order_copy(uint8_t *dst, uint8_t* src), uint8_t size { // while(size) dst[--size] = *(src++); //} void reverse_order_2(void* var) { uint8_t v = ((uint8_t*)var)[1]; ((uint8_t*)var)[1] = ((uint8_t*)var)[0]; ((uint8_t*)var)[0] = v; } void reverse_order_4(void* var) { uint8_t v = ((uint8_t*)var)[3]; ((uint8_t*)var)[3] = ((uint8_t*)var)[0]; ((uint8_t*)var)[0] = v; v = ((uint8_t*)var)[1]; ((uint8_t*)var)[1] = ((uint8_t*)var)[2]; ((uint8_t*)var)[2] = v; } void reverse_order(void* var, uint8_t s) { if(s == 2) reverse_order_2(var); if(s == 4) reverse_order_4(var); } //---------------------------------------------------------------------------------- // определение переменных typedef enum { bmp085_none, bmp085_wait_temperature, bmp085_wait_pressure } bmp085_enum; struct { struct { bmp085_enum status; } bmp085; struct { volatile uint16_t data; volatile uint8_t ready; } ntc; struct { volatile uint16_t data; volatile uint8_t ready; } photo; sensor_meteo_data data; struct { volatile uint16_t sum; volatile uint8_t count; } adc; struct { volatile uint8_t presecond; volatile uint8_t second; volatile uint8_t bmp085; volatile uint8_t dht; volatile uint8_t rx_timeout_secdiv10; volatile uint8_t valid_bmp_min; volatile uint8_t valid_dht_min; volatile uint8_t valid_ntc_min; volatile uint8_t valid_photo_min; } timers; } var; int main( void ) { // GPIO & timers mcu_init(); // uart1 uart1_init(UART_BAUD_RATE_DIV(F_MASTER, RS485_BAUDRATE)); // i2c i2c_init(I2C_BITRATE_DIV(F_MASTER, I2C_BITRATE)); // bmp085 bmp085_Init(); var.bmp085.status = bmp085_none; // read on the bus rs485_rw_clr(); ADC_CSR_CH = ADC_CHANNEL_PHOTO; // канал ADC_CR1_ADON = 1; // запуск измерений var.timers.valid_bmp_min = TIMERS_VALID_MIN; var.timers.valid_dht_min = TIMERS_VALID_MIN; var.timers.valid_ntc_min = TIMERS_VALID_MIN; var.timers.valid_photo_min = TIMERS_VALID_MIN; uint16_t bmp085_temperature_data; smartlets_in_uart_message message; uint8_t message_ptr = 0; __enable_interrupt(); while(1) { uint8_t need_to_reply = 0; //------------------------------------------------------------------------------------------------------------------ // вычисления для BMP085 if(!var.timers.bmp085) { if(var.bmp085.status == bmp085_none) { // measure temperature and pressure on bmp085 bmp085_requestTemperatureData(); var.bmp085.status = bmp085_wait_temperature; } else if(bmp085_eoc_get()) { switch(var.bmp085.status) { case bmp085_wait_temperature: // get temperature data & request pressure measurement bmp085_temperature_data = bmp085_readTemperatureData(); bmp085_requestPressureData(BMP085_OSS_ULTRAHIGHRESOLUTION); var.bmp085.status = bmp085_wait_pressure; break; case bmp085_wait_pressure: // get pressure data & convert to get temperature & pressure { int32_t pressure_data = bmp085_readPressureData(BMP085_OSS_ULTRAHIGHRESOLUTION); bmp085_convert(bmp085_temperature_data, pressure_data, BMP085_OSS_ULTRAHIGHRESOLUTION, \ &var.data.bmp085_temperature, &var.data.bmp085_pressure); var.bmp085.status = bmp085_none; var.timers.bmp085 = TIMERS_BMP085_SEC; var.timers.valid_bmp_min = TIMERS_VALID_MIN; } break; } } } //------------------------------------------------------------------------------------------------------------------ // вычисления для DHT if(!var.timers.dht) { int16_t temperature, humidity; dht_status status; __disable_interrupt(); status = dht_read(&temperature, &humidity); __enable_interrupt(); if(status == dht_status_ok) { var.data.dht_temperature = temperature; var.data.dht_humidity = humidity; var.timers.valid_dht_min = TIMERS_VALID_MIN; } var.timers.dht = TIMERS_DHT_SEC; } //------------------------------------------------------------------------------------------------------------------ // вычисления для NTC if(var.ntc.ready) { var.data.ntc_temperature = calc_temperature(var.ntc.data); var.ntc.ready = 0; var.timers.valid_ntc_min = TIMERS_VALID_MIN; } //------------------------------------------------------------------------------------------------------------------ // вычисления для PHOTO if(var.photo.ready) { uint32_t data = var.photo.data; if(data < PHOTO_MIN) { data = 0; } else if(data > PHOTO_MAX) { data = 100; } else { data -= PHOTO_MIN; data *= 1000; data /= PHOTO_MAX + PHOTO_MIN; data /= 10; } var.data.photo_light = data; var.photo.ready = 0; var.timers.valid_photo_min = TIMERS_VALID_MIN; } //------------------------------------------------------------------------------------------------------------------ // проверить входящие uint8_t n = uart1_rx_available(); if(n) { uint8_t byte = uart1_get_byte(); if(message_ptr) { // next byte ((uint8_t*)&message)[message_ptr++] = byte; if(message_ptr > 2 && message_ptr == (sizeof(smartlets_in_uart_header) + sizeof(smartlets_message_header) \ + message.sl_msg.header.data_length)) { // message received uart1_rx_clear(); message_ptr = 0; reverse_order_2(&message.sl_msg.header.type); reverse_order_2(&message.sl_msg.header.dst_id.dev_id); reverse_order_2(&message.sl_msg.header.src_id.dev_id); if(message.sl_msg.header.type == SMARTLETS_MSGTYPE_CUSTOM_1 && message.sl_msg.header.src_id.appl_id == SML_APPL_SEGMENT_MASTER) { need_to_reply = 1; } } } else if(byte == SMARTLETS_IN_UART_START_CHAR) { // first byte message.header.start = byte; message_ptr++; var.timers.rx_timeout_secdiv10 = 1 + 200; } } if(var.timers.rx_timeout_secdiv10 == 1) { uart1_rx_clear(); message_ptr = 0; var.timers.rx_timeout_secdiv10 = 0; } //------------------------------------------------------------------------------------------------------------------ // ответить если нужно if(need_to_reply) { smartlets_in_uart_message uart_msg; sensor_meteo_data data; uart_msg.header.start = SMARTLETS_IN_UART_START_CHAR; uart_msg.header.crc8 = 0; uart_msg.sl_msg.header.type = SMARTLETS_MSGTYPE_CUSTOM_1; uart_msg.sl_msg.header.src_id.dev_id = SMARTLETS_METEO_ID; uart_msg.sl_msg.header.dst_id.dev_id = SMARTLETS_MASTER_ID; uart_msg.sl_msg.header.data_length = sizeof(var.data); memcpy(&data, &var.data, sizeof(var.data)); // fixing byte order reverse_order_2(&uart_msg.sl_msg.header.type); reverse_order_2(&uart_msg.sl_msg.header.src_id.dev_id); reverse_order_2(&uart_msg.sl_msg.header.dst_id.dev_id); reverse_order_2(&data.bmp085_temperature); reverse_order_4(&data.bmp085_pressure); reverse_order_2(&data.ntc_temperature); reverse_order_2(&data.dht_temperature); reverse_order_2(&data.dht_humidity); memcpy(&uart_msg.sl_msg.data, &data, sizeof(data)); // write to the bus rs485_rw_set(); delay_ms_wait(10); // send data uart1_put_block((void*)&uart_msg, sizeof(smartlets_in_uart_header) + sizeof(smartlets_message_header) + sizeof(var.data)); while(!uart1_tx_empty()); // switch to read from the bus delay_ms_wait(5); rs485_rw_clr(); need_to_reply = 0; } __wait_for_interrupt(); } } void mcu_init() { CLK_CKDIVR = 0; rs485_rw_setoutput(); // ADC ADC_CSR_EOCIE = 1; // прерывание по завершению преобразование ADC_CR1_SPSEL = 2; // /4 prescaler ADC_CR1_CONT = 1; // непрерывное преобразование ADC_CR1_ADON = 1; // power ON ADC_CR2_ALIGN = 1; // выровныть влево // timer TIM2_PSCR = 3; // предделитель 8(CLK / 2 ^ PSCR) TIM2_CNTRH = 0; // счетчик = 0 TIM2_CNTRL = 0; TIM2_ARRH = 0x61; TIM2_ARRL = 0xA8; // потолок счета 25000 TIM2_IER = MASK_TIM2_IER_UIE; // разрешение прерывания по переполнению TIM2_CR1 = MASK_TIM2_CR1_URS | MASK_TIM2_CR1_CEN; // счет вверх, прерывание по переполнению, старт таймера } //---------------------------------------------------------------------------- // Timer2 overflow interrupt #pragma vector = TIM2_OVR_UIF_vector __interrupt void TIM2_OVR_UIF_handler(void) { // 10 times per second if(var.timers.rx_timeout_secdiv10 > 1) var.timers.rx_timeout_secdiv10--; if(++var.timers.presecond == 10) { // once per second var.timers.presecond = 0; if(var.timers.bmp085) var.timers.bmp085--; if(var.timers.dht) var.timers.dht--; if(++var.timers.second == 60) { // once per minute var.timers.second = 0; if(var.timers.valid_bmp_min && !--var.timers.valid_bmp_min) { var.data.bmp085_temperature = 0; var.data.bmp085_pressure = 0; } if(var.timers.valid_dht_min && !--var.timers.valid_dht_min) { var.data.dht_temperature = 0; var.data.dht_humidity = 0; } if(var.timers.valid_ntc_min && !--var.timers.valid_ntc_min) var.data.ntc_temperature = 0; if(var.timers.valid_photo_min && !--var.timers.valid_photo_min) var.data.photo_light = 0; } } TIM2_SR1_UIF = 0; // очистка флага прерывания } //---------------------------------------------------------------------------- // ADC interrupt #pragma vector = ADC1_EOC_vector __interrupt void ADC1_EOC_handler(void) { uint16_t value = ADC_DRL; value |= (ADC_DRH << 8); var.adc.sum += value; if(++var.adc.count == ADC_COUNT) { switch(ADC_CSR_CH) { case ADC_CHANNEL_PHOTO: ADC_CSR_CH = ADC_CHANNEL_NTC; var.photo.data = var.adc.sum / ADC_COUNT; var.photo.ready = 1; break; case ADC_CHANNEL_NTC: ADC_CSR_CH = ADC_CHANNEL_PHOTO; var.ntc.data = var.adc.sum; var.ntc.ready = 1; break; } var.adc.sum = 0; var.adc.count = 0; } ADC_CSR_EOC = 0; }в эту программу если вставить блинк на пин dht то будет выглядеть так:
while(1) { dht_set(); delay_ms_wait(500); dht_clr(); elay_ms_wait(500); }более-менее дорогие товары китайцы отправляют с полноценными трек номерами!
и ещё хочу сказать, что нужно обращать внимание, какой указан Free Shipping перевозчик - от этого очень сильно зависит скорость доставки!
Например, заказывал паяльник Freeshipping Soldering Irons soldering station heat soldering stand welding electric soldering iron tip A-BF GS90D 110V/220V 90W Доставка "Singapure Post" заняла всего около двух недель!
в эту программу если вставить блинк на пин dht то будет выглядеть так:
while(1) { dht_set(); delay_ms_wait(500); dht_clr(); elay_ms_wait(500); }спасибо. можешь только блинк? интересует настройка портов, вообще я видел как это делается, просто интересно как у тебя
Free shipping конечно не всегда дает самый дешевый результат, более того он не всегда выдает даже то, что было с free shipping когда галочка не стояла. И часто поиск вообще не дает самый дешевый результат.
а можно с таймером использовать готовый макрос:
спасибо. можешь только блинк? интересует настройка портов, вообще я видел как это делается, просто интересно как у тебя
макрос объявления функций для портов ввода-вывода ниже, там есть кусок для AVR и есть для STM8S
//----------------------------------------------------------------------------- // macro for simple definition of I/O function #ifdef _STAVR_PLATFORM_AVR_ #define STAVR_define_gpio_functions(name, port, pin) \ void name ## _setoutput(void) { DDR ## port |= (1 << pin); } \ void name ## _setinput(void) { DDR ## port &= ~(1 << pin); } \ void name ## _set(void) { PORT ## port |= (1 << pin); } \ void name ## _clr(void) { PORT ## port &= ~(1 << pin); } \ uint8_t name ## _get(void) { return (PIN ## port & (1 << pin))?1:0; } \ uint8_t name ## _getinv(void) { return (PIN ## port & (1 << pin))?0:1; } \ const uint8_t name ## _MASK = (1 << pin); #elif defined (_STAVR_PLATFORM_STM8S_) #define STAVR_define_gpio_functions(name, port, pin) \ void name ## _setinput(void) { P ## port ## _DDR_bit.DDR ## pin = 0; } \ void name ## _setoutput(void) { P ## port ## _DDR_bit.DDR ## pin = 1; } \ void name ## _pullup_set() { P ## port ## _CR1 |= MASK_P ## port ## _CR1_C1 ## pin; } \ void name ## _set(void) { P ## port ## _ODR_bit.ODR ## pin = 1; } \ void name ## _clr(void) { P ## port ## _ODR_bit.ODR ## pin = 0; } \ uint8_t name ## _get(void) { return P ## port ## _IDR_bit.IDR ## pin; } \ uint8_t name ## _getinv(void) { return (name ## _get())?0:1; } \ const uint8_t name ## _MASK = (1 << pin); #endifaxill, а не пробовали писать на С++ для AVR? Я вот пишу на С++ и проверяю полученный машинный код в дизассемблере.
Использование классов в С++ совместно с define-макросами позволяет ускорить разработку прошивок.
Да и вообще при грамотном использовании C++ позволяет писать столь же эффективные решения что и решения на C, но при этом получать более читаемый и более безопасный за счет проверок компилятора код. А механизм шаблонов позволяет писать эффективные реализации обобщенных алгоритмов, что проблематично на C.
Ссылки:
Поддержка C++ на avr в gcc
Сделаем GCC C++ для AVR и Arduino лучше?
мда)) спасибо. придут жезезки обращусь за помощью
axill, а не пробовали писать на С++ для AVR? Я вот пишу на С++ и проверяю полученный машинный код в дизассемблере.
Использование классов в С++ совместно с define-макросами позволяет ускорить разработку прошивок.
Да и вообще при грамотном использовании C++ позволяет писать столь же эффективные решения что и решения на C, но при этом получать более читаемый и более безопасный за счет проверок компилятора код. А механизм шаблонов позволяет писать эффективные реализации обобщенных алгоритмов, что проблематично на C.
Ссылки:
Поддержка C++ на avr в gcc
Сделаем GCC C++ для AVR и Arduino лучше?
я сознательно не использую С++ хотя имею большой опыт его использования на компьютерах
С++ это более высокий уровень абстракции, но это не только плюс в проверках компилятора, эти плюсы стоят ресурсов управление которыми берет на себя компилятор