Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
15.02.2008, 13:42
|
|
Частый гость
Регистрация: 13.11.2007
Сообщений: 43
Сказал спасибо: 0
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
|
Сообщение от urry
|
1. Компилятор берем отсюда – http://www.microchip.com/ MPLAB C18 Student Edition – для получения ссылки на закачку нужно региться , а также попутно
2. http://ww1.microchip.com/downloads/e...rade-v3_13.exe
Нормальную версию.
3. Делаем из студенческой версии нормальную. В принципе, можно оставаться и на студенческой, только раз в 2 месяца ее нужно сносить и ставить по новой. Вся операция проходит безболезненно. Но можно это обойти. Для этого :
Качаем отсюда http://www.remexpert.com/forum/dload...le&file_id=419
Распаковщик
Сначала устанавливаем студенческую версию , затем распаковываем нормальную (инструкция внутри архива) и заменяем файлы из студенческой версии распакованными.
|
Жалко нету кнопки "СПАСИБО"
|
|
|
|
15.02.2008, 16:19
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Сообщение от urry
|
... есть же самплы
Код:
|
#define tris_portA1 ... |
|
Добавлю еще, что определять такие атомарные операции через define, а не в виде функции, правильно, так как стек надо экономить. ![Подмигивание](images/smilies/icon_wink.gif) Хотя, в данном конкретном случае экономятся, повидимому, и другие ресурсы м/к.
|
|
|
|
15.02.2008, 16:44
|
|
Частый гость
Регистрация: 28.06.2006
Сообщений: 20
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
В примерах к протеусу посмотри C:Program FilesLabcenter ElectronicsProteus 6 ProfessionalSAMPLESOne-WireDS18X20.
Примерно так:
uint8_t OW_PIN_MASK;
volatile uint8_t* OW_IN;
volatile uint8_t* OW_OUT;
volatile uint8_t* OW_DDR;
void ow_set_bus(volatile uint8_t* in, volatile uint8_t* out, volatile uint8_t* ddr, uint8_t pin)
{
OW_DDR=ddr;
OW_OUT=out;
OW_IN=in;
OW_PIN_MASK=(1‹‹pin);
}
ow_set_bus(&PIND,&PORTD,&DDRD,PD6);
int main (void)
{
//........
}
|
|
|
|
15.02.2008, 20:51
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Сообщение от arkbox
|
дадагой знаток.
ну так не у всех же этот компилятор, вдруг в C18 нет такой функции (сейчас к сожалению проверить не могу).
Вот если бы ты не поленился и выложил здесь содержимое этой функции из файла input.c (или где там у вас функции держат), тебе бы было зачёд!
|
Прочитай внимательно свой первый пост...
Не называя компилятора ты хочешь добиться ответа.
И меня поражает твоя лень, зная что такое "битовые поля"( значит хоть какой то опыт с С у тебя имеется) ты даже не удосужился прочитать мануал к своему компилятору.
И к тому же начинаешь хамить, и какой ты после этого ждешь помощи?
|
|
|
|
16.02.2008, 01:07
|
|
Временная регистрация
Регистрация: 05.06.2005
Сообщений: 84
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
Сообщение от dosikus
|
Прочитай внимательно свой первый пост...
Не называя компилятора ты хочешь добиться ответа.
И меня поражает твоя лень, зная что такое "битовые поля"( значит хоть какой то опыт с С у тебя имеется) ты даже не удосужился прочитать мануал к своему компилятору.
И к тому же начинаешь хамить, и какой ты после этого ждешь помощи?
|
Ну хорошо, раз ты считаешь что всё нужно высиживать собственной задницей и вопросы, на которые где-то уже написаны ответы задавать нельзя, то ответь на такой чисто практический вопрос:
Аналог девайс выпускают RDAC и с 9 битным SPI протоколом. Я посмотрел все функции, и не нашел возможности менять битность посылки, как например это можно делать в USART.
Так о чем дяди думали, что все сядут и будут писать свои протоколы, или есть какой то вариант в частности в твоем любимом CCS?
|
|
|
|
16.02.2008, 01:56
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Сообщение от arkbox
|
Ну хорошо, раз ты считаешь что всё нужно высиживать собственной задницей и вопросы, на которые где-то уже написаны ответы задавать нельзя, то ответь на такой чисто практический вопрос:
Аналог девайс выпускают RDAC и с 9 битным SPI протоколом. Я посмотрел все функции, и не нашел возможности менять битность посылки, как например это можно делать в USART.
Так о чем дяди думали, что все сядут и будут писать свои протоколы, или есть какой то вариант в частности в твоем любимом CCS?
|
А ты любитель, как погляжу , использовать чужие задницы и наработки?
Если нет аппаратно поддерживаемого протокола ,
что тебе мешает самому его написать а не надеяться
на дядей ?
Еще один такой ответ без попытки самому что то сделать, ветки не будет!!
|
|
|
|
16.02.2008, 02:04
|
|
Временная регистрация
Регистрация: 05.06.2005
Сообщений: 84
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
Сообщение от urry
|
А вот хамить, автор ветки, не надо, хорошо ???
Вот тебе твой родной с18 - есть же самплы
Код:
|
#define tris_portA1 TRISAbits.TRISA1
#define input_portA1 PORTAbits.RA1
if (input_portA1 == 1) .....
#define BITSET(var,bitno) ((var) |= 1 ‹‹(bitno))
#define BITCLR(var,bitno) ((var) &= ~(1 ‹‹ (bitno)))
#define BITTST1(var,bitno) ((var) & (1 ‹‹ (bitno)))
#define 2 port_nogi
void (port_nogi)
{
if (BITTST1(PORTA,port_nogi)...... |
|
Юрий, нормальным гражданам казуса, желающим помочь хамить? Да никогода! А тем что посылают подальше (учиться например, на собственных ошибках) просто отвечаем взаимной симпатией ![Улыбка](images/smilies/icon_smile.gif)
Спасибо за помощь, и не мне одному ты помог.
Хотя на склько я понял, приведённый пример все таки привязан к порту и передает лишь пин. А мне надо передать и порт и соответственно пин. Видимо все таки фукнция input от CCS поудобней будет, если конечно удатся ее на С18 перевести. Вообще кстати я на CCS не обращал внимания по твоей к нему нелюбви (давно слежу за твоими коментами)
А посмотри какой там набор функций имеется
DISCRETE I/O
GET_TRISx() INPUT_K( ) OUTPUT_FLOAT() SET_TRIS_B( )
INPUT( ) INPUT_STATE( ) OUTPUT_G( ) SET_TRIS_C( )
INPUT_A( ) INPUT_x( ) OUTPUT_H( ) SET_TRIS_D( )
INPUT_B( ) OUTPUT_A( ) OUTPUT_HIGH( ) SET_TRIS_E( )
INPUT_C( ) OUTPUT_B( ) OUTPUT_J( ) SET_TRIS_F( )
INPUT_D( ) OUTPUT_BIT( ) OUTPUT_K( ) SET_TRIS_G( )
INPUT_E( ) OUTPUT_C( ) OUTPUT_LOW( ) SET_TRIS_H( )
INPUT_F( ) OUTPUT_D( ) OUTPUT_TOGGLE
SET_TRIS_J( ). Хотя большинство из них тривиальны но INPUT_x( ) OUTPUT_HIGH( ) OUTPUT_LOW( ) представляют интерес, даже в хайтеке отсутствующий (могу ошибаться).
Кстати, я в хайтеке функции DELAY усовершенствовал, теперь у меня микросекундные делеи принимают int! (а в оригинале до 127 кажется).Если хочешь могу поделиться.
|
|
|
|
16.02.2008, 02:17
|
|
Временная регистрация
Регистрация: 05.06.2005
Сообщений: 84
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
Сообщение от dosikus
|
А ты любитель, как погляжу , использовать чужие задницы и наработки?
Если нет аппаратно поддерживаемого протокола ,
что тебе мешает самому его написать а не надеяться
на дядей ?
Еще один такой ответ без попытки самому что то сделать, ветки не будет!!
|
Ой извините гражданин (как оказалось вы начальник- снимаю снимаю шапку и опускаю глаза)
Не надо рубить ветку на которой я сижу, я учусь, и делаю, и SPI 9bit сделал, и PS/2 11bit сделал, и на основе этого Y-mous и Joystick сделал, сейчас все это заведу на Wireless и тогда уж можно примус починять...
|
|
|
|
16.02.2008, 02:32
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Не надо ерничать...
Что ты просил в первом посте , то и получил.
1) Не зная какой компилятор ты используешь, что ты хотел услышать в ответ?
2) Реализацию input в CCS ты не найдешь , повторяю еще раз -это встроенная функция и не известно что они там нагородили...
3) Создавая подобные ветки будь добр , приводить хоть сумбурные но свои участки кода .( не все же как ЮРА знают, с чем тебя едят и как тебе помогать)
|
|
|
|
16.02.2008, 02:34
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Сообщение от arkbox
|
я учусь, и делаю, и SPI 9bit сделал, и PS/2 11bit сделал, и на основе этого Y-mous и Joystick сделал, сейчас все это заведу на Wireless и тогда уж можно примус починять...
|
Мог бы и поделиться с окружающими если это не блеф.
Не себя имею ввиду , а форум...
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 06:19.
|
|