Ви не увійшли.
https://blynk.io/
2020.04.28 доступен только DHL,
вопрос исчерпан.
На днях искал, где можно было бы изготовить печатную плату (без монтажа) по весьма типовому процессу: два слоя, маска и маркировка с двух сторон, ширина дорожек/зазоров 8 мил, материал FR-4, толщина 1.6 мм, диаметр переходных отверстий 0.4 мм. Заказ минимальный (около 5 шт).
Варианты, которые я рассматривал:
PCB ETAL (Украина) - $50 (5 шт)
pcb24.com.ua (Украина) - $20 (8 шт)
pcbtut.com (Украина) - $25 (5 шт)
Альфа КиПП (Украина) - $35 (1 шт, возможно больше)
PCBWay (Китай) - $5 (10 шт) + $5 доставка
JLCPCB (Китай) - $2 (5 шт) + доставка не знаю сколько
OSH Park (США) - $4.85 (3 шт), доставка бесплатная
Слава Україні!
привет, благодарю за инфу,
по JLCPCB - рекомендуемый размер платы не более 100x100 мм, иначе небольшой коефициент по цене появляется.
за 5 коплектов плат в среднем 50x100
2 бакса - то штраф, завтыкал добавить сверловку.
одна проблема - 2 недели на таможне провалялись ( заказывал в прошлом году )
DHL standart за 32 USD везет до 10 дней
так как плат всего 5 одинаковых, на таможне не должно быть вопросов
через неделю,2020.05.01, кто то хочет скооперироваться на заказ плат?
3 человека будет в самый раз.
https://blynk.io/
проект местный, прототипы free
спецификации Lora от Semtech конечно шикарные
но домашнюю систему (для себя) делал бы на
https://www.ti.com/product/CC1310
это если в удовольствие от реализации, а не "покупаем компоненты подешевле"
https://ajax.systems/
но если идея сделать все самостоятельно и если Вы способны реализовать все "хотелки" сами
помощь архитектора вам не нужна
паянные на утилизацию,
непаянная - проще подарить кружку по электроннике если такие еще остались, микрухи то ординарные. больше времени потеряете на доставку, даже если просто зайти на НП.
и себе что ли ревизию сделать )
чего тему то создал
есть такой нихрена непонятный код, хотелось бы разобраться... хоть пихните в нужную сторону.
автор проверял компиляторы на "что то" ), не люблю чувствовать себя идиотом, а тут как раз тот случай )
#include <stdint.h>
#define NULL (0)
typedef double f64;
typedef float f32;
typedef uint64_t u64;
typedef int64_t i64;
typedef uint32_t u32;
typedef int32_t i32;
typedef uint16_t u16;
typedef int16_t i16;
typedef uint8_t u8;
typedef int8_t i8;
typedef i64 m3reg_t;
typedef void /*const*/ * code_t;
typedef code_t const * /*__restrict__*/ pc_t;
typedef const void * m3ret_t;
# define vectorcall
# define d_m3OpSig pc_t _pc, u64 * _sp, u8 * _mem, m3reg_t _r0, f64 _fp0
# define d_m3OpArgs _sp, _mem, _r0, _fp0
# define d_m3OpAllArgs _pc, _sp, _mem, _r0, _fp0
# define d_m3OpDefaultArgs 666, 666.0
typedef m3ret_t (vectorcall * IM3Operation) (d_m3OpSig);
# define immediate(TYPE) * ((TYPE *) _pc++)
# define slot(TYPE) * (TYPE *) (_sp + immediate (i32))
# define d_m3RetSig static inline m3ret_t vectorcall
# define d_m3Op(NAME) d_m3RetSig op_##NAME (d_m3OpSig)
# define nextOp() ((IM3Operation)(* _pc))(_pc + 1, d_m3OpArgs)
#define d_m3CommutativeOpMacro(RES, REG, TYPE, NAME, OP, ...) \
d_m3Op(TYPE##_##NAME##_sr) \
{ \
TYPE * stack = (TYPE *) (_sp + immediate (i32)); \
OP((RES), (* stack), ((TYPE) REG), ##__VA_ARGS__); \
return nextOp (); \
} \
d_m3Op(TYPE##_##NAME##_ss) \
{ \
TYPE * stackB = (TYPE *) (_sp + immediate (i32)); \
TYPE * stackA = (TYPE *) (_sp + immediate (i32)); \
OP((RES), (* stackA), (* stackB), ##__VA_ARGS__); \
return nextOp (); \
}
#define d_m3OpMacro(RES, REG, TYPE, NAME, OP, ...) \
d_m3Op(TYPE##_##NAME##_rs) \
{ \
TYPE * stack = (TYPE *) (_sp + immediate (i32)); \
OP((RES), (* stack), ((TYPE) REG), ##__VA_ARGS__); \
return nextOp (); \
} \
d_m3CommutativeOpMacro(RES, REG, TYPE,NAME, OP, ##__VA_ARGS__)
// Accept macros
#define d_m3CommutativeOpMacro_i(TYPE, NAME, MACRO, ...) d_m3CommutativeOpMacro ( _r0, _r0, TYPE, NAME, MACRO, ##__VA_ARGS__)
#define d_m3OpMacro_i(TYPE, NAME, MACRO, ...) d_m3OpMacro ( _r0, _r0, TYPE, NAME, MACRO, ##__VA_ARGS__)
#define d_m3CommutativeOpMacro_f(TYPE, NAME, MACRO, ...) d_m3CommutativeOpMacro (_fp0, _fp0, TYPE, NAME, MACRO, ##__VA_ARGS__)
#define d_m3OpMacro_f(TYPE, NAME, MACRO, ...) d_m3OpMacro (_fp0, _fp0, TYPE, NAME, MACRO, ##__VA_ARGS__)
#define M3_FUNC(RES, A, B, OP) (RES) = OP((A), (B)) // Accept functions: res = OP(a,b)
#define M3_OPER(RES, A, B, OP) (RES) = ((A) OP (B)) // Accept operators: res = a OP b
#define d_m3CommutativeOpFunc_i(TYPE, NAME, OP) d_m3CommutativeOpMacro_i (TYPE, NAME, M3_FUNC, OP)
#define d_m3OpFunc_i(TYPE, NAME, OP) d_m3OpMacro_i (TYPE, NAME, M3_FUNC, OP)
#define d_m3CommutativeOpFunc_f(TYPE, NAME, OP) d_m3CommutativeOpMacro_f (TYPE, NAME, M3_FUNC, OP)
#define d_m3OpFunc_f(TYPE, NAME, OP) d_m3OpMacro_f (TYPE, NAME, M3_FUNC, OP)
#define d_m3CommutativeOp_i(TYPE, NAME, OP) d_m3CommutativeOpMacro_i (TYPE, NAME, M3_OPER, OP)
#define d_m3Op_i(TYPE, NAME, OP) d_m3OpMacro_i (TYPE, NAME, M3_OPER, OP)
#define d_m3CommutativeOp_f(TYPE, NAME, OP) d_m3CommutativeOpMacro_f (TYPE, NAME, M3_OPER, OP)
#define d_m3Op_f(TYPE, NAME, OP) d_m3OpMacro_f (TYPE, NAME, M3_OPER, OP)
d_m3CommutativeOp_i (i32, Equal, ==)
d_m3CommutativeOp_i (i64, Equal, ==)
d_m3Op_i (i32, NotEqual, !=)
d_m3Op_i (i64, NotEqual, !=)
typedef struct M3OpInfo
{
IM3Operation operation_sr; // top operand in register
IM3Operation operation_rs; // top operand in stack
IM3Operation operation_ss; // both operands in stack
}
M3OpInfo;
#define d_emptyOpList() NULL, NULL, NULL
#define d_unaryOpList(TYPE, NAME) op_##TYPE##_##NAME##_r, op_##TYPE##_##NAME##_s, NULL
#define d_binOpList(TYPE, NAME) op_##TYPE##_##NAME##_sr, op_##TYPE##_##NAME##_rs, op_##TYPE##_##NAME##_ss
#define d_commutativeBinOpList(TYPE, NAME) op_##TYPE##_##NAME##_sr, NULL, op_##TYPE##_##NAME##_ss
const M3OpInfo c_operations[] = {
{ d_commutativeBinOpList (i32, Equal) },
{ d_binOpList (i32, NotEqual) },
{ d_commutativeBinOpList (i64, Equal) },
{ d_binOpList (i64, NotEqual) },
};
add, пример сборки
# gcc - xtensa
export PATH=~/.platformio/packages/toolchain-xtensa/bin/:$PATH
xtensa-lx106-elf-gcc $FLAGS -S ops.c -o esp8266.S
export PATH=~/.platformio/packages/toolchain-xtensa32/bin/:$PATH
xtensa-esp32-elf-gcc $FLAGS -S ops.c -o esp32.S
NoName пише:интересно наблюдать за пенсионерами, которые учат уму-разуму молодняк )
Не понял Вы наблюдатель? Или продавец попкорна? Если второе, то круто - отличный заход!
NoName пише:"между С и С++ разницы нет"
Это кто такое сказал-то? Видимо, человек не знающий ни того, ни другого.
я разливаю клиентам брендованную ортофосфорную кислоту, но очень хочу войти в айти ) говорят там денег реально немеренно,
пипл копипастит код из стековерфлоу и горя не знает.
add
насчет тождесвенности структуры и класса - это актульно только для ++
основная разница - в структуре все члены по уполчанию открыты
надеюсь си никогда не станет ++ ), ваше ООП - воплощение вселенского зла )
NoName пише:предлагаю эту тему для обсудить
С какой целью?
интересно наблюдать за пенсионерами, которые учат уму-разуму молодняк ), и в этом споре сам что то интрересное узнаю,
например что "между С и С++ разницы нет", вот сижу доки читаю, пока думаю что это утверждение таки спорно. я ведь ++ особо не использую, спорить не буду.
Kaka, а Вы часом с Азаровым или Watchdog`ом не работали? )
предлагаю эту тему для обсудить "особенности использования Cи и С++"
только без перехода на личности, иначе снесут
NoName пише:кстати, какой ресурс гуру рекомендуют почитать?
На какой предмет читать собрались? Если хотите знать язык в совершенстве и в тонкостях, то это одно, а если хотите учиться программировать - то это другое.
привет. с одной стороны пора на пенсию, а с другой не хотелось бы помереть дурнем ) всё учу и ньюансы языка Си и парадигмы программирования )
там ТАКОЕ непаханное поле информации, за пределами слабеньких контроллеров, что просто жуть )
Вы бы тему создали "срачи о языке"
я бы почитал, книги как скучны (
кстати, какой ресурс гуру рекомендуют почитать?
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/n4820.pdf сложно заходит (
ксенон, стробоскопы... нормы ЕСЕ Р48 соблюдаете?
Carlos Navarrete, development of the emulator is possible only on condition that the equipment works correctly
it is necessary to save the correct answers, they depend on the motherboard & lamp controller, if the emulator answer is incorrect, the device turns off
hi
https://forum.arduino.ua/viewtopic.php?pid=3515#p3515
pcb from JBS, but he has a 6 pin connector
земля общая?
Отлично! Всё получилось, Вы безусловно правы "Х-1", вот где собака порылась!
Спасибо огромное.
Я всегда говорил, что Си - не самый лучший язык, в связи с дебильностью неудобством и неоднозначностью конструкций, сейчас получил очередное доказательство.
Ещё раз спасибо!!!!
ROFL
благодарю, улыбнуло )
Сергей И пише:300 грн
Начальная цена названа. Кто сделает дешевле? Я пасс.
ну вы и язва )
задача то вообще никакая, как вы могли даже посмотреть в эту сторону ) а школьнику в самый раз и не сложно и 300 UAH не помешает на пепсиколу )
тут чистой работы минут на 30 такому спецу как Вы, 24 USD/H в Украине не так уже и плохо )
ну не заплатит он 20-200KUAH за отличный код и документацию по ЕСПД )
кстати, тему бы переназвать )
[add] школьнику не помешает набить шишки на задачах без ТЗ )
uh inna, Вам бы соратника найти, с которым могли бы вместе разбиратся в этом проекте.
Я Вам не помошник.
удачи
...
ага, особенно для новичка. Я когда первый раз столкнулся с PIO не мог запустить простейший blink. Плюс еще держать в голове и вручную прописывать в platformio.ini платы, порты и т.д. В общем на вкус и цвет ...
полюбє удобнее чем make config )
какие нынче есть варианты для зоопарка?
ардуино и под msp430 есть (удалено, тут были матерные ругательства%)
смысл использовать Arduino IDE в этом проекте? PIO хорош тем что имеете шанс избавится от бардака с библиотеками + легкий перенос на другой комп, без танцев с либами.
Arduino IDE приемлимо испольовать при простой реализации некой последовательности простых событий, иначе это местный филиал ада, в блокноте уже проще код править.
успеха Вам )
я уже собрал ваш проект
https://drive.google.com/file/d/1lV8v6C_NyHZiIoFIeEeWPBJUEbfUR_kU/view?usp=sharing
все либы уже на месте
откройте как проект pio
я заменил define с A0 на что то "от фонаря".
все компилируется.
см картинку выше.