|
IAR меня игнорирует . :(, Причем , молча.... собака! |
|
|
|
 |
Ответов
|
Sep 17 2009, 21:00
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(zltigo @ Sep 17 2009, 23:18)  Баловство все эти фирменные навороты или навороченные (переболел в свое время) макросы.... Где все-таки грань навороченности макросов, не только для портов? Я наоборот, от простых макросов описания конкретных портов перехожу к более универсальным. Ниже - перебор? (много поскипано, но идея, думаю, понятна) Код OUTPUT ( PulseWdt , P1 , 0x01 ) INPUT ( KeyStIn , ~P1 , 0x10 ) ... #pragma inline=forced unsigned char GetPin(unsigned int name); #pragma inline=forced void OnPin(unsigned int name); ... // generation of inputs functions unsigned char GetPin( unsigned int name) { switch (name) { #define INPUT( name, port, bit) case name: return (port##IN & bit); #include pins_file default: return 0; } }
--------------------
Уходя, оставьте свет...
|
|
|
|
|
Sep 17 2009, 21:29
|

фанат дивана
     
Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684

|
Цитата(Dog Pawlowa @ Sep 18 2009, 03:00)  Ниже - перебор? (много поскипано, но идея, думаю, понятна) Так есть же макросы имени Волкова. Очень удобно. Я так привык к ним, что для плюсов тоже соорудил аналог, правда для stm32 и msp430.
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Sep 17 2009, 21:42
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(AHTOXA @ Sep 17 2009, 23:29)  удобно. Нафиг лишние сущности. Цитата(rezident @ Sep 17 2009, 23:07)  Опишите функцию (имею в виду не программное понятие, а функциональную модель аппаратуры), которую выполняет hardware.. Именно так. Иначе за ненужной "универсальностью" ногодрыгания теряется смысл нужной функциональной универсальности.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Sep 17 2009, 22:02
|

фанат дивана
     
Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684

|
Цитата(zltigo @ Sep 18 2009, 03:42)  Нафиг лишние сущности. Ваше мнение понятно, зачем повторяться? ---- Кто-то пишет HAL, кому-то хватает макросов. У меня в разных проектах на AVR, MB90, MSP430 и STM32 используется, например, один и тот же файл dflash.c: Код void df_init(void) { off(FLASH_CS); direct(FLASH_CS, O); } ... void df_read(...) { on(FLASH_CS); ... } Меняется только файл с макросами (под процессор), и описание ноги чипселекта (под схему, в отдельном инклюде). Ну и чем это не HAL? И где здесь лишние сущности?
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Sep 17 2009, 22:31
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(AHTOXA @ Sep 18 2009, 00:02)  Ну и чем это не HAL? Для тех, кто пишет контроллеры светодиодов это может и "HAL" а для меня это махание ножкой через заднепроходное отверстие. Вместо одной походя написанной банальной и однозначно читаемой строчки. Когда нужно ПОНЯТНО согласовано и эффективно махать хотя-бы несколькими пинами, все эти макросы или идут лесом, или становятся совершенно невразумительными. Глупо обсуждать разнообразные способы лепки куличей из песка - эти "проблемы" интересны только младшей ясельной группе. А лично я уже давно вырос  . Для меня, например, уровень абстракции даже для банального светодиода совсем другой: Код typedef enum{ LM_OFF = 0, LM_ON, LM_BLINK_SLOW, LM_BLINK_NORMAL, LM_BLINK_FAST, LM_FLASH_1, LM_FLASH_2, LM_FLASH_3, LM_FLASH_1_OFF, LM_FLASH_2_OFF, LM_MAX
} led_mode_e;
void led_mode( bint led, led_mode_e mode ) { if( mode >= LM_MAX ) mode = LM_MAX-1; ledstat &= ((~0x11111111) <<led); ledstat |= (led_const[mode]<<led); } led_mode( LED_RED, LM_BLINK_FAST ); И где-то уже дальше-дальше в самом конце Код void led_process( int counter ) { ..........
if( curstat ) IOlCLR = curstat; curstat = (~curstat)&(P_LED_RED|P_LED_GREEN|P_LED_INUSE|P_LED_TEST); if( curstat ) IOlSET = curstat; } И потуги на дивные навороты на банальном включить/выключить "светодиод" мне, как минимум, не интересны.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Sep 18 2009, 04:32
|

Adept
     
Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343

|
Вопрос не по теме, пардон. Цитата(zltigo @ Sep 18 2009, 05:31)  Код typedef enum{ LM_OFF = 0, Зачем тут явная инициализация?
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
Sep 18 2009, 04:54
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Цитата(dxp @ Sep 18 2009, 08:32)  Зачем тут явная инициализация? Для наглядности, я тоже так всегда делаю. Код enum eAnswerCommonParameters { acp_Preamble = 0, // преамбула acp_Status, // слово состояния acp_Ktermo_0, // коэффициент термокомпенсации acp_Ktermo_1, acp_Ktermo_2, // acp_Ktermo_3, acp_Csens_0, // постоянная датчика acp_Csens_1, acp_Csens_2, acp_Csens_3, acp_Rt0_x_10_Low, // калибровочная константа датчика температуры acp_Rt0_x_10_Hi, acp_Rref_x_10_Low, // сопротивление опорного резистора термоканала acp_Rref_x_10_Hi, acp_CS, acp_PacketLen };
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
Sep 19 2009, 08:35
|

Adept
     
Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343

|
Цитата(MrYuran @ Sep 18 2009, 11:54)  Для наглядности, я тоже так всегда делаю. "Это короче, чем я могу написать, а компилятор должен понимать умолчания" (с) Б.Страуструп. Цитата(zltigo @ Sep 18 2009, 14:27)  Банальная наглядность - уточнение с долей привычки. Абсолютно безобидная привычка. Обидного в такой привычки и правда нет. А когда заводите просто глобальные/статические переменные: int a; int b; int main() { ... return 0; } тоже инициализируете: int a = 0; int b = 0; ? Или нет?
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
Sep 19 2009, 08:56
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(dxp @ Sep 19 2009, 10:35)  Или нет? Разумеется нет, ибо такую привычку совсем безобидной уже назвать не могу, ибо в общем случае не знаю, как компилятор будет их инициализировать. Может туповато будет инициализировать из ROM. Хотя в отдельных случаях - бывает пишу инициализацию, например, тем-же самым нулевым enum - ну что-то типа комментария о начальном состоянии. А с enum никаких побочных эффектов быть не может. И тут накладывается еще одна привычка - начинающиеся с нуля я стараюсь не использовать, там, где это возможно. Да и если с '0', то часто пишу такие с 'дырками'. Тоже, считайте, привычка иногда помогающая быстрее в каом-нибудь дампе разобраться. Код typedef enum { S_MODE_LOGO = 0x00, S_MODE_MAIN, S_MODE_BOOK, S_MODE_LIST, S_MODE_DIAL, S_MODE_MENU,
S_STATE_IDLE = 0x10, S_STATE_OFFHOOK, S_STATE_SPEAKER,
S_SHOW_RINGING = 0x20, S_SHOW_NO_RINGING,
S_RING_ENABLE = 0x50, ....... И явный ноль при этом смотрится в одном стиле. Посему мною уже на автомате пишутся enum начинающиеся с инициализации. Цитата(dxp @ Sep 19 2009, 10:35)  (с) Б.Страуструп. Не знаю, как там исходники Страуструпа  а мои исходники не только компиляторы, но и люди читают  P.S. А в чем проблема-то?
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
Сообщений в этой теме
muravei IAR меня игнорирует . :( Sep 17 2009, 10:47 Rst7 Случилось-то что?
Я всегда так делаю:
Код#define ... Sep 17 2009, 10:57 dimka76 Цитата(Rst7 @ Sep 17 2009, 14:57) Я всегд... Sep 17 2009, 11:18 Rst7 Цитататогда уж напишите как вы определяете
В назв... Sep 17 2009, 11:22 dimka76 Цитата(Rst7 @ Sep 17 2009, 15:22) В назва... Sep 17 2009, 11:29 Rst7 ЦитатаСделал поск файлов, содержащих текст PINC_Bi... Sep 17 2009, 11:35 dimka76 Цитата(Rst7 @ Sep 17 2009, 15:35) Этого т... Sep 17 2009, 11:42 Goodefine Не мучайтесь
Код#define PINC_Bit3 PINC&(1... Sep 17 2009, 11:35 Rst7 ЦитатаНе мучайтесь
Ответ неверный. Sep 17 2009, 11:36 Goodefine Цитата(Rst7 @ Sep 17 2009, 14:36) Ответ н... Sep 17 2009, 11:38 Rst7 ЦитатаЭто не к IAR-у. Это вообще...
Хотите, в GCC... Sep 17 2009, 11:47 dimka76 Цитата(Rst7 @ Sep 17 2009, 15:47) Вы что,... Sep 17 2009, 11:56 Goodefine Цитата(Rst7 @ Sep 17 2009, 14:47) Хотите,... Sep 17 2009, 11:53 Rst7 Цитатадумаю, для начала, достаточно...
При услови... Sep 17 2009, 11:55 Rst7 ЦитатаУж не #define SFR_B_BITS вы имеете ввиду
На... Sep 17 2009, 11:58 dimka76 Цитата(Rst7 @ Sep 17 2009, 15:58) Наприме... Sep 17 2009, 12:02  Dog Pawlowa Цитата(dimka76 @ Sep 17 2009, 15:02) А чт... Sep 17 2009, 16:34   muravei Цитата(Dog Pawlowa @ Sep 17 2009, 20:34) ... Sep 17 2009, 17:55 Rst7 ЦитатаА что есть еще варианты?
Конкретно в IAR... Sep 17 2009, 12:05 dimka76 Цитата(Rst7 @ Sep 17 2009, 16:05) Конкрет... Sep 17 2009, 12:10 Rst7 ЦитатаТо в моей версии IAR, как видите, это закоме... Sep 17 2009, 12:24 dimka76 Все разобрался.
В файле iom<номер контроллера... Sep 17 2009, 12:29 Rst7 Ойц. Прошу прощения. Enable Bit Definition - это д... Sep 17 2009, 12:40 Sergey'F Может дело не в IAR?
- не включена ли альтернативн... Sep 17 2009, 19:26   rezident Цитата(Dog Pawlowa @ Sep 18 2009, 03:00) ... Sep 17 2009, 21:07       AHTOXA Цитата(zltigo @ Sep 18 2009, 04:31) Для т... Sep 17 2009, 23:06        zltigo Цитата(AHTOXA @ Sep 18 2009, 01:06) Если ... Sep 18 2009, 07:27         AHTOXA Цитата(zltigo @ Sep 18 2009, 13:27) Давай... Sep 18 2009, 08:12          zltigo Цитата(AHTOXA @ Sep 18 2009, 10:12) Ну и ... Sep 18 2009, 09:15           AHTOXA Цитата(zltigo @ Sep 18 2009, 15:15) Когда... Sep 18 2009, 10:15            zltigo Цитата(AHTOXA @ Sep 18 2009, 12:15) .... ... Sep 18 2009, 10:22             Dog Pawlowa Цитата(zltigo @ Sep 18 2009, 13:22) прост... Sep 18 2009, 10:39              zltigo Цитата(Dog Pawlowa @ Sep 18 2009, 12:39) ... Sep 18 2009, 10:49               Dog Pawlowa Цитата(zltigo @ Sep 18 2009, 13:49) Возмо... Sep 18 2009, 11:37                zltigo Цитата(Dog Pawlowa @ Sep 18 2009, 13:37) ... Sep 18 2009, 12:11                 Dog Pawlowa Цитата(zltigo @ Sep 18 2009, 15:11) В про... Sep 18 2009, 12:16                 AHTOXA Цитата(zltigo @ Sep 18 2009, 18:11) Совсе... Sep 18 2009, 16:24           dxp Цитата(zltigo @ Sep 19 2009, 15:56) P.S.
... Sep 19 2009, 12:35    Dog Pawlowa Цитата(AHTOXA @ Sep 18 2009, 00:29) Так е... Sep 18 2009, 09:45     zltigo Цитата(Dog Pawlowa @ Sep 18 2009, 11:41) ... Sep 18 2009, 09:55  SasaVitebsk Цитата(zltigo @ Sep 17 2009, 23:18) Балов... Sep 18 2009, 08:44 rezident Цитата(SasaVitebsk @ Sep 18 2009, 02:01) ... Sep 17 2009, 20:49 dimka76 Макросы вещь небезопасная с точки зрения контроля ... Sep 18 2009, 10:48 AHTOXA Цитата(dimka76 @ Sep 18 2009, 16:48) В С+... Sep 18 2009, 11:26
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|