Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Вопросы начинающих

Вопросы начинающих Прежде чем задать вопрос, стоит воспользоваться поиском

Ответ
 
Опции темы Опции просмотра
Старый 06.03.2013, 17:51   #1
hfmscan
Senior Member
 
Аватар для hfmscan
 
Регистрация: 17.01.2013
Адрес: Москва
Возраст: 43
Сообщений: 415
Вес репутации: 243/28
hfmscan has a spectacular aura abouthfmscan has a spectacular aura abouthfmscan has a spectacular aura about
Отправить сообщение для hfmscan с помощью ICQ
По умолчанию PORTB "на выход", состояние RA0\RA4 всегда 0

Добрый день.

PIC18F25K80

написал функцию по изменению состояния 2-ух светодиодов.
подключены они на 5В и дальше через резисторы 670 на пины RB4 и RB6.
есть еще RB0 это передатчик софтового уарта (через резистор управляет транзистором)

проблема в том, что например если зажечь светодиоды то PORTB возвращает 00001100, т.е. оба бита 6 и 4 в 0 что правильно,
дальше гашу светики записывая 1 в нужные биты, после читаю порт и там
01001100

т.е. корректно отрабатыввает только RB6
такая же ерунда с RB0 - реагирует на записаь нормально, но состояние считывается всегда как 0...


RB6/PGC/TX2/CK2/KBI2

RB4/AN9/C2INA/ECCP1/P1A/CTPLS/KBI0

RB0/AN10/C1INA/FLT0/INT0

помогите победить плиз!

// 0 - вЫключить светик
// 1 - включить
// другое - не менять состояние
// (25) RB4 is LED3
// (27) RB6 is LED2
void LEDS(char led2, char led3) {
char b;

b = PORTB;
if (led3 == 0) b |= 0x10;
if (led3 == 1) b &= (0xFF - 0x10);
if (led2 == 0) b |= 0x40;
if (led2 == 1) b &= (0xFF - 0x40);
PORTB = b;
}


void init(void) {
TRISB = 0xFF - 0x40 - 0x10 - 0x01; // RB6 RB4 RB0 на выход
}
__________________
STM32F042
PIC18F25k80
hfmscan вне форума   Ответить с цитированием
Старый 06.03.2013, 18:37   #2
Ученый
Senior Member
 
Регистрация: 27.02.2007
Адрес: Москва
Возраст: 68
Сообщений: 584
Вес репутации: 1705/65
Ученый has a brilliant futureУченый has a brilliant futureУченый has a brilliant futureУченый has a brilliant futureУченый has a brilliant futureУченый has a brilliant futureУченый has a brilliant futureУченый has a brilliant futureУченый has a brilliant futureУченый has a brilliant futureУченый has a brilliant future
По умолчанию Re: PORTB "на выход", состояние RA0\RA4 всегда 0

Отключи RB4, RB0 от аналогового модуля, сделать их выходами не достаточно.
__________________
Не знать - не стыдно, стыдно не учиться.
Ученый вне форума   Ответить с цитированием
Старый 07.03.2013, 11:40   #3
hfmscan
Senior Member
 
Аватар для hfmscan
 
Регистрация: 17.01.2013
Адрес: Москва
Возраст: 43
Сообщений: 415
Вес репутации: 243/28
hfmscan has a spectacular aura abouthfmscan has a spectacular aura abouthfmscan has a spectacular aura about
Отправить сообщение для hfmscan с помощью ICQ
По умолчанию Re: PORTB "на выход", состояние RA0\RA4 всегда 0

Спасибо! Заработало!
__________________
STM32F042
PIC18F25k80
hfmscan вне форума   Ответить с цитированием
Старый 20.12.2017, 19:00   #4
hfmscan
Senior Member
 
Аватар для hfmscan
 
Регистрация: 17.01.2013
Адрес: Москва
Возраст: 43
Сообщений: 415
Вес репутации: 243/28
hfmscan has a spectacular aura abouthfmscan has a spectacular aura abouthfmscan has a spectacular aura about
Отправить сообщение для hfmscan с помощью ICQ
По умолчанию Re: PORTB "на выход", состояние RA0\RA4 всегда 0

Добрый день,
так получилось, что теперь нужно рулить пином 22 ( RB1 ), сделать его на выход.
написал инициализацию так:
Код:
    TRISA = 0xFF;

    TRISB = 0x80 + 0x08 + 0x04; // Входы только RB7(RX2), RB3 RB2
    TRISC = 0xFF - 0x40; // RC6 -> USART1.TX
    TRISB = 0xFF - 0x40; // RB6 -> USART2.TX

    // Делаю цифровыми RB0/AN10, RB1/AN8, RB4/AN9
    ANCON1 &= 0xF8; // -4-2-1
