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

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Аватара пользователя
DeNew
Вымогатель припоя
Сообщения: 579
Зарегистрирован: Чт окт 19, 2006 13:19:04
Откуда: Зеленоград

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

Сообщение DeNew »

Народ помогите доделать прогамму, нашёл в инете но не доделанно не много, я не шуруплю в программированье.

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

Язык СИ, проэкт создан в проге CCS_PCWH.
Вложения
Timer.zip
(59.81 КБ) 278 скачиваний
schema.gif
(22.61 КБ) 655 скачиваний
Реклама
BerZerK-ku
Мучитель микросхем
Сообщения: 492
Зарегистрирован: Вт июл 22, 2008 08:10:54

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

Сообщение 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;
Реклама
Аватара пользователя
DeNew
Вымогатель припоя
Сообщения: 579
Зарегистрирован: Чт окт 19, 2006 13:19:04
Откуда: Зеленоград

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

Сообщение DeNew »

BerZerK-ku писал(а): PORTA &= 0b11101111;
на
PORTA |=0b00010000;
И может потом еще и сбросить этот бит, как то так:
перед строкой TRISA = 0b00010000;
поставить
PORTA &= 0b11101111;
Изменил но даже не почувствовал в работе таймера изменения, ведать не то :(
Аватара пользователя
DeNew
Вымогатель припоя
Сообщения: 579
Зарегистрирован: Чт окт 19, 2006 13:19:04
Откуда: Зеленоград

Сообщение DeNew »

Кстати вот это пишет при компиляции:

>>>Warning 203 "hometimer1.c"Line268(1.1): Condition always TRUE
хрен знает на что рычит
Реклама
Эиком - электронные компоненты и радиодетали
BerZerK-ku
Мучитель микросхем
Сообщения: 492
Зарегистрирован: Вт июл 22, 2008 08:10:54

Сообщение BerZerK-ku »

Странно... в этом состоянии выход должен продержаться почти секунду.
Вопрос: вы точно сделали эти изменения, откомпилировали проект и зашили новую прошивку?

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

>>>Warning 203 "hometimer1.c"Line268(1.1): Condition always TRUE
хрен знает на что рычит
Он ругается на бесконечный цикл программы :) на это не надо обращать внимания.
Реклама
Аватара пользователя
DeNew
Вымогатель припоя
Сообщения: 579
Зарегистрирован: Чт окт 19, 2006 13:19:04
Откуда: Зеленоград

Сообщение DeNew »

BerZerK-ku писал(а):Странно... в этом состоянии выход должен продержаться почти секунду.
Вопрос: вы точно сделали эти изменения, откомпилировали проект и зашили новую прошивку?
Да конечно точно, и контрольная сумма изменилась, да не точно , тут вот это я умею :)
Реклама
Аватара пользователя
abc
Друг Кота
Сообщения: 3685
Зарегистрирован: Чт мар 20, 2008 01:06:40
Откуда: Севастополь

Сообщение abc »

В курсе, что PORTA,4 имеет открытый сток(коллектор) на выходе ? И чтобы получить с него единицу, надо "подтянуть" его к +5в резистором.
Аватара пользователя
DeNew
Вымогатель припоя
Сообщения: 579
Зарегистрирован: Чт окт 19, 2006 13:19:04
Откуда: Зеленоград

Сообщение DeNew »

abc писал(а):В курсе, что PORTA,4 имеет открытый сток(коллектор) на выходе ? И чтобы получить с него единицу, надо "подтянуть" его к +5в резистором.
:shock: без понятия об этом, и как реолизовать это, резюк на ножку и на +5в?
Аватара пользователя
abc
Друг Кота
Сообщения: 3685
Зарегистрирован: Чт мар 20, 2008 01:06:40
Откуда: Севастополь

Сообщение abc »

Да. Для наглядности можете повесить последовательно 1кОм и светодиод.
Последний раз редактировалось abc Чт июл 31, 2008 09:05:22, всего редактировалось 1 раз.
Аватара пользователя
DeNew
Вымогатель припоя
Сообщения: 579
Зарегистрирован: Чт окт 19, 2006 13:19:04
Откуда: Зеленоград

