Страница 1 из 6

Нуждаюсь в помощи! прога для PIC16F628A

Добавлено: Чт июл 31, 2008 07:21:39
DeNew
Народ помогите доделать прогамму, нашёл в инете но не доделанно не много, я не шуруплю в программированье.

Тема такая, есть схема таймера, работает, но проблем в том что с выхода нет лог1 RA4 при запуске таймера, вот нужно исправить проблемму.
Спасибо.

Язык СИ, проэкт создан в проге CCS_PCWH.

Re: Нуждаюсь в помощи! прога для PIC16F628A

Добавлено: Чт июл 31, 2008 07:52:41
BerZerK-ku
DeNew писал(а): Тема такая, есть схема таймера, работает, но проблем в том что с выхода нет лог1 RA4 при запуске таймера, вот нужно исправить проблемму.
Спасибо.

Код: Выделить всё

  case ST_SIGNAL :            // Состояние "Сигнал окончания выдержки"
                                   // (неустойчивое)
         INTCON = 0;
         TRISA = 0;
         PORTA &= 0b11101111;      // Выдача лог.0 на выход
         signalsound();            // Звуковой сигнал "Окончание выдержки"
         TRISA = 0b00010000;       // Выход вернуть в Z-состояние
         gSTATE = ST_READY;        // Переход в состояние "Готовность"
         break;
С PIC дело не имел, но судя по программе RA.4 устанавливается на выход только тут и нулем. Чтобы была 1, надо сделать замену:
PORTA &= 0b11101111;
на
PORTA |=0b00010000;
И может потом еще и сбросить этот бит, как то так:
перед строкой TRISA = 0b00010000;
поставить
PORTA &= 0b11101111;

Re: Нуждаюсь в помощи! прога для PIC16F628A

Добавлено: Чт июл 31, 2008 08:11:33
DeNew
BerZerK-ku писал(а): PORTA &= 0b11101111;
на
PORTA |=0b00010000;
И может потом еще и сбросить этот бит, как то так:
перед строкой TRISA = 0b00010000;
поставить
PORTA &= 0b11101111;
Изменил но даже не почувствовал в работе таймера изменения, ведать не то :(

Добавлено: Чт июл 31, 2008 08:15:01
DeNew
Кстати вот это пишет при компиляции:

>>>Warning 203 "hometimer1.c"Line268(1.1): Condition always TRUE
хрен знает на что рычит

Добавлено: Чт июл 31, 2008 08:18:46
BerZerK-ku
Странно... в этом состоянии выход должен продержаться почти секунду.
Вопрос: вы точно сделали эти изменения, откомпилировали проект и зашили новую прошивку?

Если это так, то придется полностью разбираться с алгоритмом работы.
DeNew писал(а):Кстати вот это пишет при компиляции:

>>>Warning 203 "hometimer1.c"Line268(1.1): Condition always TRUE
хрен знает на что рычит
Он ругается на бесконечный цикл программы :) на это не надо обращать внимания.

Добавлено: Чт июл 31, 2008 08:42:21
DeNew
BerZerK-ku писал(а):Странно... в этом состоянии выход должен продержаться почти секунду.
Вопрос: вы точно сделали эти изменения, откомпилировали проект и зашили новую прошивку?
Да конечно точно, и контрольная сумма изменилась, да не точно , тут вот это я умею :)

Добавлено: Чт июл 31, 2008 08:49:01
abc
В курсе, что PORTA,4 имеет открытый сток(коллектор) на выходе ? И чтобы получить с него единицу, надо "подтянуть" его к +5в резистором.

Добавлено: Чт июл 31, 2008 08:52:09
DeNew
abc писал(а):В курсе, что PORTA,4 имеет открытый сток(коллектор) на выходе ? И чтобы получить с него единицу, надо "подтянуть" его к +5в резистором.
:shock: без понятия об этом, и как реолизовать это, резюк на ножку и на +5в?

Добавлено: Чт июл 31, 2008 09:00:49
abc
Да. Для наглядности можете повесить последовательно 1кОм и светодиод.

Добавлено: Чт июл 31, 2008 09:04:13
DeNew
abc писал(а):Да.
сделал, но воз по ныне там, поставил 10кило резюк. Питание на выходе сугубо весит то что резюк скинул с 5вольт, не купейки больше не меньше.

Добавлено: Чт июл 31, 2008 09:11:16
BerZerK-ku
DeNew писал(а): сделал, но воз по ныне там, поставил 10кило резюк. Питание на выходе сугубо весит то что резюк скинул с 5вольт, не купейки больше не меньше.
А как же иначе :) Когда порт настроен на вход - работает подтяжка, когда на выход - установлена 1 :)
Попробуйте вот этот вариант.

Добавлено: Чт июл 31, 2008 09:24:31
abc
сделал, но воз по ныне там
Еще. Компаратор должен быть отключен :

Код: Выделить всё

CLRF       PORTA
MOVLW   0x07                ;Turn comparators off and
MOVWF   CMCON            ;enable pins for I/O functions
BCF        STATUS, RP1
BSF        STATUS, RP0    ;Select Bank1
CLRF      TRISA              ;Set PORTA as outputs
BCF        STATUS, RP0    ;Select Bank0
Это должно быть в начале программы ( при инициализации портов ).

Добавлено: Чт июл 31, 2008 09:41:40
DeNew
BerZerK-ku писал(а): Попробуйте вот этот вариант.
Увы но нет на выходе лог1, но зато ноль на выходе стабильный, а то летало 0,05..0,1 вольт.

Кстати прога чем делаю, полный боекомплект. CCS_PCWH_v4.020_and_RegFiles
http://drive.stream24.ru/7530081

Добавлено: Чт июл 31, 2008 10:04:26
BerZerK-ku
Странно... нашел пару упущений в исправленной программе, но все они выставляли бы 1 на выход. Шаманство какое-то :) Либо необходимо знание архитектуры ПИК-а.

Добавлено: Чт июл 31, 2008 10:05:46
BerZerK-ku
[quote="abc"]Еще. Компаратор должен быть отключен :
quote]
Если я прваилно понял, то есть такая строка в программе

Код: Выделить всё

 setup_comparator(NC_NC_NC_NC);

Добавлено: Чт июл 31, 2008 10:08:16
DeNew
BerZerK-ku писал(а):Странно... нашел пару упущений в исправленной программе, но все они выставляли бы 1 на выход. Шаманство какое-то :) Либо необходимо знание архитектуры ПИК-а.
Вот и я про то , что не понятно, если Вам не понятно, то я вообще в полном ауте.

Добавлено: Чт июл 31, 2008 10:11:11
BerZerK-ku
DeNew писал(а): Вот и я про то , что не понятно, если Вам не понятно, то я вообще в полном ауте.
Такой вопрос: а вам известен алгоритм работы программы? т.е. что она вообще должна делать?
Судя по коду передергивание данного выхода должно происходить примерно раз в 10минут. Или его можно вызвать по нажатию кнопки?

Добавлено: Чт июл 31, 2008 10:18:28
DeNew
BerZerK-ku писал(а):
DeNew писал(а): Вот и я про то , что не понятно, если Вам не понятно, то я вообще в полном ауте.
Такой вопрос: а вам известен алгоритм работы программы? т.е. что она вообще должна делать?
Судя по коду передергивание данного выхода должно происходить примерно раз в 10минут. Или его можно вызвать по нажатию кнопки?
Ну вообще толком нет, я понял одно то, что выставляется кнопками еденицы минут десятки минут, и кнопка старт стоп, при нажатии на старт\стоп начинает мигать индикатор и время отсчитывается в минус, и соответственно пока считает на выходе должно быть лог 1, после завершения отсчета пищит зумер, и по идее лог0 на выход, проще не куда, а вот деделал ли то что я предпологаю автор не знаю.

вот графы

Для основной программы http://www.pic16.nm.ru/likbezc/hometimer_graf04.gif
Для обработчика прерываний: http://www.pic16.nm.ru/likbezc/hometimer_graf05.gif

Добавлено: Чт июл 31, 2008 10:34:12
BerZerK-ku
:) а теперь с запаянным резистором на RA.4 попробуйте зашить первоначальный вариант программы и проверить.

Добавлено: Чт июл 31, 2008 10:36:52
DeNew
BerZerK-ku писал(а)::) а теперь с запаянным резистором на RA.4 попробуйте зашить первоначальный вариант программы и проверить.
Пробовал, уже увы увы, бермудский мама его :cry: