@ru_electronics

Страница 193 из 718
Ruslan
10.01.2017
20:25:39
кажется понял, надо смотреть на диаграмму системной архитектуры, а там видно, что TIM4 на APB1

EDWARD
10.01.2017
20:30:15
Это

Поясните мне за видеокарту мою

на сайтах написано что на ней 256мб, а на корпусе написано что 128

Google
EDWARD
10.01.2017
20:30:48
в чем подвох

Denys
10.01.2017
20:32:02
может быть урезанная версия

и вообще все равно мало

если есть возможность - считать чипы и смотреть их маркировку

sdf347
10.01.2017
20:33:20
Ruslan
10.01.2017
20:36:06
всё равно, какая-то путаница с этими диаграммами

Ruslan
10.01.2017
20:55:56
я руками фигачу, без кубиков

Dmitry
10.01.2017
20:56:06
бывает

Ruslan
10.01.2017
20:58:06
но это мысль, надо попробовать

осталось понять, что там вбивать (кроме проца)

https://hastebin.com/dozemufiqi.pas - GDB с ума сходит, прыгает вперёд назад, первый раз такое вижу

разобрался с кубиком, научился генерить под него Makefile, пустой проект собирается, теперь напихиваю в него код...

Google
Keroronsk
12.01.2017
08:07:40
а как мэйкфайл генеришь?

Martin
12.01.2017
08:13:15
из присутствующих, есть ли спецы, кто имеет опыт разворачивания chibios на stm32f105?

Ruslan
12.01.2017
08:17:12
а как мэйкфайл генеришь?
The Makefile is generated with https://github.com/aebudak/CubeMX2Makefile

Keroronsk
12.01.2017
08:17:31
санкью

Martin
12.01.2017
08:18:03
на f103 разворачивал когда-то
осталось в памяти что там и как подключать?

Ruslan
12.01.2017
08:19:19
https://github.com/RaD/armka_demos

по коммитам посмотри

самое главное правильный board указать, а потом аккуратно пройтись по конфигам

Martin
12.01.2017
08:22:30
благодарю

Ruslan
12.01.2017
08:22:34
точнее, в board ты описываешь конфигурацию ног и можешь управлять фичами проца типа отключения JTAG, ремаппинга ног и так далее

Влад
12.01.2017
08:22:49
обьясните дураку, зачем нужна такая конструкция? #define CLOCK_CONF_SECOND 128 #define DEBOUNCE_DURATION (CLOCK_CONF_SECOND >> 5) Зачем сдвиг, почему не CLOCK_CONF_SECOND/32? Чтобы гарантировать, что результат будет степенью двойки?

Ruslan
12.01.2017
08:23:12
сдвиг быстрее сделать, чем деление

хотя компилер обычно врубается и заменяет деление на сдвиг, если возможно

Влад
12.01.2017
08:23:30
да блин, я же не зря дефайны написал

Влад
12.01.2017
08:23:43
пятый человек мне говорит, что быстрее

оно же на этапе компиляции вычислит

Влад
12.01.2017
08:24:00
почему?

Google
Dr
12.01.2017
08:24:06
а, хотя да

лол хз

Ruslan
12.01.2017
08:24:29
я бы не верил никому и глянул в доку на свой компилятор

Влад
12.01.2017
08:25:50
в любом случае, это так применяется, что время вычисления там роли абсолютно не играет, после вычисления следует пауза аж на 31мс, обвычисляйся.

Firelander
12.01.2017
08:30:56
Наверное это уже привычка юзать сдвиг когда это возможно

Ruslan
12.01.2017
08:31:33
тяжёлое детство на ассемблере z80

Влад
12.01.2017
09:11:33
struct rpl_dag_t *dag; if (&dag->dag_id) { Что тут проверяется? Что NULL не равно значение dag_id? Что NULL не равен указатель на dag_id?

Keroronsk
12.01.2017
09:15:16
обьясните дураку, зачем нужна такая конструкция? #define CLOCK_CONF_SECOND 128 #define DEBOUNCE_DURATION (CLOCK_CONF_SECOND >> 5) Зачем сдвиг, почему не CLOCK_CONF_SECOND/32? Чтобы гарантировать, что результат будет степенью двойки?
кстати сегодня буквально столкнулся. написал че то типа #define SPI_DELAY 5*60*1000 (типа, 5 минут в милисекундах), а оно скомпилилось в какую то хрень. т.к. число больше чем int получилось, а по дефолту вычисления в препроцессоре идут в этом формате

Влад
12.01.2017
09:15:23
внутри стуктуры это не указатель /* Directed Acyclic Graph */ struct rpl_dag { uip_ipaddr_t dag_id;

Andrey
12.01.2017
09:16:49
если не указано - то все числовое делается unsigned int вроде

Konstantins
12.01.2017
09:17:27
если не указано - то все числовое делается unsigned int вроде
От компилятора зависит, кто-то и signed int выдает

Andrey
12.01.2017
09:17:57
Тоже верно

shadowsoul
12.01.2017
10:23:53
жрёт-то он всё, а вот что выдаёт - совершенно другое дело)

Danil
12.01.2017
10:24:08
Dolphin
12.01.2017
10:30:55
Как компилятор накомпиляет, так и будет считаться

Ruslan
12.01.2017
10:33:14
поэтому я и порекомендовал доку на конкретный компилятор изучить

Google
Danil
12.01.2017
10:33:20
ну это как бэ не компилятор а стандарт языка

Dolphin
12.01.2017
10:33:32
Серьезно? ))