Сообщение DeNew »

abc писал(а):Да.
сделал, но воз по ныне там, поставил 10кило резюк. Питание на выходе сугубо весит то что резюк скинул с 5вольт, не купейки больше не меньше.
BerZerK-ku
Мучитель микросхем
Сообщения: 492
Зарегистрирован: Вт июл 22, 2008 08:10:54

Сообщение BerZerK-ku »

DeNew писал(а): сделал, но воз по ныне там, поставил 10кило резюк. Питание на выходе сугубо весит то что резюк скинул с 5вольт, не купейки больше не меньше.
А как же иначе :) Когда порт настроен на вход - работает подтяжка, когда на выход - установлена 1 :)
Попробуйте вот этот вариант.
Вложения
hometimer1.c
(16.25 КБ) 320 скачиваний
Аватара пользователя
abc
Друг Кота
Сообщения: 3685
Зарегистрирован: Чт мар 20, 2008 01:06:40
Откуда: Севастополь

Сообщение 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
Это должно быть в начале программы ( при инициализации портов ).
Аватара пользователя
DeNew
Вымогатель припоя
Сообщения: 579
Зарегистрирован: Чт окт 19, 2006 13:19:04
Откуда: Зеленоград

Сообщение DeNew »

BerZerK-ku писал(а): Попробуйте вот этот вариант.
Увы но нет на выходе лог1, но зато ноль на выходе стабильный, а то летало 0,05..0,1 вольт.

Кстати прога чем делаю, полный боекомплект. CCS_PCWH_v4.020_and_RegFiles
http://drive.stream24.ru/7530081
BerZerK-ku
Мучитель микросхем
Сообщения: 492
Зарегистрирован: Вт июл 22, 2008 08:10:54

Сообщение BerZerK-ku »

Странно... нашел пару упущений в исправленной программе, но все они выставляли бы 1 на выход. Шаманство какое-то :) Либо необходимо знание архитектуры ПИК-а.
BerZerK-ku
Мучитель микросхем
Сообщения: 492
Зарегистрирован: Вт июл 22, 2008 08:10:54

Сообщение BerZerK-ku »

[quote="abc"]Еще. Компаратор должен быть отключен :
quote]
Если я прваилно понял, то есть такая строка в программе

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

 setup_comparator(NC_NC_NC_NC);
Аватара пользователя
DeNew
Вымогатель припоя
Сообщения: 579
Зарегистрирован: Чт окт 19, 2006 13:19:04
Откуда: Зеленоград

Сообщение DeNew »

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

Сообщение BerZerK-ku »

DeNew писал(а): Вот и я про то , что не понятно, если Вам не понятно, то я вообще в полном ауте.
Такой вопрос: а вам известен алгоритм работы программы? т.е. что она вообще должна делать?
Судя по коду передергивание данного выхода должно происходить примерно раз в 10минут. Или его можно вызвать по нажатию кнопки?
Аватара пользователя
DeNew
Вымогатель припоя
Сообщения: 579
Зарегистрирован: Чт окт 19, 2006 13:19:04
Откуда: Зеленоград

Сообщение 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
BerZerK-ku
Мучитель микросхем
Сообщения: 492
Зарегистрирован: Вт июл 22, 2008 08:10:54

Сообщение BerZerK-ku »

:) а теперь с запаянным резистором на RA.4 попробуйте зашить первоначальный вариант программы и проверить.
Аватара пользователя
DeNew
Вымогатель припоя
Сообщения: 579
Зарегистрирован: Чт окт 19, 2006 13:19:04
Откуда: Зеленоград

Сообщение DeNew »

BerZerK-ku писал(а)::) а теперь с запаянным резистором на RA.4 попробуйте зашить первоначальный вариант программы и проверить.
Пробовал, уже увы увы, бермудский мама его :cry:
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»