adnega 11 24 августа, 2007 Опубликовано 24 августа, 2007 · Жалоба Добрый день! Два исходника из примеров, идущих с Keil: 1. Для AT #include <91M40800.H> /* AT91M40800 definitions */ #define CR 0x0D void init_serial (void) { /* Initialize Serial Interface */ PIO_PDR = (1<<PIORXD0) | (1<<PIOTXD0); /* Enable RXD0 and TXD0 */ US0_MR = US_CHRL_8 | US_PAR_NO; /* 8 bits, no Parity, 1 Stop bit */ US0_BRGR = 260; /* 9600 Baud Rate @ 40 MHz Clock */ US0_CR = US_RXEN | US_TXEN; /* Enable RX and TX */ } 2. Для LPC #include <LPC21xx.H> /* LPC21xx definitions */ #define CR 0x0D oid init_serial (void) { /* Initialize Serial Interface */ PINSEL0 = 0x00050000; /* Enable RxD1 and TxD1 */ U1LCR = 0x83; /* 8 bits, no Parity, 1 Stop bit */ U1DLL = 97; /* 9600 Baud Rate @ 15MHz VPB Clock */ U1LCR = 0x03; /* DLAB = 0 */ } Как избавиться от "нелепых" констант? 1. Можно забить свой заголовочник для каждого чипа. 2. Для инициализации "железа" можно воспользоваться Conf Wizard`ом, а как быть в обработчиках прерываний. Что посоветуете? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 24 августа, 2007 Опубликовано 24 августа, 2007 · Жалоба Что посоветуете? Воздать молитву о ниспослании милости в виде headers фиг знает кем и по какой логике написанного, думаю не поможет. 1. Можно забить свой заголовочник для каждого чипа. А вот это делайте постепенно в процессе написания. Какие проблемы??? Для затравки - смотрите приложение. iolpc2xxx.rar Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 24 августа, 2007 Опубликовано 24 августа, 2007 · Жалоба Если их в природе нет, то все понятно :-( - забью свои. Только, понимаете, во-первых, не хочу разойтись с "внешним миром". А во-вторых, под новый камень переписать файлик, ну... мягко скажу, нелегко! И самый сложный момент придумать уникальное имя! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 24 августа, 2007 Опубликовано 24 августа, 2007 · Жалоба И самый сложный момент придумать уникальное имя! Имя чего, простите? Файла? Какие проблемы? А если регистров и битов, то их 'придумывать' категорически НЕ СОВЕТУЮ - они уже придуманы и обозваны в документации. Хорошо-ли плохо-ли, но обозваны Авторами - их и использовать. А во-вторых, под новый камень переписать файлик, ну... мягко скажу, нелегко! Чего сложного? Повторяюсь - не весь сразу а просто по мере необходимости в процессе работы и чтения документации. Приложенный так у меня и растет постепенно. 'Любезно' приложенные производителем компилятора лучше не пользовать - в большинстве случаев такая услуга выйдет боком при переходе на другой комнилятор. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vesago 0 24 августа, 2007 Опубликовано 24 августа, 2007 · Жалоба Я когда начал писать в кейле тоже был огорчен хедерами особенно после яра авр. Выдрал кажись из кроссворкса или из яра то что касалось битов. Что не устраивало - поправил. Вместе с родным подключаю и свой. Можете сделат аналогично. bit_defines.rar Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 24 августа, 2007 Опубликовано 24 августа, 2007 · Жалоба Спасибо за советы! :-) И за библиотеки спасибо, правда, свои уже наработал ;-) Хотелось бы иметь файлики от производителя, но увы... :-( А по поводу названий - конечно же, беру из даташитоф, но имена получаются длинющие, например, для pin connect block. И еще момент, практически забил все определения для LPC2148, а теперь появилась LPC2378... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 24 августа, 2007 Опубликовано 24 августа, 2007 · Жалоба Хотелось бы иметь файлики от производителя, но увы... :-( Если от производителя компиляторов, то уже писал - ЛУЧШЕ не брать. Если от производителей чипов, то обычно они совершенно не заточены под какой-то компилятор и хороши в использовании. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться