|
Не работает передача состояния линии из одного порта в другой (pic16f72) |
|
|
|
May 2 2011, 11:32
|
Участник

Группа: Участник
Сообщений: 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
|
|
|
|
|
May 3 2011, 13:33
|
self made
   
Группа: Свой
Сообщений: 855
Регистрация: 7-03-09
Из: Toronto, Canada
Пользователь №: 45 795

|
Цитата(xemul @ May 2 2011, 12:24)  Полагаю, Ваш контроллер уверен, что он работает от RC-генератора, а каждые ~2.3 с его будет пинать сбросом вочдог. И что, он и работает от него прекрасно. Переключение его на кварц ничего не поменяет. Меня больше заитересовала строка diode = knopka; в каком компиляторе это написано?
|
|
|
|
|
May 3 2011, 13:46
|
Участник

Группа: Участник
Сообщений: 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
|
|
|
|
|
May 3 2011, 14:49
|
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
|
|
|
|
|
May 3 2011, 15:09
|
Участник

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

|
Цитата(loghir @ May 2 2011, 14:32)  (Программатор ExtraPIC, софт icprog) А попробуйте прошивать софтиной picpgm, у меня когда экстрапик был, только с ней не было никаких проблем.
|
|
|
|
|
May 3 2011, 15:45
|
Участник

Группа: Участник
Сообщений: 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; кривая. Есть мысли, как правильно?
|
|
|
|
|
May 3 2011, 16:45
|
Участник

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

|
ошибся по поводу компилятора, сообщение можно удалить
Сообщение отредактировал sargein - May 3 2011, 16:58
|
|
|
|
|
May 3 2011, 18:14
|
    
Группа: Свой
Сообщений: 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-й версии потом сами поправите.
|
|
|
|
|
May 3 2011, 18:54
|
Участник

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

|
Цитата Не понял - это что, все? Еще 6 строк потеряны. все 20 строк на месте. Цитата Строчка совершенно нормальная, а почему тогда в МК эта прога не работает? Цитата __CONFIG(XT & WDTDIS & BORDIS & UNPROTECT); спасибо за подсказку, но это у меня не первоочередная проблема.
|
|
|
|
|
May 3 2011, 19:45
|
Участник

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

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