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

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

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

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

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

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

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 26.01.2005, 02:10  
RETAS
Гость
 
Сообщений: n/a
По умолчанию PIC16F84A???

Уважаемый DK!

Большое вам спасибо за разьяснения о прерываниях,но,как говорится,
углубление в лес,ровносильно увеличению количеству дров и,в потверждение
этого,у меня опять вопросы и надежда на помощь

1. Предназначение выражения ORG.Я сумел понять,что им указывается начало программы
и вектор прерываний,но,скажем,в одной и програм стоит ORG 5.Что это даёт?

2. Есть ли возможность в PICе зафиксировать факт,что на заданный порт
поступал импульс и эта информация сохранялась немешая основной программе,
а после проверке стиралась?

3. Как определить с помощью PICа-кратковременно или долго нажымалась кнопка?

Спасибо.
Реклама:
 
Непрочитано 27.01.2005, 14:27  
DK
Почётный гражданин KAZUS.RU
 
Аватар для DK
 
Регистрация: 10.05.2003
Адрес: Москва
Сообщений: 2,528
Сказал спасибо: 737
Сказали Спасибо 1,927 раз(а) в 799 сообщении(ях)
DK на пути к лучшему
По умолчанию Re: PIC16F84A???

Сообщение от RETAS
1. Предназначение выражения ORG
Все очень просто. ORG 5 - означает, что данный блок программы размещается в памяти начиная с адреса 5.
Сообщение от RETAS
2. Есть ли возможность в PICе зафиксировать факт,что на заданный порт поступал импульс и эта информация сохранялась немешая основной программе, а после проверке стиралась?
Можно. Пишешь обработчик прерывания от изменения состояния порта и пишешь в любую переменную флажок. Или, если нужно хранение этой инфы при отключении питания, пишешь в ППЗУ.
Сообщение от RETAS
3. Как определить с помощью PICа-кратковременно или долго нажымалась кнопка?
Просто считай количество циклов опроса при замкнутой кнопке. А после размыкания сравнивай с константой - если меньше, значит кратковременное замыкание было. Или системный таймер запускай и читай из него.
__________________
Опыт - это школа, в которой человек узнает, каким дураком он был раньше.
DK вне форума  
Непрочитано 27.01.2005, 23:26  
li$ergin
Гость
 
Сообщений: n/a
По умолчанию

Для примера могу подкинуть как я с этим боролся, с оп\тлавливанием длинного нажатия

...
unpres bcf flags, 2 ;да, это не дребезг....
movlw 0xFF
movwf keyprleng ;инициализируем младшее слово аккумулятора длиного нажатия
movlw 0x03 ;инициализируем старшее слово
movwf keyprlengh ;аккумулятора
return


press btfsc flags, 2 ;текущее нажатие было отработано?
goto islong ;да, определим, длинное ли нажатие

;********обработка единичного нажатия 1-й кнопки**********
btfss flags, 1 ;текущий режим-ручной?
goto but2auto ;нет, авторежим, соответственно реагируем
movlw .0
subwf effect, w
btfsc STATUS, Z ;эффект бегущий огонь?
goto needshad ;да, пропускаем сдвиг
call in_c_0
rlf effect, f ;нет, двигаем единичку
bsf flags, 2 ;ставим флаг - кнопка отработана
return

needshad bsf effect, 0 ;включаем бегущий огонь, так как простой сдвиг ничего не даст
bsf flags, 2 ;ставим флаг - кнопка отработан
return

islong decfsz keyprleng, f ;уменшаем на 1 аккумулятор нажатий без отпускания
return ;было ли ровно hFF нажатий?
decfsz keyprlengh, f ;да, уменшаем старшее слово аккумулятора
return
movlw b'00000010' ;инвертируем флажек
xorwf flags, f ;автообработки
btfsc flags, 1 ;Ручное переключение?
bcf PORTA, 0
btfss flags, 1
bsf PORTA, 0
bsf flags, 2
movlw 0xFF ;инициализируем
movwf keyprleng ;оба слова
movlw 0x03 ;аккумулятора
movwf keyprlengh ;длинного нажатия
return

может и несколько кривовато, за то, по-моему, понятно...
 
Непрочитано 16.02.2005, 21:19  
RETAS
Гость
 
Сообщений: n/a
По умолчанию

О том, что ORG указывает по какому адресу направится программе,
мне понятно, но непонятно когда и какой адрес указывать.Взгляните,
пжл., на програмку бегущих огней www.interq.or.jp/japan/se-inoue/e_pic6_15.htm
и помогите разобраться для чего там стоит ORG 5 и в каком случаи
программа очутится на этом месте.

