23.11.2011, 11:32
|
#281
|
Гражданин KAZUS.RU
Регистрация: 24.11.2006
Адрес: ДНР
Сообщений: 612
Сказал спасибо: 553
Сказали Спасибо 314 раз(а) в 142 сообщении(ях)
|
Re: Осваиваем PIC24
Понимаю, что это мало кому интересно. Но раз спросил, то отпишусь. Просмотреть DEV_ID ни одним из программаторов не удалось.
Считать рельное значение получилось в программе самого МК(библиотечная команда _memcpy_p2d16):
#include ‹libpic30.h›
unsigned int BUF[20];
***
_memcpy_p2d16(&BUF[0],0xFF0000, 2);
После выполнения в BUF[0] - DEV_ID.
Всё по даташиту. DEV_ID = 4100.
Причина ошибки самодельного программера - изменение адреса регистра TBLPAG. Вот и всё. Исправим.(DS39970C-page 2)
Всем спасибо.
Последний раз редактировалось rubel; 23.11.2011 в 11:37.
|
|
|
|
10.01.2012, 07:19
|
#282
|
Частый гость
Регистрация: 28.12.2010
Адрес: Красноярск
Сообщений: 44
Сказал спасибо: 183
Сказали Спасибо 27 раз(а) в 14 сообщении(ях)
|
Re: Осваиваем PIC24
Добрый день, господа !
Установил себе MPLAB C, столкнулся вот с чем - во - первых не могу найти нигде описания, как устанавливать конфигурационные биты для процессора ( по исходникам посмотрел - какая-то директива _CONFIG2 ), но в подробностях - как ее использовать и какие параметры там можно задавать найти не могу. Ну и во- вторых. Есть ли в MPLAB C функции программной задержки ( типа _delay_us() в WinAVR ) Подскажите, где можно почитать... Заранее спасибо
|
|
|
|
10.01.2012, 10:35
|
#283
|
Прохожий
Регистрация: 26.10.2009
Сообщений: 9
Сказал спасибо: 1
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: Осваиваем PIC24
Сообщение от seeker-rzd
|
....как устанавливать конфигурационные биты для процессора ( по исходникам посмотрел - какая-то директива _CONFIG2 ), но в подробностях - как ее использовать и какие параметры там можно задавать найти не могу.
|
ну так директива config, да
например так
_CONFIG2(IESO_OFF & FNOSC_FRC & FCKSM_CSECME & OSCIOFNC_ON & POSCMOD_NONE)
_CONFIG1(JTAGEN_OFF & GCP_ON & GWRP_OFF & COE_OFF & ICS_PGx1 & FWDTEN_OFF)
где посмотреть - в заголовочном файле p24***.h в каталоге компилятора, например. Заглядываете в файл вашего контроллера - там все описано.
Там же можно найти delay.* с примерами как считать задержки...
|
|
|
|
10.01.2012, 10:39
|
#284
|
Супер-модератор
Регистрация: 15.10.2007
Сообщений: 3,530
Сказал спасибо: 172
Сказали Спасибо 1,560 раз(а) в 810 сообщении(ях)
|
Re: Осваиваем PIC24
Сообщение от seeker-rzd
|
Установил себе MPLAB C, столкнулся вот с чем - во - первых не могу найти нигде описания, как устанавливать конфигурационные биты для процессора ( по исходникам посмотрел - какая-то директива _CONFIG2 ), но в подробностях - как ее использовать и какие параметры там можно задавать найти не могу. Ну и во- вторых. Есть ли в MPLAB C функции программной задержки ( типа _delay_us() в WinAVR ) Подскажите, где можно почитать...
|
Все есть в папке docs компилятора, где установлен. Мануал на библиотеки(16-Bit_Language_Tools_Libraries_51456G.pdf) и на компилятор(MPLAB_C_Compiler_PIC24_dsPIC_UG_51284J. pdf).
|
|
|
|
11.01.2012, 01:30
|
#285
|
Гражданин KAZUS.RU
Регистрация: 24.11.2006
Адрес: ДНР
Сообщений: 612
Сказал спасибо: 553
Сказали Спасибо 314 раз(а) в 142 сообщении(ях)
|
Re: Осваиваем PIC24
Сообщение от seeker-rzd
|
Добрый день, господа !
Установил себе MPLAB C, столкнулся вот с чем - во - первых не могу найти нигде описания, как устанавливать конфигурационные биты для процессора ( по исходникам посмотрел - какая-то директива _CONFIG2 ), но в подробностях - как ее использовать и какие параметры там можно задавать найти не могу. Ну и во- вторых. Есть ли в MPLAB C функции программной задержки ( типа _delay_us() в WinAVR ) Подскажите, где можно почитать... Заранее спасибо
|
С битами конфигурации рано или поздно придётся разбираться основательно... Для некоторых типов процессоров(к, примеру, 24FJ64GA00X) удобно сделать настройку через меню "Configure"--›"Configuration bits..." и просто перенести полученные цифры в свою программу. будет выглядеть кратко и зашифровано, что-то типа:
_CONFIG1(0x3F7F); //биты конфигурации
_CONFIG2(0x799B);
Более удобочитаемый и понятный способ - приведен выше.
библиотечные задержки можно организовать и так:
#define FCY 16000000uL
#define Delay_ms(d) (__delay32 (((d)) * ((FCY) / 1000uL)))
#define Delay_us(d) (__delay32 (((d)) * ((FCY) / 1000000uL)))
где FCY - частота ЯДРА процессора [Гц]
|
|
|
|
14.01.2012, 09:10
|
#286
|
Частый гость
Регистрация: 06.02.2008
Сообщений: 13
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Осваиваем PIC24
а подскажите немного не по теме (не знаю, куда закинуть этот вопрос): делаю первые шаги в изучении PIC-контроллеров. Так вот, столкнулся с вопросом: как прописывать числа в ассемблере?
Вот пример:
с1 equ 0x0C ; присвоили переменной с1 ячейку с адресом 0хС0 - ;это понятно
movlw 0x09 ; запись числа 0х09 - так число указывать?
; или правильно так:
movlw 09 ; т.е. без "0х" - что правильно?
Как указывать числовые контстанты (не адреса регистров)?
Как понял, "0х" используется для указания номера банка (банк № 0). А если константа, то какой тут может быть номер банка?
|
|
|
|
14.01.2012, 11:43
|
#287
|
Супер-модератор
Регистрация: 15.10.2007
Сообщений: 3,530
Сказал спасибо: 172
Сказали Спасибо 1,560 раз(а) в 810 сообщении(ях)
|
Re: Осваиваем PIC24
Сообщение от NikVE
|
с1 equ 0x0C ; присвоили переменной с1 ячейку с адресом 0хС0
Как указывать числовые контстанты (не адреса регистров)?
|
Это и есть константа.
А никакое не присвоение адреса переменной. При встрече в тексте программы этого имени с1, ассемблер подставит при сборке вместо с1 значение 0x0C(12).
c1 equ .12 или c1 equ d'12' тоже самое что и выше, только в десятичном формате
Как использовать это имя решаете вы или как числовую константу, или как адрес переменной. Зависит от операнда инструкции где примените.
Сообщение от NikVE
|
Как понял, "0х" используется для указания номера банка (банк № 0). А если константа, то какой тут может быть номер банка?
|
Нет вы неправильно поняли, 0x всего лишь задает формат числа, то есть шестнадцатиричный.
Мой вам совет. Прочитайте мануал на MPASM.
Последний раз редактировалось realid; 14.01.2012 в 11:46.
|
|
|
|
16.01.2012, 01:01
|
#288
|
Гражданин KAZUS.RU
Регистрация: 06.08.2006
Сообщений: 694
Сказал спасибо: 24
Сказали Спасибо 38 раз(а) в 31 сообщении(ях)
|
Re: Осваиваем PIC24
Привет форумчане. Подскажите пожалуйста. Камень 24фй64жа002. Отправляю в сон SLEEP_IDLE. при этом переключаюсь на setup_oscillator_LPRC. меряю потребляемый ток = 1.05мА. Питание выполнено следующим образом. стоит стабилизатор 3.3В после него стоит диод шотки батарейное питание на контроллер подается после диода. Питание на остальную перефирию берется до диода. При переходе по прерыванию что пропало напряжение я все выводы переключаю на входа.
Да еще поэкспериментировал и вот какая бяка. при переключении типа генератора перед уходом в сон вылазит то что не работает RTC. если не менять тип генератора то RTC продолжает работать во сне.
Цитата:
|
set_pullup(FALSE, PIN_B9);
set_pullup(FALSE, PIN_B10);
set_pullup(FALSE, PIN_B11);
disable_interrupts (INT_RTC);
WIM_ON_OFF=0;
WIM_MOD();
input(PIN_B0);
input(PIN_B1);
input(PIN_B2);
input(PIN_B3);
input(PIN_B7);
input(PIN_B;
input(PIN_B9);
input(PIN_B10);
input(PIN_B11);
input(PIN_B12);
input(PIN_B13);
input(PIN_B14);
input(PIN_B15);
input(PIN_A0);
input(PIN_A1);
input(PIN_A2);
input(PIN_A3);
setup_oscillator2( setup_oscillator_frcdiv, 0 );
VREGS=1;
SLEEP(SLEEP_IDLE);
|
Последний раз редактировалось Gladkih; 16.01.2012 в 01:59.
|
|
|
|
05.02.2012, 06:49
|
#289
|
Почётный гражданин KAZUS.RU
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
|
Re: Осваиваем PIC24
Сообщение от NikVE
|
с1 equ 0x0C
|
Лучше #define С1 0xC
потом проше в Си переползать будет...
__________________
"picavr(ГАВ)мыло.ру" USB_Analyzer, Digital_Storage_Oscilloscope "picavr.kr1.ru" заказы в Китай компонентов/изготовление: плат/ЖКИ/мембраных клавиатур/имп трансформаторов
|
|
|
|
08.05.2012, 23:39
|
#290
|
Временная регистрация
Регистрация: 18.07.2005
Сообщений: 72
Сказал спасибо: 26
Сказали Спасибо 42 раз(а) в 18 сообщении(ях)
|
Re: Осваиваем PIC24
Доброго времени суток господа. Решился и я перебиратся потихоньку на PIC24 И сразу проблемы от незнания.
Пытаюсь реализовать аппаратный SPI на PIC24FJ128GA010. Как его сконфигурировать правильно? Работа мастером. Передача данных слуге и чтение от него Вот моя конфигурация
unsigned int SPICON1Value;
unsigned int SPICON2Value;
unsigned int SPISTATValue;
CloseSPI1();
SPICON1Value = ENABLE_SCK_PIN &
ENABLE_SDO_PIN &
SPI_MODE16_OFF &
SPI_SMP_ON &
SPI_CKE_OFF &
SLAVE_ENABLE_ON &
CLK_POL_ACTIVE_HIGH &
MASTER_ENABLE_ON &
SEC_PRESCAL_2_1 &
PRI_PRESCAL_1_1;
SPICON2Value = FRAME_ENABLE_ON &
FRAME_SYNC_INPUT &
FRAME_POL_ACTIVE_LOW & FRAME_SYNC_EDGE_PRECEDE & FIFO_BUFFER_DISABLE;
SPISTATValue = SPI_ENABLE;
OpenSPI1(SPICON1Value, SPICON2Value, SPISTATValue );
Собственно pin 23 (SS) всегда остается в низком уровне и не пойму почему, симулирую работу в протеусе и смотрю осцилографом - clock и SDO в норме, а вот выбрать девайс не получается. До этого пользавался програмным SPI на PIC18 посему дергал ss в "ручном" режиме. Вот чувствую что с конфигурацией чего то не то...
Спасибо
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 22:19.
|
|