Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 31.10.2012, 21:54  
nick458
Частый гость
 
Регистрация: 13.08.2008
Сообщений: 14
Сказал спасибо: 3
Сказали Спасибо 2 раз(а) в 1 сообщении
nick458 на пути к лучшему
По умолчанию Таймер на PIC12f629

Здравствуйте. Пытаюсь адаптировать программу отсюда http://chipmk.ru/index.php?option=co...0-22&Itemid=61
для 12F629. В протеусе и в железе начинает работать через 30сек после подачи питания. Помогите начинаюшему разобраться что не так.
Вложения:
Тип файла: rar timerr.rar (21.2 Кб, 139 просмотров)
Реклама:
nick458 вне форума  
Непрочитано 02.11.2012, 15:57  
Алекс Василич
Прописка
 
Аватар для Алекс Василич
 
Регистрация: 14.06.2012
Сообщений: 263
Сказал спасибо: 2
Сказали Спасибо 129 раз(а) в 103 сообщении(ях)
Алекс Василич на пути к лучшему
По умолчанию Re: Таймер на PIC12f629

Сообщение от nick458 Посмотреть сообщение
В протеусе и в железе начинает работать через 30сек после подачи питания
Нууу как написал - так всё и работает..
decfsz сначала уменьшает на единицу содержимое регистра, а потом проверяет его на равенство нулю и только по результатам этой проверки осуществляет переход на одну или две команды вперед. Присваивать начальные значения регистрам нужно раньше.
Проверка регистра на равенство его содержимого нулю производится последовательно командой чтения-записи movf, а затем проверкой бита Z в регистре STATUS.
Так же, нельзя сразу же в программе проверять значения в регистре общего назначения (особенно в железе), не выполнив на этапе инициализации контроллера очистку (clrf) используемого регистра. Поскольку в железном контроллере эти регистры после включения питания содержат любую случайную информацию.
Алекс Василич вне форума  
Непрочитано 02.11.2012, 16:13  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,270 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Таймер на PIC12f629

Алекс Василич, Василич , присмотрись где была взята идея .
chipmk == picborda .
Даже не стоят внимания - один бред в перемешку с кулибинством..
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 02.11.2012, 16:32  
Алекс Василич
Прописка
 
Аватар для Алекс Василич
 
Регистрация: 14.06.2012
Сообщений: 263
Сказал спасибо: 2
Сказали Спасибо 129 раз(а) в 103 сообщении(ях)
Алекс Василич на пути к лучшему
По умолчанию Re: Таймер на PIC12f629

Ааа, ну чтож, тогда ладно.
То-то там вначале куча #define-ов, видимо, щоб быстрее запутаться.
Алекс Василич вне форума  
Непрочитано 21.11.2013, 10:14  
Dr.BIF
Частый гость
 
Регистрация: 02.07.2011
Адрес: Чебоксары
Сообщений: 32
Сказал спасибо: 15
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
Dr.BIF на пути к лучшему
По умолчанию Re: Таймер на PIC12f629

У меня вопрос по прерыванию от таймера 0
Настраиваю контроллер на прерывания от ножки порта и от таймера.
В обработчике проверяю соответствующую ножку и T0IF флаг таймера.
Но непонятная проблема...
При срабатывании прерывания от ножки, обрабатывается и прерывание от таймера, как будто флаг таймера уже установлен. Флаги естественно своевременно очищаются.
Кто нибудь сталкивался с подобным?
Dr.BIF вне форума  
Непрочитано 21.11.2013, 10:43  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Таймер на PIC12f629

Dr.BIF, код выкладывайте.
Easyrider83 вне форума  
Непрочитано 21.11.2013, 11:43  
Dr.BIF
Частый гость
 
Регистрация: 02.07.2011
Адрес: Чебоксары
Сообщений: 32
Сказал спасибо: 15
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
Dr.BIF на пути к лучшему
По умолчанию Re: Таймер на PIC12f629

Код:
// Настройка прерывания
  IOCB5_bit = 1;     // Прерывание по порту GP5
  GPIE_bit = 1;       // Включение прерываний от перефирии
  T0IE_bit = 1;       // Разрешение прерывания от таймера 0
  GIE_bit = 1;         // Глобальное прерывание
 //--------------------


вот обработка прерывания