Зайти на этот сайт японца рекомендую всем начинающим знакомство
с PICами.

Спасибо.
 
Непрочитано 24.02.2005, 12:21  
Drex
Прописка
 
Аватар для Drex
 
Регистрация: 16.04.2004
Сообщений: 201
Сказал спасибо: 336
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
Drex на пути к лучшему
По умолчанию

ORG указывает НЕ по какому адресу направиться программе, (это указывает goto), а указывает компилятору по какому адресу в памяти программ будет размещена следующая за ORG команда. Вот тут например у японца:
org 4 ;Interrupt Vector
goto init

;**************** Initial Process *********************
org 5
init bsf status,rp0 ;Change to Bank1
movlw h'ff' ;Set input mode data
movwf trisa ;Set PORTA to Input mode

по адресу 0004 (ORG 4) размещается команда goto init

а вот ORG 5 здесь по сути вообще никакого смысла не имеет, потому что следующая команда (bsf status,rp0) и без него размещалась бы по адресу 5, так как идет следом за командой goto init. ORG используется тогда, когда нужно разместить кусок программы строго по заданному адресу в области программ.
Drex вне форума  
Непрочитано 03.03.2005, 09:20  
RETAS
Гость
 
Сообщений: n/a
По умолчанию

Большое спасибо за долгожданный ответ, я уж, было, думал - недождусь.

ВСЕМ! ВСЕМ! ВСЕМ! У вас есть вопросы ? Спрашываите - ну очень мала вероятность, что вам неответят.

А у меня опять хватает наглости из-за благосклонности КАЗУСА задать очередной детский вопрос об этих
ORG-ах( будьте любезны, если ещё терпимо):

если я указал с помощью ORG начало программы и адрес возврата из прерываний,то есть ли какие ещё
другие случаи когда необходимо указывать строгие адреса?

Спасибо.
 
Непрочитано 03.03.2005, 15:14  
DK
Почётный гражданин KAZUS.RU
 
Аватар для DK
 
Регистрация: 10.05.2003
Адрес: Москва
Сообщений: 2,528
Сказал спасибо: 737
Сказали Спасибо 1,927 раз(а) в 799 сообщении(ях)
DK на пути к лучшему
По умолчанию

[quote="RETAS"]Большое спасибо за долгожданный ответ, я уж, было, думал - недождусь.

ВСЕМ! ВСЕМ! ВСЕМ! У вас есть вопросы ? Спрашываите - ну очень мала вероятность, что вам неответят.

А у меня опять хватает наглости из-за благосклонности КАЗУСА задать очередной детский вопрос об этих
ORG-ах( будьте любезны, если ещё терпимо):

Цитата:
если я указал .... адрес возврата из прерываний
а это еще зачем? Стека тебе недостаточно?
Цитата:
есть ли какие ещё другие случаи когда необходимо указывать строгие адреса?
Да нет, пожалуй... В ORG есть необходимость, если размещаешь обработчик прерываний (ORG 4). Ну еще может возникнуть такая необходимость при размещении блока данных, чтоб не перейти через границу сегмента (для простоты выборки).
__________________
Опыт - это школа, в которой человек узнает, каким дураком он был раньше.
DK вне форума  
Непрочитано 04.03.2005, 05:20  
Drex
Прописка
 
Аватар для Drex
 
Регистрация: 16.04.2004
Сообщений: 201
Сказал спасибо: 336
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
Drex на пути к лучшему
По умолчанию

Цитата:
я указал с помощью ORG начало программы и адрес возврата из прерываний,
Что значит адрес возврата из прерывания ? Он ведь каждый раз разный и хранится в стеке. Сама суть прерывания в чем? В том, что где программа прервала свой ход, именно туда она должна и вернуться после отработки процедуры прерывания. Другое дело, что адрес начала процедуры прерывания должен быть указан жестко (0004), но это для данного типа контроллера, у других он может быть нефиксированным. А также как сказал уважаемый DK, ORG полезно использовать при размещении блока данных.
Drex вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PIC16F84A и MT-16S2D Runtime_error Микроконтроллеры, АЦП, память и т.д 2 09.05.2007 19:18
Pic16f84a VS Assembler tuart Микроконтроллеры, АЦП, память и т.д 2 11.04.2007 23:19
PIC16F84A документацыя макс Микроконтроллеры, АЦП, память и т.д 3 11.12.2005 14:03
PIC16F84A макс Микроконтроллеры, АЦП, память и т.д 1 11.12.2005 00:01
pic16f84a khorght Микроконтроллеры, АЦП, память и т.д 1 09.09.2004 20:37


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


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