Отговори на тема  [ 11 мнения ] 
Проблем при установяване на PORTB на 16F887 
Автор Съобщение
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Вто Окт 21, 2008 7:54 pm
Мнения: 3
Местоположение: София
Мнение Проблем при установяване на PORTB на 16F887
Здравейте,

От скоро се заех с изучаването на PIC процесорите и попаднах на следния проблем при компилиране на първата програма.

Искам да присвоя на PORTB стойност 0хFF, но на края на програмата стойността му е винаги 0хC0.

Можете ли да ми кажете къде греша?

Използвам MPLAB.

Кода е:

list p=16f887
#include "P16F887.INC"

__CONFIG _CONFIG1, _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC

Cblock 0x20
endc

ORG 0x00
goto Main

ORG 0x04
goto Main

Main

banksel TRISB
clrf TRISB
banksel PORTB
movlw 0xff
movwf PORTB

goto $

End


Вто Окт 21, 2008 8:05 pm
Профил
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Вто Окт 03, 2006 11:58 am
Мнения: 924
Местоположение: Ботевград
Мнение 
Вмъкни това след clrf TRISB

MOVLW B‘00000000’
MOVWF TRISB

и виж дали няма да стане.


Вто Окт 21, 2008 8:57 pm
Профил
Ранг: Напреднал
Ранг: Напреднал
Аватар

Регистриран на: Нед Сеп 17, 2006 12:00 pm
Мнения: 450
Местоположение: Plovdiv
Мнение 
Виж каква периферия има на порт Б.


Вто Окт 21, 2008 11:02 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Чет Фев 01, 2007 4:04 am
Мнения: 1539
Мнение 
Може и симулатора да е бъгав. Пробвал ли си я на истинския чип?


Вто Окт 21, 2008 11:45 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Окт 10, 2004 9:55 am
Мнения: 1718
Мнение Re: Проблем при установяване на PORTB на 16F887
NVN написа:
Здравейте,

От скоро се заех с изучаването на PIC процесорите и попаднах на следния проблем при компилиране на първата програма.

Искам да присвоя на PORTB стойност 0хFF, но на края на програмата стойността му е винаги 0хC0.

Можете ли да ми кажете къде греша?

Използвам MPLAB.

Кода е:

list p=16f887
#include "P16F887.INC"

__CONFIG _CONFIG1, _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC

Cblock 0x20
endc

ORG 0x00
goto Main

ORG 0x04
goto Main

Main

banksel TRISB
clrf TRISB
banksel PORTB
movlw 0xff
movwf PORTB

goto $

End

Прочети в упътване как се минава в друга банка. Като гледам това не ми прилича да минаваш в другата банка!
Ако компилатора не ти разбира това което си написал няма да ти генерира верен код.
За да си сигурен че е всичко върви както трябва, вземи си сложи МПЛАБ от сайта на микрочип, включи си да виждаш регистрите и със F7 се трасира стъпка по стъпка и си гледаш в регистрите какво се случва. Така ще разбереш къде грешиш!

_________________
Избийте баламите и тарикатите сами ще умрат!
Няма невъзможни работи - има много трудни работи!
----------------------------------------------------------------------------------
"Я в Москве с киркой уран найду, при такой повышенной зарплате" !


Сря Окт 22, 2008 2:42 am
Профил
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Чет Окт 06, 2005 2:06 pm
Мнения: 194
Местоположение: Sofia
Мнение 
С какво точно го четеш това C0 на PORTB?
Ако е с дебугер, точно RB6 и RB7 са заети за комуникация с него и не могат да бъдат четени.


Сря Окт 22, 2008 9:27 am
Профил
Ранг: Популярен
Ранг: Популярен
Аватар

Регистриран на: Пет Яну 26, 2007 5:05 pm
Мнения: 310
Местоположение: из България
Мнение 
Трябва да си инициализираш АЦПто, по-точно да му кажеш че аналоговите входове на портБ ще са цифрови.
Ето ти го направено:
Код:
list p=16f887
#include "P16F887.INC"

__CONFIG _CONFIG1, _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC

Cblock 0x20
endc

ORG 0x00
goto Main

ORG 0x04
goto Main

Main

banksel TRISB
clrf TRISB

banksel ANSELH             
movlw 0x0
movwf ANSELH            ;тук си спираш аналоговите входове.

banksel PORTB
movlw 0xff
movwf PORTB

goto $

End


Сря Окт 22, 2008 9:37 am
Профил
Ранг: Ориентиран
Ранг: Ориентиран
Аватар

Регистриран на: Пон Яну 09, 2006 11:32 am
Мнения: 276
Местоположение: Kozloduy
Мнение 
Така става да се сменят банките, не е това проблема.


Сря Окт 22, 2008 9:42 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Чет Фев 01, 2007 4:04 am
Мнения: 1539
Мнение 
Точно от ANSELH е!
Тo затова програма се пише с datasheet-че в ръка (или с отворено PDF-че). :!:


Сря Окт 22, 2008 1:06 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Вто Окт 21, 2008 7:54 pm
Мнения: 3
Местоположение: София
Мнение 
Благодаря на всички за отговора!

GVN се оказа прав, че първо трябва да се укаже, че портовете ще са цифрови. и след това всичко си работи по план.

Аз продължавам нататък.

Чао засега


Сря Окт 22, 2008 8:04 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Вто Окт 21, 2008 7:54 pm
Мнения: 3
Местоположение: София
Мнение 
Имах предвид GTN, sorry.


Сря Окт 22, 2008 8:05 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 11 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 3 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни