Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
 Аватар для GaFBich
22 / 22 / 5
Регистрация: 18.03.2010
Сообщений: 331

PIC12F629 режим SLEEP

30.01.2016, 13:14. Показов 2889. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть устройство, используется мк PIC12F629, проблема с выводом из SLEEP режима, при нажатии на кнопку подключенную к GP5, выход из режима SLEEP при помощи прерывания по изменению уровня сигнала. Ниже приведу код.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#include <htc.h>
#include <xc.h>
#define _XTAL_FREQ 4000000 //Частота внутреннего генератора
#define   KEY_S1    GP5
#define   KEY_S2    GP4
#define   KEY_S3    GP2
#define   LED       GP1
#define   TX        GP0
unsigned long sleep_count=0;
 
#pragma config FOSC = INTRCIO
#pragma config WDTE = OFF
#pragma config PWRTE = OFF
#pragma config MCLRE = OFF
#pragma config CP = ON
#pragma config CPD = OFF
#pragma config BOREN = OFF
 
 
//////////Прототипы функций////////
void enter_sleep(void);
void wake_up(void);
 
void enter_sleep(void)
{
IOC5=1;//разрешение прерывания по изменению уровня сигнала на GP5 
GPIE=1;
GPIF=0;
GPIO=0;
GPIO=GPIO;
SLEEP();
}
 
void wake_up(void)
{
GIE = 0;  // бит глобального разрешения прерываний
GPIF=0;
GPIE=0;
TRISIO=0x3C;
IOC5=0;
}
 
void main()
{
///////////////////////////////////////
//####Настроим направление выводов.####
///////////////////////////////////////
TRISIO=0x3C;
// #############################################
/////////Настройка регистров прерываний/////////
// #############################################
//INTE = 1; // бит разрешения внешнего прерывания INT
GIE = 1;  // бит глобального разрешения прерываний
GPIE=1;//бит разрешения прерывания по изменению уровня сигнала на GPIO
// #############################################
 
LED=0;
    while(1)
    {
        if(KEY_S1==1)
            {
            int counter=0;
            while(KEY_S1==1)
                {
                __delay_us(500);
                counter++;
 
                if(counter==2){LED=1;__delay_ms(500);LED=0;}
                if(counter==3000)
                    {
                    //Для длительного нажатия
                    }
                }
            }   
        
if(sleep_count==15000)
{
sleep_count=0;
LED=1;
__delay_ms(1500);
LED=0;
        enter_sleep();
        NOP();
        wake_up();
}
sleep_count++;
__delay_us(10);
    
    }   
}
Буду признателен за помощь.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.01.2016, 13:14
Ответы с готовыми решениями:

PIC18F4550. Режим sleep
Нужна программа с использованием режимов(sleep, idle) в микроконтроллере 18f4550. Помогите пожалуйста

Программатор для PIC12F629
Привет))) Есть схемка простенького программатора, на котором можно программировать контролер PIC12F629? Или подкиньте ссылку на интернет...

extra-pic и pic12f629
попросили помочь прошить сабжевый контроллер, программатор дали. сейчас подключил согласно статьи к программатору - не работает, не...

2
4040 / 2652 / 582
Регистрация: 11.09.2009
Сообщений: 9,463
01.02.2016, 13:39
Цитата Сообщение от GaFBich Посмотреть сообщение
C++
1
void wake_up(void) { GIE = 0; // бит глобального разрешения прерываний
Не там. Прерывание УЖЕ должно быть разрешено, чтобы оно сработало при нажатии кнопки.
0
61 / 186 / 31
Регистрация: 14.02.2013
Сообщений: 1,695
03.02.2016, 19:36
Нету функции обработки прерываний. interrupt
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.02.2016, 19:36
Помогаю со студенческими работами здесь

Реверсинг прошивки PIC12F629
Добрый вечер. Решил собрать миниробота на PIC12F629. Соответственно встал вопрос о прошивке. В источнике, с которого брал идею, есть пример...

Частота внутреннего кварца PIC12F629
Всем привет! Пытаюсь с МК отправить в компьютер байт информации. Отправляю 30, получаю D9. Работаю на скорости в 1200 бод. Мне кажется...

Нужно немного изменить программу на asm для PIC микроконтроллера (PIC12F629)
Помогите пожалуйста, нужно немного изменить программу для этой схемы (код на сайте) http://kazus.ru/shemes/showpage/0/1532/1.html Вот...

Компромис скорости и нагрузки на процессор - Thread.Sleep(0) и Thread.Sleep(1)
Всем привет! Есть бесконечный цикл. while(true) { ... } Внутри выполняются важные операции)

ФАЙЛЫ. Сменить режим записи (ofstream) на режим чтения (ifstream)
Привет, мне нужно создать файлы, после чего я в них впишу информацию, а потом мне нужно будет эту информацию достать, но попытка просто...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru