Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Продукция MICROCHIP

Продукция MICROCHIP Технические вопросы по всей продукции Microchip

Ответ
 
Опции темы Опции просмотра
Старый 15.10.2017, 00:15   #1
LKIJ/ЛДКО
Member
 
Аватар для LKIJ/ЛДКО
 
Регистрация: 28.10.2014
Адрес: Lithuania / Литва, Vilnius / Вильнюс
Возраст: 32
Сообщений: 57
Вес репутации: 100/13
LKIJ/ЛДКО will become famous soon enoughLKIJ/ЛДКО will become famous soon enough
По умолчанию Прерывание у 16-битных PIC‘ов

Привет. Начал програмировать 16-битные PIC‘и. LED‘ом уже поморгал. Тепер немогу запускать прерывание, потому что незнаю аналога строки „org 0x04“, которая исползовалос в исходном коде 8-битных PIC‘ов. Может кто нибудь исползует асемблер и поможет?
__________________
Кто, если не мы, когда, если не сейчас?
LKIJ/ЛДКО вне форума   Ответить с цитированием
Старый 15.10.2017, 03:35   #2
DmitrijVDN
Senior Member
 
Регистрация: 09.04.2010
Сообщений: 733
Вес репутации: 1308/48
DmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud of
По умолчанию Re: Прерывание у 16-битных PIC‘ов

из даташита убрали организацию памяти? из папки Tamplate убрали примеры кода ?
DmitrijVDN на форуме   Ответить с цитированием
Старый 15.10.2017, 06:00   #3
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: M.O.
Возраст: 58
Сообщений: 2,125
Вес репутации: 2724/86
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: Прерывание у 16-битных PIC‘ов

Цитата:
Сообщение от LKIJ/ЛДКО Посмотреть сообщение
Привет. Начал програмировать 16-битные PIC‘и. LED‘ом уже поморгал. Тепер немогу запускать прерывание, потому что незнаю аналога строки „org 0x04“, которая исползовалос в исходном коде 8-битных PIC‘ов. Может кто нибудь исползует асемблер и поможет?
В отличии от 8-битных ПИКов, в 16-разрядных описание программной модели и системы команд расположено в "16-bit MCU and DSC
Programmer’s Reference Manual" размером в 500 страниц. Для писателя на АСМе этой платформы сей документ должен стать настольным.
По поводу прерываний.
16-разрядные ПИКи имеют в самом начале программного флеша ТАБЛИЦУ ВЕКТОРОВ прерываний (IVT), а в ряде случаев и альтернативную таблицу (AIVT). В этих таблицах прописываются стартовые адреса обработчиков прерываний по каждому источнику прерываний ОТДЕЛЬНО.
Делается это в самом начале листинга исходника, сразу после определения хедера и конфига:
Код:
.include "p33fj128mc802.inc" 
;--- CONFIG ----------------
	config __FBS,RBS_NO_RAM & BSS_NO_BOOT_CODE & BWRP_WRPROTECT_OFF
	config __FSS,RSS_NO_RAM & SSS_NO_FLASH & SWRP_WRPROTECT_OFF
	config __FGS,GSS_STD & GWRP_OFF
	config __FOSCSEL,IESO_OFF & FNOSC_PRI
	config __FOSC,FCKSM_CSECMD & IOL1WAY_OFF & OSCIOFNC_OFF & POSCMD_XT
	config __FWDT,FWDTEN_OFF
	config __FPOR,ALTI2C_OFF & FPWRT_PWR64
	config __FICD,JTAGEN_OFF & ICS_PGD3
;===========================
.global __reset
.global __AddressError
.global __StackError
.global __MathError
.global __DMACError
.global __DMA0Interrupt
.global __DMA1Interrupt
.global __ADC1Interrupt
.global __INT0Interrupt
.global __IC1Interrupt
.global __OC1Interrupt
.global __OC2Interrupt
.global __OC3Interrupt
.global __T4Interrupt
.global __T5Interrupt
.global __U1RXInterrupt
.global __AltDMA0Interrupt
.global __AltDMA1Interrupt
.global __AltADC1Interrupt
.global __AltINT0Interrupt
.global __AltIC1Interrupt
.global __AltOC1Interrupt
.global __AltOC2Interrupt
.global __AltOC3Interrupt
.global __AltT4Interrupt
.global __AltT5Interrupt
.global __AltU1RXInterrupt
;===========================
Синтаксис имен обработчиков приведен в стандартном скрипте линкера, который Вы подключили к проекту.
Определять достаточно только те вектора, которые используются в проекте.
Сами обработчики могут находится в ЛЮБОМ МЕСТЕ проекта, линкер автоматически пропишет их абсолютный адрес в таблицу векторов прерываний.
Синтаксис обработчика (на примере прерывания от INT0) выглядит так:
Код:
__INT0Interrupt:
	push.s
	bclr		IFS0, # INT0IF
..........................
..........................
	pop.s
	retfie

Последний раз редактировалось Марк; 15.10.2017 в 06:08.
Марк вне форума   Ответить с цитированием
Старый 15.10.2017, 11:31   #4
LKIJ/ЛДКО
Member
 
Аватар для LKIJ/ЛДКО
 
Регистрация: 28.10.2014
Адрес: Lithuania / Литва, Vilnius / Вильнюс
Возраст: 32
Сообщений: 57
Вес репутации: 100/13
LKIJ/ЛДКО will become famous soon enoughLKIJ/ЛДКО will become famous soon enough
По умолчанию Re: Прерывание у 16-битных PIC‘ов

Спасибо, Марк. Был такой пример в одном из мануалов, но мне неработал. Когда смотрю окно Program memory в MPLAB X, то по адресу 0x00 лежит команда „goto 0x204“, как бы от надписи „.global __reset“, о по адресу 0x3C (адрес моего прерывания INT1) просто NOP. Недолжна там после Build project тоже находится команда „goto 0xкудато“ от надписи „.global __INT1Interrupt“? Или надо ориентироватся по колонке Opcode?

Program memory window ->
https://drive.google.com/open?id=0B9...mVBNXlGRExBbGs
https://drive.google.com/open?id=0B9...EJ6Wnh3MkVSM2M
__________________
Кто, если не мы, когда, если не сейчас?
LKIJ/ЛДКО вне форума   Ответить с цитированием
Старый 15.10.2017, 15:24   #5
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: M.O.
Возраст: 58
Сообщений: 2,125
Вес репутации: 2724/86
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: Прерывание у 16-битных PIC‘ов

В таблице векторов находятся только АДРЕСА обработчиков, никаких команд там нет. И находятся они там тогда и только тогда, когда сам обработчик НАПИСАН. А наличие этого самого обработчика определяется ИМЕНЕМ. Это имя должно точно соответствовать линкеру.
В таком случае по адресу 0х3С в IVT соответствующему INT1 должен быть стартовый адрес первой команды обработчика __INT1Interrupt:

ЗЫ. Не стоит размещать картинки на каких то внешних ресурсах. На форуме имеется свой хостинг.
Марк вне форума   Ответить с цитированием
Старый 16.10.2017, 22:38   #6
LKIJ/ЛДКО
Member
 
Аватар для LKIJ/ЛДКО
 
Регистрация: 28.10.2014
Адрес: Lithuania / Литва, Vilnius / Вильнюс
Возраст: 32
Сообщений: 57
Вес репутации: 100/13
LKIJ/ЛДКО will become famous soon enoughLKIJ/ЛДКО will become famous soon enough
По умолчанию Re: Прерывание у 16-битных PIC‘ов

Как неловко, у меня небыл настроен регистр AD1PCFG (аналоговый/цифровой вход). Толко этого и нехватало. Спасибо еще раз.
__________________
Кто, если не мы, когда, если не сейчас?
LKIJ/ЛДКО вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Glcd TIC-149/154 библиотека rolin Общетехнические вопросы 20 23.04.2013 18:54
bootloader pic24 open your soul Продукция MICROCHIP 11 27.02.2013 10:16
Имитатор DS18B20 Filya44 Вопросы начинающих 14 12.03.2012 17:39
Звук через ШИМ KeMik Продукция MICROCHIP 79 02.10.2011 12:36
Помогите с ЖКИ TIC154 Odium Продукция MICROCHIP 48 04.05.2011 19:46


Часовой пояс GMT +3, время: 20:39.


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