реклама на сайте
подробности

 
 
> IAR меня игнорирует . :(, Причем , молча.... собака!
muravei
сообщение Sep 17 2009, 10:47
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 538
Регистрация: 13-08-05
Пользователь №: 7 591



Подскажите, как правильно (и каасиво) проверять пины в условии if . ( AVR)
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SasaVitebsk
сообщение Sep 17 2009, 20:01
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Кстати в IAR для ARM тоже можно кое чего. smile.gif
Например:
PINSEL1_bit.P0_27 = 1; // TRST
или
U0FCR_bit.FCRFE=1; // Разрешить фифо
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 17 2009, 20:18
Сообщение #3


Гуру
******

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



Цитата(SasaVitebsk @ Sep 17 2009, 22:01) *
Кстати в IAR ...

Баловство все эти фирменные навороты или навороченные (переболел в свое время) макросы. Портам имена и алиасы, биты/поля именовать и обыденных очевидных средств более чем достаточно, читабельно, портируемо, лаконично! и не заставляет вспоминать что это тут наворотил. Повторяющиеся вещи в разумные специализированные (а не "универсальные" макросы) или inline.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Sep 17 2009, 21:00
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 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; } }


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Sep 17 2009, 21:29
Сообщение #5


фанат дивана
******

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



Цитата(Dog Pawlowa @ Sep 18 2009, 03:00) *
Ниже - перебор? (много поскипано, но идея, думаю, понятна)


Так есть же макросы имени Волкова. Очень удобно.

Я так привык к ним, что для плюсов тоже соорудил аналог, правда для stm32 и msp430. smile.gif


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Sep 18 2009, 09:45
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(AHTOXA @ Sep 18 2009, 00:29) *
Так есть же макросы имени Волкова. Очень удобно.

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

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


Цитата(zltigo @ Sep 18 2009, 10:27) *
это чистое, как слеза, ногодрыгание и переноситься на три варианта конструкции-разводки.

Как это выглядит? Я понимаю, условная компиляция, но на каком этапе.
Дело в том, что меня клинит, если по тексту разбросаны ifdef/endif. Все, что не помещается на экран, не помещается в мозг sad.gif


Цитата(zltigo @ Sep 18 2009, 10:27) *
Вышеприведенное, на мой взгляд описание одной простейшей операции с LCD.

У нас lcd разные, и тут все выглядит не очень противно smile.gif

Код
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);
}


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 18 2009, 09:55
Сообщение #7


Гуру
******

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



Цитата(Dog Pawlowa @ Sep 18 2009, 11:41) *
Как это выглядит? Я понимаю, условная компиляция, но на каком этапе.
Дело в том, что меня клинит, если по тексту разбросаны ifdef/endif. Все, что не помещается на экран, не помещается в мозг sad.gif

Макросы, только без притензий на "универсальность", а по месту, и таблицы в 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
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 21:04
Рейтинг@Mail.ru


Страница сгенерированна за 0.01499 секунд с 7
ELECTRONIX ©2004-2016