Форум
 

Вернуться   Форум "Фрикер Клуб" - кодграббер своими руками > Основной раздел > Микроконтроллеры

Важная информация

Ответ
 
Опции темы Опции просмотра
Старый 21.11.2012, 16:33   #1
sir.pomidor Меню Пользователя
Вступил в клуб
 
Регистрация: 21.09.2012
Сообщений: 19
По умолчанию PIC 12F635 регистр WDA и WPUDA

Ребят помогите!
В пиках я полный "0". Пытаюсь разобраться с подтяжками и не могу понять регистры WDA(97h) и WPUDA (95h) за что отвечают и как работают...

может кто подскажет, буду благодарен
sir.pomidor вне форума   Ответить с цитированием
Старый 22.11.2012, 09:37   #2
CodePerfect Меню Пользователя
Автор
 
Аватар для CodePerfect
 
Регистрация: 18.02.2011
Сообщений: 335
По умолчанию Re: PIC 12F635 регистр WDA и WPUDA

Если я правильно понял, WPUDA назначает для каждого канала порта (кроме RA3), будет ли там вообще работать внутренняя подтяжка к "+" или "-". Регистр WDA определяет, какая именно подтяжка будет на конкретном канале ("+" или "-").
Кроме того, необходимо выставить в "0" старший бит регистра OPTION_REG (RAPU).
__________________
Ошибки в прошивках не исправляю, боевых прошивок нет, грабберами не торгую.
Подскажу по программированию на ассемблере для PIC.

Последний раз редактировалось CodePerfect; 22.11.2012 в 09:41.
CodePerfect вне форума   Ответить с цитированием
Старый 22.11.2012, 10:46   #3
russo_turisto Меню Пользователя
Резидент клуба
 
Аватар для russo_turisto
 
Регистрация: 21.08.2011
Сообщений: 1,204
По умолчанию Re: PIC 12F635 регистр WDA и WPUDA

Цитата:
Сообщение от sir.pomidor
Ребят помогите!
В пиках я полный "0". Пытаюсь разобраться с подтяжками и не могу понять регистры WDA(97h) и WPUDA (95h) за что отвечают и как работают...

может кто подскажет, буду благодарен

А переключился в 1 банк?

Давай код посмотрим.
russo_turisto вне форума   Ответить с цитированием
Старый 22.11.2012, 11:50   #4
sir.pomidor Меню Пользователя
Вступил в клуб
 
Регистрация: 21.09.2012
Сообщений: 19
По умолчанию Re: PIC 12F635 регистр WDA и WPUDA

Предыстория...
Для своих экспериментов купил я сигнализацию Sheriff ZX 750.
В комплекте с сигнализацией есть брелок (который без обратки) с PIC 12F635 на борту.
Из него я решил сделать открывалку шлагбаумов, а заодно поэкспериментировать с контроллерами PIC.
Прозвонкой получил электрическую схему (смотри вложения).
Как видно из схемы кнопки коммутируют "+" на порты ввода.
Нарисовал простую программу в CCS (смотри вложения).
При нажатии на кнопку 1- один раз мигаем, 2 - кнопку 2 раза мигаем, 3 кнопка - 3 раза мигаем...
И возникла проблема, мигание происходит от наводок - руку подносишь к кнопке (еще не нажимаешь) а она уже срабатывает. Такое чувство что кнопка не подтянута к "-" и срабатывает на наводки...

Вот и пытаюся разобраться с подтяжками...
Ассемблерный код смотрел, компилятор банки переключает как надо...
Вложения
Тип файла: zip Project ZX.zip (85.0 Кб, 60 просмотров)
sir.pomidor вне форума   Ответить с цитированием
Старый 22.11.2012, 12:43   #5
CodePerfect Меню Пользователя
Автор
 
Аватар для CodePerfect
 
Регистрация: 18.02.2011
Сообщений: 335
По умолчанию Re: PIC 12F635 регистр WDA и WPUDA

// WPUDA = 0b00011011; // Подтжка на входа

Строка закомментирована? Хотя, после запуска там единицы должны быть.

А тестером посмотреть, что на ногах?

Проверь OPTION_REG, старший бит нужно принудительно выставить 0, после подачи питания там стоит 1.
__________________
Ошибки в прошивках не исправляю, боевых прошивок нет, грабберами не торгую.
Подскажу по программированию на ассемблере для PIC.
CodePerfect вне форума   Ответить с цитированием
Старый 22.11.2012, 13:31   #6
sir.pomidor Меню Пользователя
Вступил в клуб
 
Регистрация: 21.09.2012
Сообщений: 19
По умолчанию Re: PIC 12F635 регистр WDA и WPUDA

