25.11.2011, 11:24
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.05.2003
Адрес: Москва
Сообщений: 2,530
Сказал спасибо: 737
Сказали Спасибо 1,927 раз(а) в 799 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Как переключить режим ножки PICа, обращаясь по имени? То бишь есть нога, скажем PIN_A0. Настроена на ввод. Оно же обозвано ASDF. Как этот ASDF переключить на вывод? Наверняка можно просто тупо в какой-нить регистр записать в разряд 0 или 1. Вопрос в том, как ВЫЧИСЛИТЬ этот адрес и разряд?
__________________
Опыт - это школа, в которой человек узнает, каким дураком он был раньше.
|
|
|
|
25.11.2011, 12:20
|
|
Почётный гражданин KAZUS.RU
Регистрация: 22.02.2008
Адрес: Ukraine, рядом с Полтавой
Сообщений: 9,700
Сказал спасибо: 5,497
Сказали Спасибо 25,123 раз(а) в 5,641 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Очень просто:
x=input(ASDF) ; //настроит ножку на ввод и считает состояние в x
output_high(pin) //настроит на выход и запишет 1
output_low(pin) //настроит на выход и запишет 0
output_float(pin) //настроит на вход
Всё это верно если используется
#USE STANDARD_IO(port)
|
|
|
|
25.11.2011, 13:13
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.05.2003
Адрес: Москва
Сообщений: 2,530
Сказал спасибо: 737
Сказали Спасибо 1,927 раз(а) в 799 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
а я уже в дебри #byte и прочего полез ![Улыбка](images/smilies/icon_smile.gif) И ничего там не понял
В С18 есть просто TRISAbits.TRISA0
__________________
Опыт - это школа, в которой человек узнает, каким дураком он был раньше.
|
|
|
|
26.11.2011, 03:21
|
|
Почётный гражданин KAZUS.RU
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Сообщение от DK
|
а я уже в дебри #byte и прочего полез И ничего там не понял ![Улыбка](images/smilies/icon_smile.gif)
В С18 есть просто TRISAbits.TRISA0
|
http://www.microchip.su/showthread.p...&highlight=CCS
__________________
Глаза боятся,а руки делают.
|
|
|
|
27.12.2011, 01:15
|
|
Временная регистрация
Регистрация: 12.09.2008
Сообщений: 61
Сказал спасибо: 20
Сказали Спасибо 7 раз(а) в 5 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
парни, тут вопрос возник, насколько оптимальный код делает компилятор...
посмотрел листинг, я в ступоре... поясните, что за кашу он делает в строках 0051-005D, почему команду output_high(pin_a0); он переводит как 4 на ассемблере (строки 61-64)?
PHP код:
|
.................... void main()
.................... {
0047: CLRF 04 FSR
0048: MOVLW 1F
0049: ANDWF 03,F ;ststus 00011111
004A: MOVLW 07
004B: MOVWF 19 ;cmcon 00000111
....................
.................... setup_timer_0(RTCC_INTERNAL|RTCC_DIV_64|RTCC_8_bit ); //16.3 ms overflow
004C: BSF 03.5
004D: MOVF 01,W
004E: ANDLW C0
004F: IORLW 05
0050: MOVWF 01 ;tmr0 11000101
.................... setup_comparator(NC_NC);
0051: MOVLW 07
0052: BCF 03.5
0053: MOVWF 19 ;cmcon 00000111
0054: BSF 03.5
0055: MOVF 05,W
0056: MOVWF 05
0057: MOVLW 03
0058: BCF 03.5
0059: MOVWF 20
005A: DECFSZ 20,F
005B: GOTO 05A
005C: MOVF 19,W
005D: BCF 0C.3
....................
.................... enable_interrupts(INT_RTCC);
005E: BSF 0B.5
.................... enable_interrupts(GLOBAL);
005F: MOVLW C0
0060: IORWF 0B,F
....................
.................... while(1)
.................... {
.................... output_high(pin_a0);
0061: BSF 03.5
0062: BCF 05.0
0063: BCF 03.5
0064: BSF 05.0
.................... }
0065: GOTO 061
.................... }
|
|
|
|
|
27.12.2011, 01:30
|
|
Почётный гражданин KAZUS.RU
Регистрация: 22.02.2008
Адрес: Ukraine, рядом с Полтавой
Сообщений: 9,700
Сказал спасибо: 5,497
Сказали Спасибо 25,123 раз(а) в 5,641 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Чтобы это понять, советую полистать юзер мануал в той части, где работа с портами описывается и влияние разных опций #use_ на результат компиляции.
|
|
|
|
27.12.2011, 01:56
|
|
Временная регистрация
Регистрация: 12.09.2008
Сообщений: 61
Сказал спасибо: 20
Сказали Спасибо 7 раз(а) в 5 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Eddy71, спасибо! Применил #USE FAST_IO, стало так:
PHP код:
|
{
.................... output_high(pin_a0);
005E: BSF 05.0
.................... }
|
а как быть со строками 0051-005D? не могу понять, зачем компилятор их приписал...
|
|
|
|
27.12.2011, 17:32
|
|
Почётный гражданин KAZUS.RU
Регистрация: 22.02.2008
Адрес: Ukraine, рядом с Полтавой
Сообщений: 9,700
Сказал спасибо: 5,497
Сказали Спасибо 25,123 раз(а) в 5,641 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
На всякий случай, чтобы ноги (если они использовались по альтернативным функциям) точно выполнили то, что от них ждут.
|
|
|
|
27.12.2011, 18:21
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Сообщение от DK
|
Как переключить режим ножки PICа, обращаясь по имени? То бишь есть нога, скажем PIN_A0. Настроена на ввод. Оно же обозвано ASDF. Как этот ASDF переключить на вывод? Наверняка можно просто тупо в какой-нить регистр записать в разряд 0 или 1. Вопрос в том, как ВЫЧИСЛИТЬ этот адрес и разряд?
|
Есть еще вариант , но так же как и встроенные функции типа out_put . input , являются особенностью CCS и отводят от стандарта.
Привыкните на другом компиляторе может и не быть их.
Ну да ладно .
Код:
|
#byte Port_A = 0x05
#byte Tris_A =0x85
#bit Led1 =Port_A.0
#bit Led2 =Port_A.1
//
//
Tris_A=0;
Led1=1;
Led2=0; |
__________________
Осторожно , злой кот
|
|
|
Сказали "Спасибо" dosikus
|
|
|
27.12.2011, 18:29
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.05.2003
Адрес: Москва
Сообщений: 2,530
Сказал спасибо: 737
Сказали Спасибо 1,927 раз(а) в 799 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
dosikus, ты - гений!!!
__________________
Опыт - это школа, в которой человек узнает, каким дураком он был раньше.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 00:22.
|
|