Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Вопросы начинающих

Вопросы начинающих Прежде чем задать вопрос, стоит воспользоваться поиском

Ответ
 
Опции темы Опции просмотра
Старый 15.02.2018, 09:55   #51
reg33
Member
 
Регистрация: 11.11.2012
Возраст: 36
Сообщений: 69
Вес репутации: 85/0
reg33 will become famous soon enough
По умолчанию Re: Нужен опыт по началу программированию на С.

Цитата:
Сообщение от DmitrijVDN Посмотреть сообщение
ничего не прописывать, по дефолту TRISE<7:4>=0000, RE2:RE0=111
за довесок к параллельному порту отвечает бит PSPMODE(TRIS<4>), для обычной работы должен быть установлен в 0.
в ADCON1 выводы RE2:RE0 должны быть определены как цифровые.
Я правильно уловил вашу мысль что если TRIS 4 =0; то тогда настройки TRISE<7:5> не имеют смысла. Просто убедился в том что если есть неопределенные вещи при конфигурации камня это вылазит в баги при работе программы.

Всем кто ответил большое спасибо!
С уважением REG33
reg33 вне форума   Ответить с цитированием
Старый 18.02.2018, 03:05   #52
IceS
Super Moderator
 
Регистрация: 01.03.2007
Адрес: St. Petersburg
Возраст: 39
Сообщений: 3,251
Вес репутации: 3684/111
IceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond repute
Отправить сообщение для IceS с помощью ICQ
По умолчанию Re: Нужен опыт по началу программированию на С.

Цитата:
Сообщение от siargy Посмотреть сообщение
на асме этот код задавал статическое распределение памяти для переменных
Код:
COM UDATA_ACS 40H;    переменные для ком-порта
CHKSUM        RES 1    ; Checksum accumulator
COUNTER     RES 1    ; General counter
RXDATA        RES 1
TXDATA        RES 1
как в С привязать переменную к конкретному адресу для PIC24 на ХС16?
А чем структура не устраивает (struct)?
И будет пофиг где она лежит, и всегда будет порядок переменных в ней.
PS на компе использовать этот же хеадер (где описана структура) и если понадобится её менять - нужно будет перекомпилить проги, и минимум лазаний по коду и отладки.

объявить так:
Код:
//переменные для ком-порта
typedef struct{
 
  unsigned char CHKSUM;//        RES 1    ; Checksum accumulator
  unsigned char COUNTER;//     RES 1    ; General counter
   unsigned char RXDATA;//        RES 1
  unsigned char TXDATA;//        RES 1
} TUDATA_ACS;
использовать:
Код:
TUDATA_ACS DATA;
...
DATA.CHKSUM = 0;
DATA.COUNTER = 0;
DATA.RXDATA = 0;
DATA.TXDATA = 0;

//для отправки всей структуры процедурой Send( unsigned char* Addr, unsigned char Len ):
  Send( (unsigned char *) &DATA, sizeof(DATA) );
__________________
- Готово, мастер !!!
- Что готово ???
- Сломал ...

Последний раз редактировалось IceS; 18.02.2018 в 03:11.
IceS вне форума   Ответить с цитированием
Старый 18.02.2018, 10:25   #53
siargy
Senior Member
 
Аватар для siargy
 
Регистрация: 03.07.2007
Адрес: Минск
Возраст: 38
Сообщений: 867
Вес репутации: 1266/62
siargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud of
По умолчанию Re: Нужен опыт по началу программированию на С.

IceS, спасибо, ужэ все это обсудили. единственно, если выдергивать отдельные переменные, надо разводить 100500 команд
__________________
Построил тепличку, посеял литопсы, вырастил кактусы
siargy вне форума   Ответить с цитированием
Старый 20.02.2018, 12:52   #54
IceS
Super Moderator
 
Регистрация: 01.03.2007
Адрес: St. Petersburg
Возраст: 39
Сообщений: 3,251
Вес репутации: 3684/111
IceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond repute
Отправить сообщение для IceS с помощью ICQ
По умолчанию Re: Нужен опыт по началу программированию на С.

Цитата:
Сообщение от siargy Посмотреть сообщение
IceS, спасибо, ужэ все это обсудили. единственно, если выдергивать отдельные переменные, надо разводить 100500 команд
Не понимаю, что означает выдергивать отдельные переменные, и зачем там 100500 команд?
Обратится к переменной
DATA.RXDATA, или взять ее адрес &DATA.RXDATA.
__________________
- Готово, мастер !!!
- Что готово ???
- Сломал ...
IceS вне форума   Ответить с цитированием
Старый 20.02.2018, 20:15   #55
siargy
Senior Member
 
Аватар для siargy
 
Регистрация: 03.07.2007
Адрес: Минск
Возраст: 38
Сообщений: 867
Вес репутации: 1266/62
siargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud of
По умолчанию Re: Нужен опыт по началу программированию на С.

разговор шел про доступ к переменным мк их тестовой программы на пк.
колегам прямой доступ к памяти непонравился.
__________________
Построил тепличку, посеял литопсы, вырастил кактусы
siargy вне форума   Ответить с цитированием
Старый 21.02.2018, 14:30   #56
dosikus
Senior Member
 
Аватар для dosikus
 
Регистрация: 05.06.2007
Возраст: 46
Сообщений: 3,722
Вес репутации: 6112/140
dosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond repute
По умолчанию Re: Нужен опыт по началу программированию на С.

siargy, почитайте как сие реализовано и реализовано уже давно.
См. протоколы обмена , пакеты, структуры пакетов.
Вы словно до сих пор в пещере и без интернета и литературы существовали.

Хоть это к примеру http://digit-el.com/files/open/wake/wake.html
dosikus вне форума   Ответить с цитированием
Старый 22.02.2018, 07:04   #57
siargy
Senior Member
 
Аватар для siargy
 
Регистрация: 03.07.2007
Адрес: Минск
Возраст: 38
Сообщений: 867
Вес репутации: 1266/62
siargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud of
По умолчанию Re: Нужен опыт по началу программированию на С.

Цитата:
Сообщение от dosikus Посмотреть сообщение
siargy, почитайте как сие реализовано и реализовано уже давно.
См. протоколы обмена , пакеты, структуры пакетов.

Хоть это к примеру http://digit-el.com/files/open/wake/wake.html
да я в принципе похожее и использую из мелкочиповского AN851
Код:
; Incomming data format:
;
;    <STX><STX><DATA><CHKSUM><ETX>
;              /    \
;     ________/      \____________________________
;    /                                             \
;    <COMMAND><DLEN><ADDRL><ADDRH><ADDRU><DATA>...
;
; Definitions:
;
;     STX    -    Start of packet indicator
;    ETX    -    End of packet indicator
;     LEN     -    Length of incomming packet
;     DATA    -    General data up to 255 bytes
;     CHKSUM     -     The 8-bit two's compliment sum of LEN & DATA
;     COMMAND -     Base command
;     DLEN    -    Length of data associated to the command
;     ADDR    -    Address up to 24 bits
;     DATA     -    Data (if any)
;
; Commands:
;
;     RD_VER        0x00    Read Version Information
;     RD_MEM        0x01    Read Program Memory
;     WR_MEM        0x02    Write Program Memory
;     ER_MEM        0x03    Erase Program Memory
;     RD_EE        0x04    Read EEDATA Memory 
;     WR_EE        0x05    Write EEDATA Memory 
;     RD_CONFIG    0x06    Read Config Memory 
;     WT_CONFIG    0x07    Write Config Memory 
;
*****************************************************************************
только добавил еще 3 команды
Код:
    bra    ReadRAM ;[08]
    bra    WriteRAM    [09]
    bra    SyncRTC     [0A]
Цитата:
Вы словно до сих пор в пещере и без интернета и литературы существовали.
по работе я не программист, делал несколько мелких проектов, как вещи сами в себе.
__________________
Построил тепличку, посеял литопсы, вырастил кактусы
siargy вне форума   Ответить с цитированием
Старый 25.06.2018, 21:38   #58
DimaS
Senior Member
 
Регистрация: 05.04.2008
Адрес: Israel
Возраст: 45
Сообщений: 1,504
Вес репутации: 2283/76
DimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond repute
По умолчанию Re: Нужен опыт по началу программированию на С.

Вот встретил сегодня в чужом исходнике нечто подобное:
Код:
// Описаны две фунцкии:

int MyFunc1(void){
....
return aaa;
}
-------
int MyFunc2(int a){
 ....
  return bbb;

 }
// далее идет вызов:
if (MyFunc2 ( MyFunc1() ) )
.....
WTF ? Переменная-функция?
И оно работает!
Народ, я может чего подзабыл в Си....
DimaS вне форума   Ответить с цитированием
Старый 25.06.2018, 21:52   #59
al.kl
Senior Member
 
Регистрация: 11.10.2011
Возраст: 23
Сообщений: 251
Вес репутации: 750/35
al.kl is a splendid one to beholdal.kl is a splendid one to beholdal.kl is a splendid one to beholdal.kl is a splendid one to beholdal.kl is a splendid one to beholdal.kl is a splendid one to beholdal.kl is a splendid one to behold
Отправить сообщение для al.kl с помощью ICQ
По умолчанию Re: Нужен опыт по началу программированию на С.

А что смутило ?
Одна функция возвращает int-значение и подставляется как аргумет во вторую функцию.
al.kl вне форума   Ответить с цитированием
Старый 25.06.2018, 22:19   #60
DimaS
Senior Member
 
Регистрация: 05.04.2008
Адрес: Israel
Возраст: 45
Сообщений: 1,504
Вес репутации: 2283/76
DimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond repute
По умолчанию Re: Нужен опыт по началу программированию на С.

ЩАс глянул, вроде в самом деле ничего непонятного, все тривиально.
Но я писал по памяти, завтра гляну на работе - что-то же меня там заинтересовало?
DimaS вне форума   Ответить с цитированием
Старый 26.06.2018, 04:11   #61
ampersant
Senior Member
 
Аватар для ampersant
 
Регистрация: 26.02.2008
Адрес: IgorV
Сообщений: 2,422
Вес репутации: 4688/109
ampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond repute
По умолчанию Re: Нужен опыт по началу программированию на С.

веселее, когда несколько функций как аргументы в логическом выражении - некоторые из функций могут быть не вызваны, если на результат выражения не окажут влияния.
ampersant вне форума   Ответить с цитированием
Старый 26.06.2018, 10:29   #62
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 31
Сообщений: 1,808
Вес репутации: 3528/76
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: Нужен опыт по началу программированию на С.

ampersant
я уже расхлебывал результаты людей, которые любили поставить функцию в условии.

мне очень не понравилось.
с моей точки зрения абсолютно нездоровая практика.
попытка себе навредить.
besogon вне форума   Ответить с цитированием
Старый 26.06.2018, 14:50   #63
Greg
Super Moderator
 
Регистрация: 25.02.2007
Адрес: Moscow, ODBS
Сообщений: 6,752
Вес репутации: 5285/162
Greg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond repute
По умолчанию Re: Нужен опыт по началу программированию на С.

Цитата:
Сообщение от besogon Посмотреть сообщение
ampersant
я уже расхлебывал результаты людей, которые любили поставить функцию в условии.

мне очень не понравилось.
с моей точки зрения абсолютно нездоровая практика.
попытка себе навредить.
а какие есть "best practices"?
с переменной, к примеру, - volatile
Greg вне форума   Ответить с цитированием
Старый 26.06.2018, 15:07   #64
pal1222@yandex.ru
Senior Member
 
Регистрация: 30.09.2008
Сообщений: 1,465
Вес репутации: 2482/75
pal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond repute
По умолчанию Re: Нужен опыт по началу программированию на С.

Цитата:
Сообщение от Greg Посмотреть сообщение
а какие есть "best practices"?
с переменной, к примеру, - volatile
Не использовать GCC там действительно функция в условии (особенно в шапке for) компилируется, порой, в такое, что глаза на лоб лезут.
-fno-strict-aliasing наше ффсё, гы.
pal1222@yandex.ru вне форума   Ответить с цитированием
Старый 26.06.2018, 19:52   #65
DimaS
Senior Member
 
Регистрация: 05.04.2008
Адрес: Israel
Возраст: 45
Сообщений: 1,504
Вес репутации: 2283/76
DimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond repute
По умолчанию Re: Нужен опыт по началу программированию на С.

Цитата:
Сообщение от ampersant Посмотреть сообщение
веселее, когда несколько функций как аргументы в логическом выражении - некоторые из функций могут быть не вызваны, если на результат выражения не окажут влияния.

Если мне память не изменяет, где-то были настройки или прагмы, на полное вычисление функций в логических выражениях.
Может это еще в ТС/ВС было..
DimaS вне форума   Ответить с цитированием
Старый 26.06.2018, 20:30   #66
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 31
Сообщений: 1,808
Вес репутации: 3528/76
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: Нужен опыт по началу программированию на С.