но не могу рулить RB1
читаю даташит, но пока нет идей.
Миниатюры
pic18f25k80.png  
__________________
STM32F042
PIC18F25k80
hfmscan вне форума   Ответить с цитированием
Старый 20.12.2017, 19:19   #5
DimaS
Senior Member
 
Регистрация: 05.04.2008
Адрес: Israel
Возраст: 45
Сообщений: 1,510
Вес репутации: 2283/76
DimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond repute
По умолчанию Re: PORTB "на выход", состояние RA0\RA4 всегда 0

Цитата:
Сообщение от hfmscan Посмотреть сообщение
Добрый день,
так получилось, что теперь нужно рулить пином 22 ( RB1 ), сделать его на выход.
Ну так поставь соотвествующий трис в 0:
TRISB &=~0x20;

А если компилятор Hi-tech C, то можно просто написать
TRISB1=0;


и убедись что он не включен дефолтом на ЦАП/Компаратор или другую периферию.
Цитата:


написал инициализацию так:
Код:
    TRISA = 0xFF;

    TRISB = 0x80 + 0x08 + 0x04; // Входы только RB7(RX2), RB3 RB2
    TRISC = 0xFF - 0x40; // RC6 -> USART1.TX
    TRISB = 0xFF - 0x40; // RB6 -> USART2.TX

    // Делаю цифровыми RB0/AN10, RB1/AN8, RB4/AN9
    ANCON1 &= 0xF8; // -4-2-1
но не могу рулить RB1
читаю даташит, но пока нет идей.
Я бы так не писал, лучше не "+" и "-" и "| " и "&", при необходимости - "~".
Например последняя строчка: ANCON1 $=~(0x4 | 0x2 | 0x1);

Последний раз редактировалось DimaS; 20.12.2017 в 19:24.
DimaS вне форума   Ответить с цитированием
Старый 20.12.2017, 19:37   #6
hfmscan
Senior Member
 
Аватар для hfmscan
 
Регистрация: 17.01.2013
Адрес: Москва
Возраст: 43
Сообщений: 415
Вес репутации: 243/28
hfmscan has a spectacular aura abouthfmscan has a spectacular aura abouthfmscan has a spectacular aura about
Отправить сообщение для hfmscan с помощью ICQ
По умолчанию Re: PORTB "на выход", состояние RA0\RA4 всегда 0

ну так я же TRISB правильно установил... у меня там всего 3 входа, остальные выходы...
TRISB = 0x80 + 0x08 + 0x04; // Входы только RB7(RX2), RB3 RB2

т.е. бит 0x02 снят...
я, кстати, не понял, почему вы написали
Цитата:
TRISB &=~0x20;
по поводу ЦАП я отключил аналоговые ноги, а вот с компаратором надо читать... спасибо, наверное тут собака и порылась
__________________
STM32F042
PIC18F25k80
hfmscan вне форума   Ответить с цитированием
Старый 20.12.2017, 20:45   #7
hfmscan
Senior Member
 
Аватар для hfmscan
 
Регистрация: 17.01.2013
Адрес: Москва
Возраст: 43
Сообщений: 415
Вес репутации: 243/28
hfmscan has a spectacular aura abouthfmscan has a spectacular aura abouthfmscan has a spectacular aura about
Отправить сообщение для hfmscan с помощью ICQ
По умолчанию Re: PORTB "на выход", состояние RA0\RA4 всегда 0

тупейшие ошибки убивают

Цитата:
TRISB = 0x80 + 0x08 + 0x04; // Входы только RB7(RX2), RB3 RB2
TRISC = 0xFF - 0x40; // RC6 -> USART1.TX
TRISB = 0xFF - 0x40; // RB6 -> USART2.TX
__________________
STM32F042
PIC18F25k80
hfmscan вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PIC16F84a stepka Вопросы начинающих 56 24.03.2010 18:30
После 8 циклов PIC перестает выполнять программу Dimulys87 Продукция MICROCHIP 52 05.12.2009 22:26
Помогите !!!!!!!!! Спасите!!!!!!!! OLD VAMPIRE 88 Вопросы начинающих 20 23.05.2008 02:24
Написал программу а места не хватает на МК Аександр Продукция MICROCHIP 150 10.01.2008 12:33
ПОМОГИТЕ ПОЖАЛУЙСТА! С ВЫЧИСЛЕНИЕМ АЦП/TMR1 GANY Продукция MICROCHIP 6 05.11.2007 21:27


Часовой пояс GMT +3, время: 04:24.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd. Перевод: zCarot