реклама на сайте
подробности

 
 
> Не работает передача состояния линии из одного порта в другой (pic16f72)
loghir
сообщение May 2 2011, 11:32
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 63
Регистрация: 13-03-11
Пользователь №: 63 577



Доброго времени суток!
Написал прогу на С для простейшего тестирования программатора и подключения МК на макетке.
Код
#include <pic.h>
#define knopka RB4
#define diod RA0

void podgot (void)
{
ADCON1 = 0x07;
TRISA = 0b00000000;
TRISB = 0b11111111;
PORTA = 0;
PORTB = 0;
RBPU = 0;
}

void main (void)
{
podgot();
while(1)
{
diod = knopka;
}
}

кварц 4 mHz подключил к выводам 15 и 16. Кондеры - 25 пф. Резистор не ставил. На вывод 1 к питанию резимтор 20 кОм, на землю - кондер 10 мкф.
Не работает...

Сообщение отредактировал loghir - May 2 2011, 11:33
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
loghir
сообщение May 4 2011, 15:52
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 63
Регистрация: 13-03-11
Пользователь №: 63 577



Цитата
Одноцветно.

Если бы все было так "одноцветно"!
вот так работает, но странно: на RB7 (кнопка) и после прекращения подачи +5В остается ВЛУ.
соответственно, на RB4 (светодиод) тоже. Если RB7 кратковременно посадить на "массу", светодиод гаснет.
Код
#include <pic.h>
void podgot (void)
{
ADCON1 = 0x07;
TRISB = 0b00000001;
TRISA = 0b11111111;
PORTA = 0;
PORTB = 0;
RBPU = 0;
}

void main (void)
{
podgot();
while(1)
{
RB4 = RB7;
}
}

но самое интересное, что
Код
RB7 = RB4;

(оно как-то логичнее.)
не работает вообще! biggrin.gif
Цитата
Попробуйте всё-таки заглядывать в получаемый ассемблерный код.

Что я в том ассемблере пойму? А хоть бы и понял - на С другой команды нет.

Сообщение отредактировал loghir - May 4 2011, 15:53
Go to the top of the page
 
+Quote Post
xemul
сообщение May 4 2011, 18:08
Сообщение #3



*****

Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731



Цитата(loghir @ May 4 2011, 19:52) *
Если бы все было так "одноцветно"!

Я в ассемблерном коде подглядел. Вам остаётся или поверить, или самому глянуть.
Цитата
вот так работает, но странно: на RB7 (кнопка) и после прекращения подачи +5В остается ВЛУ.
соответственно, на RB4 (светодиод) тоже. Если RB7 кратковременно посадить на "массу", светодиод гаснет.

Мил человек, думаете, я от скуки спрашивал, как у Вас кнопка включена? По исходной программе можно было предположить, что кнопка висит между Gnd и пином "knopka", и это при "RBPU = 0;" и кнопке на RBx совершенно нормально и работоспособно.
Кроме того, я полагал, что Вы догадывались, что "RBPU = 0;" включает внутренние подтяжки по пинам PORTB к Vcc. Но, судя по ..., я опять ошибся.
Цитата
Код
TRISB = 0b00000001;
...
RB4 = RB7;

Попробуйте догадаться, что здесь выглядит странновато.
Цитата
но самое интересное, что
Код
RB7 = RB4;

(оно как-то логичнее.)
не работает вообще!

Перевожу: прочитать состояние RB4 и установить RB7 в такую же позу.
Но с "TRISB = 0b00000001;" что так, что эдак нелогично.
Цитата
Что я в том ассемблере пойму? А хоть бы и понял - на С другой команды нет.

Не отчаивайтесь - есть ещё много других способов гадания. Когда гадать надоест, почитайте ДШ что ли.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- loghir   Не работает передача состояния линии из одного порта в другой (pic16f72)   May 2 2011, 11:32
- - sargein   в конфигурации стоит LVPDIS? даташит качать лень, ...   May 2 2011, 12:40
- - xemul   Цитата(loghir @ May 2 2011, 15:32) Не раб...   May 2 2011, 17:24
|- - ar__systems   Цитата(xemul @ May 2 2011, 12:24) Полагаю...   May 3 2011, 13:33
- - loghir   Цитатав конфигурации стоит LVPDIS? такого бита кон...   May 3 2011, 13:46
|- - ar__systems   Цитата(loghir @ May 3 2011, 08:46) такого...   May 3 2011, 14:49
- - sargein   Цитата(loghir @ May 2 2011, 14:32) (Прогр...   May 3 2011, 15:09
- - loghir   ЦитатаОткройте disassembly listing в MPLAB IDE. Во...   May 3 2011, 15:45
|- - ar__systems   Цитата(loghir @ May 3 2011, 10:45) 15: ...   May 3 2011, 15:54
|- - xemul   Цитата(loghir @ May 3 2011, 19:45) Похоже...   May 3 2011, 18:14
- - sargein   ошибся по поводу компилятора, сообщение можно удал...   May 3 2011, 16:45
- - loghir   ЦитатаНе понял - это что, все? Еще 6 строк потерян...   May 3 2011, 18:54
|- - xemul   Цитата(loghir @ May 3 2011, 22:54) а поче...   May 3 2011, 19:08
|- - loghir   Цитата(xemul @ May 3 2011, 22:08) Проверя...   May 4 2011, 08:38
|- - xemul   Цитата(loghir @ May 4 2011, 12:38) Записа...   May 4 2011, 08:44
- - sargein   Цитата(xemul @ May 3 2011, 22:08) В симул...   May 3 2011, 19:45
|- - xemul   Цитата(sargein @ May 3 2011, 23:45) тольк...   May 3 2011, 20:12
- - loghir   ЦитатаКодTRISB = 0b00000001; RB4 = RB7; Попробуйте...   May 5 2011, 12:28
|- - xemul   Цитата(loghir @ May 5 2011, 16:28) Т.е. е...   May 5 2011, 13:11
- - loghir   xemul КодRB4 = !RB7; действительно передает со...   May 5 2011, 14:41
|- - xemul   Цитата(loghir @ May 5 2011, 18:41) xemul ...   May 5 2011, 15:18
- - loghir   ЦитатаСпасибо, но надеюсь, что меня так не угоразд...   May 9 2011, 05:36
|- - xemul   Цитата(loghir @ May 9 2011, 09:36) насчет...   May 9 2011, 10:44
- - loghir   ЦитатаBrownOutReset Disabled у меня просто нет так...   May 9 2011, 13:55


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th June 2025 - 07:53
Рейтинг@Mail.ru


Страница сгенерированна за 0.0139 секунд с 7
ELECTRONIX ©2004-2016