Цитата:
Сообщение от CodePerfect
// WPUDA = 0b00011011; // Подтжка на входа

Строка закомментирована? Хотя, после запуска там единицы должны быть.

А тестером посмотреть, что на ногах?

Проверь OPTION_REG, старший бит нужно принудительно выставить 0, после подачи питания там стоит 1.

закоментированно, т.к. всяко пробовал....

тестером не смотрел, сегодня гляну.... по результату отпишусь...

Добавлено через 3 минуты
Цитата:
Сообщение от CodePerfect
Строка закомментирована? Хотя, после запуска там единицы должны быть.

Проверь OPTION_REG, старший бит нужно принудительно выставить 0, после подачи питания там стоит 1.

Ассемблерный код PORT_a_PULLUPS(true);
.................... PORT_a_PULLUPS(true); // ïîäòÿæêà
004C: MOVLW 01
004D: BSF 03.5
004E: MOVWF 15
004F: BCF 01.7
0050: MOVLW FF
0051: MOVWF 17

как раз все это и делает, за исключением регистра WPUDA...
sir.pomidor вне форума   Ответить с цитированием
Старый 22.11.2012, 14:55   #7
CodePerfect Меню Пользователя
Автор
 
Аватар для CodePerfect
 
Регистрация: 18.02.2011
Сообщений: 335
По умолчанию Re: PIC 12F635 регистр WDA и WPUDA

Цитата:
Сообщение от sir.pomidor
004C: MOVLW 01

Я бы поставил тут MOVLW FF, а то получается, что подтяжка только на RA0.
__________________
Ошибки в прошивках не исправляю, боевых прошивок нет, грабберами не торгую.
Подскажу по программированию на ассемблере для PIC.
CodePerfect вне форума   Ответить с цитированием
Старый 22.11.2012, 18:03   #8
russo_turisto Меню Пользователя
Резидент клуба
 
Аватар для russo_turisto
 
Регистрация: 21.08.2011
Сообщений: 1,204
По умолчанию Re: PIC 12F635 регистр WDA и WPUDA

Сможешь в протеусе схему накидать?

В ворде 2003 просьба перелить описание.
russo_turisto вне форума   Ответить с цитированием
Старый 23.11.2012, 07:36   #9
sir.pomidor Меню Пользователя
Вступил в клуб
 
Регистрация: 21.09.2012
Сообщений: 19
По умолчанию Re: PIC 12F635 регистр WDA и WPUDA

Всем спасибо!
Заработало. Рабочий код:
PORT_a_PULLUPS(0b00010011); // регистр RAPU
WPU = 0b00000000; // конфигурация подтяжек
WPUDA = 0b00010011; // включение подтяжек

Видимо регитр WPU -> конфигурация подтяжки PULL-UP/PULL-DOWN
регистр WPUDA -> включение подтяжек


Цитата:
Сообщение от russo_turisto
Сможешь в протеусе схему накидать?

В ворде 2003 просьба перелить описание.

С протеусом проблема. Не нашел я там 12F635. Есть только 12F675, но его архитектура немного отличается (регистр WPUDA отсутствует)

схему залил в PDF...

Брелок заработал, сигналки глушит. На шлагбаумах пока не проверял, времени не было...

Возникли новые вопросы ))

Режим Sleep.
Сделал выход из SLEEP по изменению состояния порта ввода (т.е. от нажатия кнопок).
Работает как то странно. Если проц заснул при отпущенной кнопке, то просыпается только при заднем фронте кнопки (т.е. кнопку нажали, проц спит. Кнопку отпустили проц проснулся). Если заснули при нажатой кнопке, просыпается на передний фронт (отпустили кнопку, проц спит. Нажали - проц проснулся).
Как сделать, что бы проц просыпался на передний фронт кнопки, без переделки аппаратной части?
Вложения
Тип файла: pdf hardware.pdf (64.1 Кб, 33 просмотров)
sir.pomidor вне форума   Ответить с цитированием
Старый 23.11.2012, 12:02   #10
russo_turisto Меню Пользователя
Резидент клуба
 
Аватар для russo_turisto
 
Регистрация: 21.08.2011
Сообщений: 1,204
По умолчанию Re: PIC 12F635 регистр WDA и WPUDA

А как проц засыпает при нажатой кнопке?

Давай код.

Добавлено через 14 минут
Может флаг прерывания после просыпания не сбрасывается програмно.
russo_turisto вне форума   Ответить с цитированием
Ответ

Опции темы
Опции просмотра

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

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



Текущее время: 06:05. Часовой пояс GMT +3.


vBulletin 4.1.0 Перевод: zCarot
(C) www.phreakerclub.com
Яндекс.Метрика