Ruslan
12.01.2017
10:33:35
эээ :)

Admin
ERROR: S client not available

Ruslan
12.01.2017
10:33:50
ну почитай для начала стандарт, хуже не будет

Danil
12.01.2017
10:34:15
смотрите описание if для С/С++ и как он понимает значения в условиях

Dolphin
12.01.2017
10:34:39
Какой C/C++? ))

Danil
12.01.2017
10:34:40
компилятор должен соответствовать стандарту языка а не наоьорот

Dolphin
12.01.2017
10:35:22
компилятор должен соответствовать стандарту языка а не наоьорот
Это - да, но не все так радужно в этом сраном мире ))

Danil
12.01.2017
10:35:40
Какой C/C++? ))
вопрос был как бэ про С/С++ или чё!? не питон и не джава же

Влад Зайцев: struct rpl_dag_t *dag; if (&dag->dag_id) { Что тут проверяется? Что NULL не равно значение dag_id? Что NULL не равен указатель на dag_id?

Dolphin
12.01.2017
10:37:51
С— - тоже C

Тут дело не только в стандарте интерпритации стейтмента, а в представлении типов, попробуй сравнить float - ухохочешься

Dolphin
12.01.2017
10:44:04
... поля структуры по указателю

Dr
12.01.2017
10:45:14
... поля структуры по указателю
причем структура по указателю, а не поле

Dolphin
12.01.2017
10:45:26
Именно )

Dr
12.01.2017
10:47:23
Влад Зайцев: struct rpl_dag_t *dag; if (&dag->dag_id) { Что тут проверяется? Что NULL не равно значение dag_id? Что NULL не равен указатель на dag_id?
заменяй в ифах при прочтении * словом указатель, а & словосочетанием значение по указателю

ну и разделяй операции по приоретету

Google
Dolphin
12.01.2017
10:49:11
* - адрес (ссылка), & - значение переменной по адресу

Danil
12.01.2017
14:05:23
Тут дело не только в стандарте интерпритации стейтмента, а в представлении типов, попробуй сравнить float - ухохочешься
у float есть спец значение NaN и оно считается FALSE. А вообще ставить в if сравнение float это очень плохая практика, за такое можно и огрести

Dolphin
12.01.2017
14:05:46
правильно, об этом я и говорю :)

ой бле -inf и +inf имел ввиду еще есть, которые не равны

Danil
12.01.2017
14:09:59
а в некоторых представлениях есть ещё -0 и +0, и тоже не равны

Dolphin
12.01.2017
14:10:40
ага, и NaN не равен самому себе, что не позволяет просто так сравнить флоат с NaN

Danil
12.01.2017
14:13:04
ну да, NaN не число же и соответственно нельзя сравнить ни с чем. типа зелёный > 5? и зеленый = зелёный в численном эквиваленте? оба сравнения не имеют смысла

Dolphin
12.01.2017
14:15:10
Ну это не совсем не число, это результат операции - неопределенность

типа деление на ноль

или ноль на бесконечность

Влад
12.01.2017
14:23:26
Кто покритикует? Где может потом вылезти проблема, и может ли? Передаю многобайтовые переменные через однобайтовый буфер. send_status_packet(const uip_ip6addr_t *dest_addr, struct simple_udp_connection *connection, uip_ipaddr_t *parent_addr, uint32_t *uptime, int16_t rssi_parent) { uint8_t *uptime_uint8_t = (uint8_t *)uptime; uint8_t *rssi_parent_uint8_t = (uint8_t *)&rssi_parent; uint8_t buf[23]; .... buf[9] = ((uint8_t *)parent_addr)[14]; buf[10] = ((uint8_t *)parent_addr)[15]; buf[11] = *uptime_uint8_t++; buf[12] = *uptime_uint8_t++; buf[13] = *uptime_uint8_t++; buf[14] = *uptime_uint8_t++; buf[15] = *rssi_parent_uint8_t++; buf[16] = *rssi_parent_uint8_t++;

kaktys
12.01.2017
14:24:36
не люблю я вот этого "*uptime_uint8_t++" ... лучше разнести всегда, а то верить компилятору не стоит

Влад
12.01.2017
14:25:22
buf[11] = *uptime_uint8_t; uptime_uint8_t++; Так? или ты про другое? Где там может компилятор нагадить?

Страница 193 из 718