| Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
Не получается прочитать с PORTB. (PIC18, Assembler)
05.04.2011, 11:18
|
|
|
Частый гость
Регистрация: 18.01.2009
Сообщений: 22
Сказал спасибо: 4
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Не получается прочитать с PORTB. (PIC18, Assembler)
Соединил RB0 c питанием 5В, RB1-RB7 - с землёй.
При симуляции вывод RB0 помечен красным, остальные - синим.
Исполняется код:
|
Код:
|
CLRF PORTB
MOVLW 0xFF
MOVWF TRISB ;установить все разряды PORTB на ввод информации
LFSR FSR0,0x0200
MOVLW .255
LOOP_ADC
MOVFF PORTB,POSTINC0 ;ТУТ ДАННЫЕ ДОЛЖНЫ СОХРАНЯТЬСЯ, НО НЕ СОХРАНЯЮТСЯ
DECFSZ WREG,1
GOTO LOOP_ADC |
В окошке "Watch" значения регистров с адресами 0x0200 и далее не изменяются (остаются 0).
Заменил
|
Код:
|
MOVFF PORTB,POSTINC0 |
на
|
Код:
|
MOVF PORTB,WREG ; тут в WREG всегда читается 0
MOVWF POSTINC0 |
Как сохранять числа, подаваемые извне на PORTB?
|
|
|
|
05.04.2011, 12:40
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,284
Сказал спасибо: 441
Сказали Спасибо 1,040 раз(а) в 701 сообщении(ях)
|
Re: Не получается прочитать с PORTB. (PIC18, Assembler)
Возможно мне слегка изменяет склероз, но в процессоре есть еще биты выбора банка для косвенной адресации. В частности смотрите в сторону регистра BSR. К тому же Ваш код больше похож на код для 16, а не для 18 семейсва.
Или переходите на С. Там все существенно проще. При правильном использовании в скорости не проиграете.
__________________
misterdi<@>i.ua
|
|
|
|
05.04.2011, 12:51
|
|
|
Заблокирован
Регистрация: 26.12.2009
Сообщений: 3,102
Сказал спасибо: 113
Сказали Спасибо 860 раз(а) в 610 сообщении(ях)
|
Re: Не получается прочитать с PORTB. (PIC18, Assembler)
Сообщение от Opasif
|
|
Код:
|
MOVF PORTB,WREG ; тут в WREG всегда читается 0 |
|
Ващще нужно указывать тип проца, в чём производится симуляция... А то догадайся, что у вас красное, а что синее...
Судя по результату чтения PORTB... у вас PORTB настроен как аналоговый...
|
|
|
|
05.04.2011, 13:11
|
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
|
Re: Не получается прочитать с PORTB. (PIC18, Assembler)
Конечно. Старые грабли с регистром ANSEL и ANSELH!
CLRF PORTB -› выкинуть. Не нужно
MOVLW 0xFF -› не нужно
MOVWF TRISB -› не нужно. Все порты по умолчанию и так входы
добавить запись в ANSEL и ANSELH нуля!
LFSR FSR0,0x0200
MOVLW .255
|
|
|
|
06.04.2011, 12:33
|
|
|
Частый гость
Регистрация: 18.01.2009
Сообщений: 22
Сказал спасибо: 4
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Не получается прочитать с PORTB. (PIC18, Assembler)
MisterDi, команда MOVFF игнорирует содержимое регистра BSR (из мануала).
st_1, использую MPLAB IDE + Proteus VSM; PORTB не может быть настроен как аналоговый (в отличие от PORTA и PORTE).
Easyrider83, регистр ANSEL у PIC18 не существует.
Всё ещё хочу узнать, как сохранять числа, подаваемые извне на PORTB?
|
|
|
|
06.04.2011, 13:20
|
|
|
Частый гость
Регистрация: 10.12.2010
Сообщений: 42
Сказал спасибо: 7
Сказали Спасибо 5 раз(а) в 4 сообщении(ях)
|
Re: Не получается прочитать с PORTB. (PIC18, Assembler)
Все-таки какой проц симулируешь?
Читать доку по нему касательно порта B.
Твой вариант сохранения - зависит от тактирования проца
Лучше наверно через таймер и прерывания (или только таймер)
так можно настроить период опроса порта
и запись в буфер.
|
|
|
|
06.04.2011, 13:32
|
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
|
Re: Не получается прочитать с PORTB. (PIC18, Assembler)
Сообщение от Opasif
|
|
Easyrider83, регистр ANSEL у PIC18 не существует.
|
На примере PIC18F43K20
|
|
|
|
06.04.2011, 14:11
|
|
|
Заблокирован
Регистрация: 26.12.2009
Сообщений: 3,102
Сказал спасибо: 113
Сказали Спасибо 860 раз(а) в 610 сообщении(ях)
|
Re: Не получается прочитать с PORTB. (PIC18, Assembler)
Сообщение от Opasif
|
|
PORTB не может быть настроен как аналоговый (в отличие от PORTA и PORTE).
|
А что говорит даташит проца? Или вы работаете по переводу среднего семейства?
|
|
|
|
06.04.2011, 14:36
|
|
|
Частый гость
Регистрация: 18.01.2009
Сообщений: 22
Сказал спасибо: 4
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Не получается прочитать с PORTB. (PIC18, Assembler)
Оказывается, PIC18F4520 (у меня) сильно отличается от PIC18F452 (манул по которому я читал вначале).
Из мануала по PIC18F4520.
Регистры, связанные с PORTB:
PORTB
LATB
TRISB
INTCON
INTCON2
INTCON3
ADCON1 (т.е. PORTB может быть аналоговым! st_1, вы были правы)
Надеюсь, в этом была проблема.
Всем спасибо за помощь.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 07:26.
|
|