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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Не работает передача состояния линии из одного порта в другой (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
sargein
сообщение May 2 2011, 12:40
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 72
Регистрация: 31-01-10
Из: Минск
Пользователь №: 55 176



в конфигурации стоит LVPDIS? даташит качать лень, спрашиваю по аналогии с 628 sm.gif
Go to the top of the page
 
+Quote Post
xemul
сообщение May 2 2011, 17:24
Сообщение #3



*****

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



Цитата(loghir @ May 2 2011, 15:32) *
Не работает...

Читать ДШ контроллера (и мануал компилятора) на предмет волшебных слов CONFIG (DS39597C-page 60) и OPTION (DS39597C-page 13).
Полагаю, Ваш контроллер уверен, что он работает от RC-генератора, а каждые ~2.3 с его будет пинать сбросом вочдог.
Go to the top of the page
 
+Quote Post
ar__systems
сообщение May 3 2011, 13:33
Сообщение #4


self made
****

Группа: Свой
Сообщений: 855
Регистрация: 7-03-09
Из: Toronto, Canada
Пользователь №: 45 795



Цитата(xemul @ May 2 2011, 12:24) *
Полагаю, Ваш контроллер уверен, что он работает от RC-генератора, а каждые ~2.3 с его будет пинать сбросом вочдог.

И что, он и работает от него прекрасно. Переключение его на кварц ничего не поменяет.

Меня больше заитересовала строка

diode = knopka;

в каком компиляторе это написано?
Go to the top of the page
 
+Quote Post
loghir
сообщение May 3 2011, 13:46
Сообщение #5


Участник
*

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



Цитата
в конфигурации стоит LVPDIS?

такого бита конфигурации у меня нет. (Программатор ExtraPIC, софт icprog)
Что до конфигурации, то я ее задаю в icprog:
осциллятор - ХТ. Если и после этого МК считает, что работает не с кварцем... Да, кварц работает. Осциллоскоп ясно сие показывает.
WDT - OFF
PWRT - OFF
CP - OFF
BODEN - ON
Цитата
Меня больше заитересовала строка
diode = knopka;
в каком компиляторе это написано?

на С в PICC.
Взято из этого самоучитеся: http://www.labkit.ru/html/C_for_PIC?id=402

Сообщение отредактировал loghir - May 3 2011, 13:58
Go to the top of the page
 
+Quote Post
ar__systems
сообщение May 3 2011, 14:49
Сообщение #6


self made
****

Группа: Свой
Сообщений: 855
Регистрация: 7-03-09
Из: Toronto, Canada
Пользователь №: 45 795



Цитата(loghir @ May 3 2011, 08:46) *
такого бита конфигурации у меня нет. (Программатор ExtraPIC, софт icprog)
Что до конфигурации, то я ее задаю в icprog:
осциллятор - ХТ. Если и после этого МК считает, что работает не с кварцем... Да, кварц работает. Осциллоскоп ясно сие показывает.
WDT - OFF
PWRT - OFF
CP - OFF
BODEN - ON

на С в PICC.
Взято из этого самоучитеся: http://www.labkit.ru/html/C_for_PIC?id=402

Я бы первым делом прошел код в симуляторе. Если работает, смотрите в сторону кривого программатора. Вы им до этого что-нибудь успешно программировали? С этим компилятором не знаком, но ассебмлер можно глянуть. Откройте disassembly listing в MPLAB IDE.

ps/ самоучитель - чтиво убойное.

Сообщение отредактировал ar__systems - May 3 2011, 14:52
Go to the top of the page
 
+Quote Post
sargein
сообщение May 3 2011, 15:09
Сообщение #7


Участник
*

Группа: Свой
Сообщений: 72
Регистрация: 31-01-10
Из: Минск
Пользователь №: 55 176



Цитата(loghir @ May 2 2011, 14:32) *
(Программатор ExtraPIC, софт icprog)


А попробуйте прошивать софтиной picpgm, у меня когда экстрапик был, только с ней не было никаких проблем.
Go to the top of the page
 
+Quote Post
loghir
сообщение May 3 2011, 15:45
Сообщение #8


Участник
*

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



Цитата
Откройте disassembly listing в MPLAB IDE.

Вот:
Код
1:                 #include <pic.h>
2:                 #define knopka RB4
3:                 #define diod RA0
4:                
5:                 void podgot (void)
6:                 {
7:                 ADCON1 = 0x07;
   7F2    3007     MOVLW 0x7
   7F3    1683     BSF 0x3, 0x5
   7F4    1303     BCF 0x3, 0x6
   7F5    009F     MOVWF 0x1f
8:                 TRISA = 0b00000000;
   7F6    0185     CLRF 0x5
9:                 TRISB = 0b11111111;
   7F7    30FF     MOVLW 0xff
   7F8    0086     MOVWF 0x6
10:                PORTA = 0;
   7F9    1283     BCF 0x3, 0x5
   7FA    0185     CLRF 0x5
11:                PORTB = 0;
   7FB    0186     CLRF 0x6
12:                RBPU = 0;
   7FC    1683     BSF 0x3, 0x5
   7FD    1381     BCF 0x1, 0x7
13:                }
   7FE    1283     BCF 0x3, 0x5
14:                
15:                void main (void)
16:                {
17:                podgot();
   7E9    27F2     CALL 0x7f2
18:                while(1)
   7F1    2FEA     GOTO 0x7ea
19:                {
20:                diod = knopka;
   7EA    1283     BCF 0x3, 0x5

Цитата
Вы им до этого что-нибудь успешно программировали?

сегодня, например. В порты А и В успешно пишет, все что задано.

Похоже, строка
Код
diode = knopka;

кривая. Есть мысли, как правильно?
Go to the top of the page
 
+Quote Post
ar__systems
сообщение May 3 2011, 15:54
Сообщение #9


self made
****

Группа: Свой
Сообщений: 855
Регистрация: 7-03-09
Из: Toronto, Canada
Пользователь №: 45 795



Цитата(loghir @ May 3 2011, 10:45) *
15: void main (void)
16: {
17: podgot();
7E9 27F2 CALL 0x7f2
18: while(1)
7F1 2FEA GOTO 0x7ea
19: {
20: diod = knopka;
7EA 1283 BCF 0x3, 0x5[/code]


Не понял - это что, все? Еще 6 строк потеряны.
Go to the top of the page
 
+Quote Post
sargein
сообщение May 3 2011, 16:45
Сообщение #10


Участник
*

Группа: Свой
Сообщений: 72
Регистрация: 31-01-10
Из: Минск
Пользователь №: 55 176



ошибся по поводу компилятора, сообщение можно удалить

Сообщение отредактировал sargein - May 3 2011, 16:58
Go to the top of the page
 
+Quote Post
xemul
сообщение May 3 2011, 18:14
Сообщение #11



*****

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



Цитата(loghir @ May 3 2011, 19:45) *
Похоже, строка
Код
diode = knopka;

кривая. Есть мысли, как правильно?

Строчка совершенно нормальная, а вот 'Disassembly listing' МПЛаба глючит.
Во View->Program Memory всё показывается адекватно разумности компилятора. Можно ещё и в .lst заглянуть.

Угадать, что Вам не лень каждый раз задавать CONFIG в программаторе ручками, моей телепалки не хватило.
Когда станет лень, добавьте после #include <pic.h>
для писс v.9.81 и старше
Код
__CONFIG(FOSC_XT & WDTE_OFF & BOREN_OFF & CP_OFF);

для предыдущих
Код
__CONFIG(XT & WDTDIS & BORDIS & UNPROTECT);

или
Код
#if (_HTC_VER_MAJOR_ >= 9) && (_HTC_VER_MINOR_ >= 81)
__CONFIG(FOSC_XT & WDTE_OFF & BOREN_OFF & CP_OFF);
#else
__CONFIG(XT & WDTDIS & BORDIS & UNPROTECT);
#endif

Для 10-й версии потом сами поправите.
Go to the top of the page
 
+Quote Post
loghir
сообщение May 3 2011, 18:54
Сообщение #12


Участник
*

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



Цитата
Не понял - это что, все? Еще 6 строк потеряны.

все 20 строк на месте.

Цитата
Строчка совершенно нормальная,

а почему тогда в МК эта прога не работает?


Цитата
__CONFIG(XT & WDTDIS & BORDIS & UNPROTECT);

спасибо за подсказку, но это у меня не первоочередная проблема.
Go to the top of the page
 
+Quote Post
xemul
сообщение May 3 2011, 19:08
Сообщение #13



*****

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



Цитата(loghir @ May 3 2011, 22:54) *
а почему тогда в МК эта прога не работает?

В симуляторе МПЛаба работает, можете сами легко убедиться.
Проверяйте железо или зовите на помощь джинна протеуса - говорят, он всё может, даже схемы из подкорки телепать.
Go to the top of the page
 
+Quote Post
sargein
сообщение May 3 2011, 19:45
Сообщение #14


Участник
*

Группа: Свой
Сообщений: 72
Регистрация: 31-01-10
Из: Минск
Пользователь №: 55 176



Цитата(xemul @ May 3 2011, 22:08) *
В симуляторе МПЛаба работает, можете сами легко убедиться.
Проверяйте железо или зовите на помощь джинна протеуса - говорят, он всё может, даже схемы из подкорки телепать.


только вот там нету pic16f72 smile3046.gif
Go to the top of the page
 
+Quote Post
xemul
сообщение May 3 2011, 20:12
Сообщение #15



*****

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



Цитата(sargein @ May 3 2011, 23:45) *
только вот там нету pic16f72 smile3046.gif

Для проверки кода ТС достаточно любого пика - в якобы неработающей части одна и таже версия писс скомпилит всё один-в-один (надеюсь, Вы не станете выбор банка относить к существенным отличиям?).
Протеусом я не страдаю ни в какой форме, поэтому, естесно, не в курсах, чего там нету. Икона риальнаго эмбеддера была помянута исключительно из зловредности.
Go to the top of the page
 
+Quote Post

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

 


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


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