|
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 18 2009, 09:45
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(AHTOXA @ Sep 18 2009, 00:29)  Так есть же макросы имени Волкова. Очень удобно. Спасибо за ссылку. Я сделал немного по другому по сравнению с Волковым, и делал это последним на долгой дороге структуризации текущих проектов, после структуризации состояний, многоязычных сообщений, сигналов с датчиков, ошибок и прочей ерунды. Основная причина - самодокументируемость, файл описания должен быть понятен заказчику , ну а порты - чтобы было в одном стиле. В части использования макросов Волкова, я больше склоняюсь к мнению zltigo, поскольку до недавнего времени прямое ногодрыганье было описано функциональными макросами. Вот только поддержка режимов работы в бэкграунде все-таки следующий уровень модели OSI  , и правильно не опускаться до портов сквозь уровень функциональных макросов, даже если это кажется проще. Ладно, дискуссия немного остра получается, и подобная тема возникает раз в пол-года, вот попробую укрепиться в своем мнении и порву всех  Цитата(zltigo @ Sep 18 2009, 10:27)  это чистое, как слеза, ногодрыгание и переноситься на три варианта конструкции-разводки. Как это выглядит? Я понимаю, условная компиляция, но на каком этапе. Дело в том, что меня клинит, если по тексту разбросаны ifdef/endif. Все, что не помещается на экран, не помещается в мозг  Цитата(zltigo @ Sep 18 2009, 10:27)  Вышеприведенное, на мой взгляд описание одной простейшей операции с LCD. У нас lcd разные, и тут все выглядит не очень противно  Код void WriteByte1(uchar ch) { uchar i; OffPin(LcdCsb); for (i = 0; i<8; i++) { if (ch & 0x80) OnPin(LcdSi); else OffPin(LcdSi); OffPin(LcdClk); OnPin(LcdClk); ch <<= 1; } OnPin(LcdCsb); } void WriteLcdControl(char D) { OffPin(LcdRs); WriteByte1(D); }
void WriteLcdData(char D) { OnPin(LcdRs); WriteByte1(D); }
--------------------
Уходя, оставьте свет...
|
|
|
|
|
Sep 18 2009, 09:55
|

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

|
Цитата(Dog Pawlowa @ Sep 18 2009, 11:41)  Как это выглядит? Я понимаю, условная компиляция, но на каком этапе. Дело в том, что меня клинит, если по тексту разбросаны ifdef/endif. Все, что не помещается на экран, не помещается в мозг  Макросы, только без притензий на "универсальность", а по месту, и таблицы в ROM. Пример заполнения одной из таблиц Код #define MELODY( a, b, c, d ) (((d)<<9)|((c)<<6)|((b)<<3)|(a)) #define DUALTON( a, b ) (((b)<<14)|((a)<<12))
const ushort gtact[GEN_TAKTS] = { MELODY(1,1,1,4) | DUALTON(TOFF,DUAL), MELODY(2,0,2,5) | DUALTON(DUAL,DUAL), MELODY(3,2,3,6) | DUALTON(TOFF,SINGLE), .... .... ....
--------------------
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    zltigo Цитата(AHTOXA @ Sep 17 2009, 23:29) удобн... Sep 17 2009, 21:42     AHTOXA Цитата(zltigo @ Sep 18 2009, 03:42) Нафиг... Sep 17 2009, 22:02      zltigo Цитата(AHTOXA @ Sep 18 2009, 00:02) Ну и ... Sep 17 2009, 22:31       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 @ S... Sep 18 2009, 04:32        MrYuran Цитата(dxp @ Sep 18 2009, 08:32) Зачем ту... Sep 18 2009, 04:54         dxp Цитата(MrYuran @ Sep 18 2009, 11:54) Для ... Sep 19 2009, 08:35          zltigo Цитата(dxp @ Sep 19 2009, 10:35) Или нет?... Sep 19 2009, 08:56           dxp Цитата(zltigo @ Sep 19 2009, 15:56) P.S.
... Sep 19 2009, 12:35  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
|
|
|