Greg
не понял вопроса.
самым обычным образом.
при старте проекта обычно устанавливаются правила оформления кода.
как установили - так потом все и пишут.
Код:
int0 foo(int3 a);
int1 bar(int4 b);
int2 foobar(int5 c);

int0 result0;
int1 result1;
int2 result2;

...
result0 = foo(5);
result1 = bar(6);

if(likely(result0 > 0 && result 1 > 0)){
        ...
}else{
        (void)foobar((int5)(result1));
        (void)foobar((int5)(result0));
}
что конкретно с volatile? что с ней не так?
разве с ней возникают какие-либо трудности?

pal1222@yandex.ru
я считаю что gcc это то, на что нужно ровняться при проектировании оптимизирующих компиляторов.

Последний раз редактировалось besogon; 26.06.2018 в 20:41.
besogon вне форума   Ответить с цитированием
Старый 26.06.2018, 23:33   #67
pal1222@yandex.ru
Senior Member
 
Регистрация: 30.09.2008
Сообщений: 1,465
Вес репутации: 2482/75
pal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond repute
По умолчанию Re: Нужен опыт по началу программированию на С.

Цитата:
Сообщение от besogon Посмотреть сообщение
Greg
не понял вопроса.
самым обычным образом.
при старте проекта обычно устанавливаются правила оформления кода.
как установили - так потом все и пишут.
Код:
int0 foo(int3 a);
int1 bar(int4 b);
int2 foobar(int5 c);

int0 result0;
int1 result1;
int2 result2;

...
result0 = foo(5);
result1 = bar(6);

if(likely(result0 > 0 && result 1 > 0)){
        ...
}else{
        (void)foobar((int5)(result1));
        (void)foobar((int5)(result0));
}
что конкретно с volatile? что с ней не так?
разве с ней возникают какие-либо трудности?

pal1222@yandex.ru
я считаю что gcc это то, на что нужно ровняться при проектировании оптимизирующих компиляторов.
а я нет Ты будешь смеяться, но я "Принципы построения компиляторов" читал и не считаю, что оптимизация на уровне первого (первичного) словаря - продуктивная идея. Ты вот макрос в if влупил с целью обозначить компилятору!!! ожидаемый!!! результат... Имхо это бред, в смысле этот шлак конечно приносит хлеб с маслом, а некоторым и всеми видами икры с Porsche 918 (работая по найму всё равно дороже не купить) но всё это (имхо) не имеет никакого отношения к реальному миру, это университетские игрушки для аспирантов, не программирование а программизм
pal1222@yandex.ru вне форума   Ответить с цитированием
Старый 27.06.2018, 00:17   #68
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 31
Сообщений: 1,808
Вес репутации: 3528/76
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: Нужен опыт по началу программированию на С.

pal1222@yandex.ru
likely это стандартное переопределение для builtin expect, если таковое имеется.
в общем случае likely показывает тем, кто читает код, какая ветка будет исполняться с точки зрения писавшего чаще.

если какая-то ветка с точки зрения писавшего должна выполняться чаще, то она должна быть обозначена как likely.

я написал просто какой-то случайный код, который не выполняет никакой цели.

точно также как указание discard результата через каст его к void.
никакого смысла, кроме как указание другим, кто читает, что функция может вернуть, однако результат не учитывается.

есть gcc, есть clang, функциональность которого всегда тянулась к функциональности gcc.

по поводу того, что там внутри - круто, что Вы знаете, как там все устроено.

Можете в двух словах описать как без лишней головной боли сделать новое ABI в gcc?
besogon вне форума   Ответить с цитированием
Старый 27.06.2018, 00:33   #69
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 31
Сообщений: 1,808
Вес репутации: 3528/76
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: Нужен опыт по началу программированию на С.

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

все это неудобно, что, впрочем, не особо важно. была бы возможность писать для микроконтроллеров на rust, перелез бы завтра.
besogon вне форума   Ответить с цитированием
Старый 27.06.2018, 08:54   #70
Greg
Super Moderator
 
Регистрация: 25.02.2007
Адрес: Moscow, ODBS
Сообщений: 6,752
Вес репутации: 5285/162
Greg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond repute
По умолчанию Re: Нужен опыт по началу программированию на С.

Цитата:
Сообщение от besogon Посмотреть сообщение
Greg
что конкретно с volatile? что с ней не так?
разве с ней возникают какие-либо трудности?
наоборот, с volatile все "так".
У меня был вопрос что не так с функциями, как аргументами.
у меня практика всегда использовать какие-то промежуточные переменные и уже потом разбираться с ними.
оно и читаемость повышает.
Greg вне форума   Ответить с цитированием
Старый 27.06.2018, 10:31   #71
pal1222@yandex.ru
Senior Member
 
Регистрация: 30.09.2008
Сообщений: 1,465
Вес репутации: 2482/75
pal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond repute
По умолчанию Re: Нужен опыт по началу программированию на С.

Цитата:
Сообщение от besogon Посмотреть сообщение
pal1222@yandex.ru
likely это стандартное переопределение для builtin expect, если таковое имеется.
в общем случае likely показывает тем, кто читает код, какая ветка будет исполняться с точки зрения писавшего чаще.

если какая-то ветка с точки зрения писавшего должна выполняться чаще, то она должна быть обозначена как likely.

я написал просто какой-то случайный код, который не выполняет никакой цели.

точно также как указание discard результата через каст его к void.
никакого смысла, кроме как указание другим, кто читает, что функция может вернуть, однако результат не учитывается.

есть gcc, есть clang, функциональность которого всегда тянулась к функциональности gcc.

по поводу того, что там внутри - круто, что Вы знаете, как там все устроено.

Можете в двух словах описать как без лишней головной боли сделать новое ABI в gcc?
Без обид совсем одичали вы там со своими фреймвоками. Не, собирать из готовых библиотек для абстрактной (всегда одной и той же) платформы это круто, я тоже так хочу А, на минуточку, HAL для конкретного железа под ваши фантазии кто писать будет? опять я? да нахрена оно мне надо
pal1222@yandex.ru вне форума   Ответить с цитированием
Старый 27.06.2018, 10:39   #72
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 31
Сообщений: 1,808
Вес репутации: 3528/76
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: Нужен опыт по началу программированию на С.

pal1222@yandex.ru
А, на минуточку, HAL для конкретного железа под ваши фантазии кто писать будет? - тенденции таковы, что от HAL уже давно отказались.

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

всегда одной и той же - да это ясно. платформу определяет архитектор - железо дело десятое. важен подход.
besogon вне форума   Ответить с цитированием
Старый 27.06.2018, 10:48   #73
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 31
Сообщений: 1,808
Вес репутации: 3528/76
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: Нужен опыт по началу программированию на С.

Greg
какие-то способы лучше сопровождаются, чем другие.

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

понятное дело, наверное есть какие-то частные случаи.

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

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

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

я за то, чтобы максимальная ясность читаемость была.
besogon вне форума   Ответить с цитированием
Старый 27.06.2018, 13:54   #74
Рак
Senior Member
 
Регистрация: 02.04.2008
Адрес: Кременчуг
Возраст: 32
Сообщений: 1,317
Вес репутации: 2246/74
Рак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond repute
По умолчанию Re: Нужен опыт по началу программированию на С.

Цитата:
Сообщение от Greg Посмотреть сообщение
наоборот, с volatile все "так".
У меня был вопрос что не так с функциями, как аргументами.
у меня практика всегда использовать какие-то промежуточные переменные и уже потом разбираться с ними.
оно и читаемость повышает.
Все с ними так.
Для примера:
Код:
while(!BF) {
    // ...
}

// Против

while(Spi_IsBuffFull()){
   // ... 
}
Где читаемость выше?
Функции могут быть инлайн или макросами.
Промежуточные переменные используются когда вычисляется что-то сложное и требует отдельного пояснения работы и потом уже участвует в условии. Или в отладке, когда условие не работает и нужно отдельно увидеть результат каждой функции.
Рак вне форума   Ответить с цитированием
Старый 27.06.2018, 14:00   #75
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 31
Сообщений: 1,808
Вес репутации: 3528/76
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: Нужен опыт по началу программированию на С.

Рак
по моему опыту, если что-то может быть понято неправильно, то когда-нибудь оно именно так и будет понято.

а отладка заканчивается, как правило, задолго до обнаружения всех ошибок.
besogon вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Электропривод NSS Источники питания и силовая электроника 32 29.01.2012 14:17
MAX232 и USART, отсутствует сигнал на выходе. EviL_LaugH Общетехнические вопросы 15 31.01.2011 00:40
Проблема с прерыванием PIC 16F877A . chiraevevgenii Вопросы начинающих 8 13.01.2011 20:13
проблемка с PIC16F628A bereg_ok Продукция MICROCHIP 72 07.09.2007 11:00


Часовой пояс GMT +3, время: 23:54.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd. Перевод: zCarot