Спасибо за участие но так в лоб прошивка мк результата не даёт. pic12f675 не реагирует даже на кнопки переключения в ждущий режим. Светодиод индикации горит постоянно. Схема полностью не работает. Данный вопрос поднимался на 1 странице, тогда там HEX менялся.
так и тут написано "выключаем модуль компаратора"...... ---------- дай чтение программатором зашитой микросхемы....самые нижние (последние две ячейки памяти)....мож., ты про них забыл (или не знал) генератор внутренний, а константу ты "потерял" (если не сохранил файл чтения нового контроллера) ----- теперь туда вручную можно вставить что-нибудь 34 F0 (34 0F) -------- если есть другой нетронутый пик, то прочитай его и посмотри последние ячейки
окно памяти программы надо было опустить вниз для скрина, чтобы там в конце было видно 34хх... ------ пиккиту, конечно, приходится верить.....но на всякий случай (я им не пользовался, не знаю, какие там настройки и возможности) -------- есть где-то отзывы, что схема работала или ты первый повторятель ?
void pause(unsigned int time) /*Подпрограмма обеспечивающая паузы*/ { //t=time X 11 Х 1мкс (Fosc=4МГц) while(time-->0); //Пауза }
char scan(void) /*Подпрограмма подсчета периодов поступающих с антены устройства*/ { char temp; //Переменая для внутрених нужд
TMR0=0; //Очищаем таймер/счетчик pause(9090); //Пауза 0.1сек temp=TMR0; //Сохраняем значение таймера/счетчика if(temp>osc_min && temp<osc_max) //Проверяем лежит ли значение TMR0 в нужном диапазоне { return TRUE; //если да то выходим и возвращаем значение TRUE }
return FALSE; //если нет, то - FALSE }
main() { char temp; //Переменые для внутрених нужд unsigned int i;
line_1: //Метка для старта работы устройства после режима "sleep"
for(;;) //Запускаем главный цикл программы { led=1; //Зажигаем светодиод if(scan()) //Проверяем присутствует ли на входе антены электромагнитное поле с частотой 50Гц { //если присутствует led=0; //то гасим светодиод for(i=0; i<400; i++) //и запускаем цикл для подачи звукового сигнала { if(zumer_1) //Проверяем лог. значение на одном из выводов зумера { zumer_1=0; //и инвертируем состояние выводов zumer_2=1; } else { zumer_1=1; //инвертируем состояние выводов zumer_2=0; }
pause(45); //Пауза, которая равна полупериоду частоты 1000 Гц } }
if(key==0) //Проверяем не нажата ли кнопка { //если нажата led=0; //то гасим светодиод zumer_1=0; //устанавливаем на выводах зумера лог. "0" zumer_2=0; while(key==0); //Ждем пока отпустят кнопку pause(45450); //Небольшая пауза (0.5сек) temp=GPIO; //Сохраняем значение портов ввода/вывода GPIE=1; //Розрешаем выход из режима "sleep" по изменению логического уровня на выводах микроконтроллера GPIF=0; //Сбрасываем флаг прерываний от выводов SLEEP(); //Засыпаем.......
/*Если было нажатие кнопки, то просыпаемся*/ GPIE=0; //Запрещаем прерывание от выводов goto line_1; //и идем на метку line_1 } } }
Даже если не угадаете с константой, то светодиод от кнопки все равно будет зажигаться.
Вложения:
Комментарий к файлу: прошивка и протеус probe.7z [13.98 KiB]
Скачиваний: 22
_________________ У того, кто делает — получается редко. У того, кто не делает — не получается никогда.
окно памяти программы надо было опустить вниз для скрина, чтобы там в конце было видно 34хх... ------ пиккиту, конечно, приходится верить.....но на всякий случай (я им не пользовался, не знаю, какие там настройки и возможности) -------- есть где-то отзывы, что схема работала или ты первый повторятель ?
На pic12f629 программа работает. Многие повторяли, схема из журнала радио, искатель скрытой сетевой проводки в стенах.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения