07.01.2015, 15:54
|
#341
|
Заблокирован
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
|
Re: Осваиваем PIC24
Интересно, вы, может быть с невероятным трудом, но PIC24 от dsPIC33 отличаете?
|
|
|
|
09.01.2015, 21:54
|
#342
|
Прописка
Регистрация: 07.12.2004
Адрес: Урал
Сообщений: 253
Сказал спасибо: 12
Сказали Спасибо 79 раз(а) в 41 сообщении(ях)
|
Re: Осваиваем PIC24
Сообщение от vavan1983
|
ZSG, у вас проект на столько требовательный к железу что без pic24 не обойтись?
|
У процессора dsPIC33FJ64GS606, а именно этот пришлось выбрать, разрешение PWM = 1nS. Именно этот параметр меня интересует. Кроме того есть DSP инструкции и высокая скорость. Но это уже сопутствующие детали. Сделана макетка нужен действующий спец по MPLAB последних версий или MPLABX.
|
|
|
|
12.03.2015, 08:07
|
#343
|
Гражданин KAZUS.RU
Регистрация: 11.07.2010
Адрес: Не Северный Кавказ, а Юг Сибири
Сообщений: 576
Сказал спасибо: 355
Сказали Спасибо 516 раз(а) в 241 сообщении(ях)
|
Re: Осваиваем PIC24
Сообщение от ZSG
|
Сделана макетка нужен действующий спец по MPLAB последних версий или MPLABX
|
Советую MplabX и компиляторы под него XC: для 16 процессоров ( MPLAB® XC16 Compiler v1.24) http://www.microchip.com/pagehandler...tools/mplabxc/
Очень удобно - быстрый код на С получается, если хотите на ассемблере, то в этом компиляторе запросто.
В закладке загрузки ищите компилятор.
Последний раз редактировалось nexsys; 12.03.2015 в 08:40.
|
|
|
|
12.03.2015, 09:04
|
#344
|
Гражданин KAZUS.RU
Регистрация: 11.07.2010
Адрес: Не Северный Кавказ, а Юг Сибири
Сообщений: 576
Сказал спасибо: 355
Сказали Спасибо 516 раз(а) в 241 сообщении(ях)
|
Re: Осваиваем PIC24
ZSG,
Вот заготовка - в конф. битах установите, что вам нужно.
|
|
|
|
14.05.2015, 09:11
|
#345
|
Частый гость
Регистрация: 25.10.2010
Сообщений: 11
Сказал спасибо: 1
Сказали Спасибо 1 раз в 1 сообщении
|
Re: Осваиваем PIC24
Здравствуйте!
В PIC24FJ128GB202 выводы вторичного кварца SOSCI и SOSCO не могу перевести в цифровые I/O. Вроде везде отключил вторичный. По XC16 ver.1.21 их нельзя сделать входами, но выходами вроде можно.
|
|
|
|
14.05.2015, 11:34
|
#346
|
Прописка
Регистрация: 04.09.2009
Сообщений: 167
Сказал спасибо: 1
Сказали Спасибо 35 раз(а) в 25 сообщении(ях)
|
Re: Осваиваем PIC24
Сообщение от Sashaoff2
|
Здравствуйте!
В PIC24FJ128GB202 выводы вторичного кварца SOSCI и SOSCO не могу перевести в цифровые I/O. Вроде везде отключил вторичный. По XC16 ver.1.21 их нельзя сделать входами, но выходами вроде можно.
|
Сам я с такими PIC не работал, но по даташиту вижу, что наоборот, RB4 и RA4 быть только входами, если не используется вторичный осциллятор.
|
|
|
Сказали "Спасибо" shindax
|
|
|
14.05.2015, 20:41
|
#347
|
Частый гость
Регистрация: 25.10.2010
Сообщений: 11
Сказал спасибо: 1
Сказали Спасибо 1 раз в 1 сообщении
|
Re: Осваиваем PIC24
shindax, спасибо за отклик. Ваши слова направили в нужное русло. Проверил на железе - работают как входы, нет внутренних подтягивающих резисторов.
Последний раз редактировалось Sashaoff2; 15.05.2015 в 07:55.
|
|
|
|
10.07.2015, 00:58
|
#348
|
Прохожий
Регистрация: 09.07.2015
Сообщений: 1
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Осваиваем PIC24
Пример инициализации LCD предложенный Petr_Dynin в посте №29 попробовал завести в протеусе 8.0, но как-то вот не работает. Кто-нибудь "пилил" этот примерчик? Как там в порте А раскиданы D0...D7? То что указано в каментах - PMD0-PMD7, никак не связано с портом.
Последний раз редактировалось RTSAM; 10.07.2015 в 01:10.
|
|
|
|
02.09.2015, 17:59
|
#349
|
Временная регистрация
Регистрация: 27.02.2012
Адрес: Николаев
Сообщений: 98
Сказал спасибо: 8
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Re: Осваиваем PIC24
Непонятные глюки с SPI PIC24FJ256GB206. А именно: корректное значение записывается через раз в буфер SPI1BUF.
Код:
|
// Configuration bits: selected in the GUI
// CONFIG3
#pragma config WPDIS = WPDIS // Segment Write Protection Disable-›Segmented code protection is disabled
#pragma config WPFP = WPFP255 // Write Protection Flash Page Segment Boundary-›Highest Page (same as page 170)
#pragma config WUTSEL = LEG // Voltage Regulator Wake-up Time Select-›Default regulator start-up time is used
#pragma config WPEND = WPENDMEM // Segment Write Protection End Page Select-›Protected code segment upper boundary is at the last page of program memory; the lower boundary is the code page specified by WPFP
#pragma config WPCFG = WPCFGDIS // Write Protect Configuration Page Select-›Last page (at the top of program memory) and Flash Configuration Words are not write-protected
#pragma config SOSCSEL = SOSC // Secondary Oscillator Power Mode Select-›Secondary oscillator is in Default (high drive strength) Oscillator mode
#pragma config ALTPMP = ALPMPDIS // Alternate PMP Pin Mapping-›EPMP pins are in default location mode
// CONFIG2
#pragma config IESO = ON // Internal External Switchover-›IESO mode (Two-Speed Start-up) is enabled
#pragma config IOL1WAY = ON // IOLOCK One-Way Set Enable-›The IOLOCK bit (OSCCON‹6›) can be set once, provided the unlock sequence has been completed. Once set, the Peripheral Pin Select registers cannot be written to a second time.
#pragma config FNOSC = FRCDIV // Initial Oscillator Select-›Fast RC Oscillator with Postscaler (FRCDIV)
#pragma config PLL96MHZ = ON // 96MHz PLL Startup Select-›96 MHz PLL is enabled automatically on start-up
#pragma config PLLDIV = DIV12 // 96 MHz PLL Prescaler Select-›Oscillator input is divided by 12 (48 MHz input)
#pragma config POSCMOD = NONE // Primary Oscillator Select-›Primary oscillator is disabled
#pragma config OSCIOFNC = OFF // OSCO Pin Configuration-›OSCO/CLKO/RC15 functions as CLKO (FOSC/2)
#pragma config FCKSM = CSDCMD // Clock Switching and Fail-Safe Clock Monitor-›Clock switching and Fail-Safe Clock Monitor are disabled
// CONFIG1
#pragma config WDTPS = PS32768 // Watchdog Timer Postscaler-›1:32,768
#pragma config ICS = PGx1 // Emulator Pin Placement Select bits-›Emulator functions are shared with PGEC1/PGED1
#pragma config FWPSA = PR128 // WDT Prescaler-›Prescaler ratio of 1:128
#pragma config WINDIS = OFF // Windowed WDT-›Standard Watchdog Timer enabled,(Windowed-mode is disabled)
#pragma config GWRP = OFF // General Segment Write Protect-›Writes to program memory are allowed
#pragma config GCP = OFF // General Segment Code Protect-›Code protection is disabled
#pragma config FWDTEN = ON // Watchdog Timer-›Watchdog Timer is enabled
#pragma config JTAGEN = ON // JTAG Port Enable-›JTAG port is enabled
#include "mcc.h"
void SYSTEM_Initialize(void)
{
OSCILLATOR_Initialize();
PIN_MANAGER_Initialize();
//SPI1_Initialize();
}
void OSCILLATOR_Initialize(void)
{
// DOZEN disabled; DOZE 1:8; CPDIV 1:1; RCDIV FRC/2; ROI disabled;
CLKDIV = 0x3100;
// Set the secondary oscillator
}
/**
void PIN_MANAGER_Initialize(void)
*/
void PIN_MANAGER_Initialize(void)
{
/************************************************** **************************
* Setting the GPIO of PORTB
************************************************** *************************/
LATB = 0x00;
TRISB = 0xFFFF;
/************************************************** **************************
* Setting the GPIO of PORTC
************************************************** *************************/
LATC = 0x00;
TRISC = 0xF000;
/************************************************** **************************
* Setting the GPIO of PORTD
************************************************** *************************/
LATD = 0x00;
TRISD = 0x0FFF;
/************************************************** **************************
* Setting the GPIO of PORTE
************************************************** *************************/
LATE = 0x00;
TRISE = 0xFF;
/************************************************** **************************
* Setting the GPIO of PORTF
************************************************** *************************/
LATF = 0x00;
TRISF = 0x3B;
/************************************************** **************************
* Setting the GPIO of PORTG
************************************************** *************************/
LATG = 0x00;
TRISG = 0x034C;
/************************************************** **************************
* Setting the Analog/Digital Configuration SFR
************************************************** *************************/
ANSB = 0xFFFF;
ANSC = 0x6000;
ANSD = 0xC0;
ANSF = 0x01;
ANSG = 0x00;
/************************************************** **************************
* Set the PPS
************************************************** *************************/
__builtin_write_OSCCONL(OSCCON & 0xbf); // unlock PPS
RPINR20bits.SDI1R = 0x15; // RG6-›SPI1:SDI1
RPOR13bits.RP26R = 0x07; // RG7-›SPI1:SDO1
RPOR9bits.RP19R = 0x08; // RG8-›SPI1:SCK1OUT
RPOR13bits.RP27R = 0x09; // RG9-›SPI1:SS1OUT
__builtin_write_OSCCONL(OSCCON | 0x40); // lock PPS
}
main()
IEC0bits.SPI1IE = 0; // Disable the interrupt
// SPI1CON1 Register Settings
SPI1CON1bits.DISSCK = 0; // Internal serial clock is enabled
SPI1CON1bits.DISSDO = 0; // SDOx pin is controlled by the module
SPI1CON1bits.MODE16 = 1; // Communication is word-wide (16 bits)
SPI1CON1bits.MSTEN = 1; // Master mode enabled
SPI1CON1bits.SMP = 0; // Input data is sampled at the middle of data output time
SPI1CON1bits.CKE = 0; // Serial output data changes on transition from
// Idle clock state to active clock state
SPI1CON1bits.CKP = 0; // Idle state for clock is a low level;
// active state is a high level
SPI1STATbits.SPIEN = 1; // Enable SPI module
{
SPI1BUF=0x000A;
Nop();
Nop();
while(_SPI1IF == 0);//вот тут часто записывается фигня
Nop();
while(1);
} |
|
|
|
|
02.09.2015, 23:27
|
#350
|
Прописка
Регистрация: 14.10.2006
Адрес: Ростов-на-Дону
Сообщений: 113
Сказал спасибо: 14
Сказали Спасибо 32 раз(а) в 21 сообщении(ях)
|
Re: Осваиваем PIC24
Сообщение от ‹VenoM›
|
корректное значение записывается через раз в буфер SPI1BUF
|
Насколько я помню, в регистр SPIxBUF не только записываются данные на передачу, в процессе передачи синхронно осуществляется приём данных с другой стороны. Если эти данные (пусть они и холостые) не считывать, возникает ошибка, которая нарушает работу модуля. Поэтому после фиксации факта окончания передачи (неважно, по прерыванию или поллингом SPI1STATbits.SPIRBF) требуется считать содержимое SPIxBUF. Если результат не интересует, команда может упроститься:
SPI1BUF;
Можно взять полностью работающий драйвер целиком или из MAL (извините, MLA), или из примеров к отладочным платам, или воспользоваться новомодным МСС (MicrochipCodeConfigurator), который вставит в код готовые драйвера.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 00:28.
|
|