void interrupt ()
{
    if (GPIF_bit)                  // Прерывание от ножки порта
    {
        GPIF_bit = 0;
        TMR0 = rx_const;      ‹- возможно здесь нужно очистить T0IF_bit. Вечером проверю             
        if (int_pin == 0) led_2 = 1;
        else led_2 = 0;

    }

    
    if (T0IF_bit)                   // Прерывание от таймера
    {
        T0IF_bit = 0;
        TMR0 = rx_const;                 
        if (++time_100us == 200)
        {
            time_100us = 0;
            led_1 = 1;
        }
        else if (time_100us == 100) led_1 = 0;
    }

}
Этот же код на PIC16 работает как положено

Последний раз редактировалось realid; 21.11.2013 в 13:23.
Dr.BIF вне форума  
Непрочитано 21.11.2013, 12:30  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Таймер на PIC12f629

Обязательно нужно прочесть содержимое порта после вызова прерывания по перепаду уровня.
Easyrider83 вне форума  
Непрочитано 22.11.2013, 14:06  
Maxim39
Прописка
 
Аватар для Maxim39
 
Регистрация: 07.02.2010
Адрес: Калининград
Сообщений: 148
Сказал спасибо: 72
Сказали Спасибо 23 раз(а) в 20 сообщении(ях)
Maxim39 на пути к лучшему
По умолчанию Re: Таймер на PIC12f629

Как вариант, у пика надо проверять какой именно флаг выставлен прерывания. Так как вектор один на всех.

MOVWF W_TMP ; вход в прерывание
SWAPF STATUS,w
CLRF STATUS
MOVWF STATUS_TMP
BCF INTCON,GIE ; запрет всех прерываний
; - начало обработки -
TMR1_CHK ;----------------
BTFSS PIR1,TMR1IF ; если прерывание было из-за таймера TMR1 то делаем проверку
GOTO TMR0_CHK ; если нет переходим к следующей проверке
BCF PIR1,TMR1IF ; сбрасываем источник прерывания
;
;обработка прерывания от TMR1
;
;
GOTO EXITFIE

TMR0_CHK ;----------------
BTFSS INTCON,T0IF ; если прерывание было из-за таймера задержки TMR0
GOTO INT_CHK ; то мы его сбрасываем и загружаем последнее значение
BCF INTCON,T0IF
;
;обработка прерывания от TMR0
;
;
GOTO EXITFIE

INT_CHK ;----------------
BTFSS INTCON,INTF ; если прерывание было из-за "геркона"
;
;обработка прерывания от INTCON
;

BSF INTCON,T0IE

EXITFIE ; - конец обработки -
SWAPF STATUS_TMP,w
MOVWF STATUS
SWAPF W_TMP,f
SWAPF W_TMP,w
BSF INTCON,GIE ; разрешение всех прерываний
RETFIE
__________________
Лужу, паяю, ЭВМ починяю.....
Maxim39 вне форума  
Непрочитано 28.03.2014, 06:54  
Dr.BIF
Частый гость
 
Регистрация: 02.07.2011
Адрес: Чебоксары
Сообщений: 32
Сказал спасибо: 15
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
Dr.BIF на пути к лучшему
По умолчанию Re: Таймер на PIC12f629

Проблема оказалась в непонятной работе порта GPIO.
Например на GP0 установлена 1, потом устанавливаю 1 на GP1 или любой другой, на GP0 единица слетает. Что это такое?
Решил проблему записью байта в GPIO... но это же неправильно. Получается нельзя управлять отдельными битами порта на этом контроллере.
Кто нибудь знает почему такое происходит?
Dr.BIF вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PIC12F629 otect Микроконтроллеры, АЦП, память и т.д 6 27.01.2008 16:58
PIC12F629 otest Микроконтроллеры, АЦП, память и т.д 2 19.10.2007 01:02
PIC12F629,таймер CERGEI1982 Микроконтроллеры, АЦП, память и т.д 25 25.09.2007 13:35
Помогите с PIC12F629 Alien2057 Цифровые сигнальные процессоры 4 07.05.2007 12:38
PIC12F629 RETAS Микроконтроллеры, АЦП, память и т.д 1 08.07.2005 09:21


Часовой пояс GMT +4, время: 06:05.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot