01.05.2010, 13:07
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Осваиваем PIC24
Чтобы заработали порты на PIC24FJ64GA004, надо как-то отключить периферию. Все регистры RPINRх надо настраивать? Их там 20 штук. Как с портами-то работать?
|
|
|
Сказали "Спасибо" Easyrider83
|
|
|
01.05.2010, 13:17
|
|
Супер-модератор
Регистрация: 15.10.2007
Сообщений: 3,539
Сказал спасибо: 172
Сказали Спасибо 1,561 раз(а) в 811 сообщении(ях)
|
Re: Осваиваем PIC24
Сообщение от Easyrider83
|
Чтобы заработали порты на PIC24FJ64GA004, надо как-то отключить периферию. Все регистры RPINRх надо настраивать? Их там 20 штук. Как с портами-то работать?
|
Надо настраивать только те, которые вам нужны. В разделе I/O Ports все подробно расписано. Что не понятно-то?
RPINRx отвечают за входы переферии, к примеру надо вам на RP9 настроить SDI от модуля SPI1: RPINR20bits.SDI1R = 9 и все.
Последний раз редактировалось realid; 01.05.2010 в 13:28.
|
|
|
|
01.05.2010, 13:24
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Осваиваем PIC24
Сообщение от realid
|
Надо настраивать только те, которые вам нужны. В разделе I/O Ports все подробно расписано. Что не понятно-то?
|
Что не понятно, я написал.
|
|
|
|
01.05.2010, 13:29
|
|
Супер-модератор
Регистрация: 15.10.2007
Сообщений: 3,539
Сказал спасибо: 172
Сказали Спасибо 1,561 раз(а) в 811 сообщении(ях)
|
Re: Осваиваем PIC24
Сообщение от Easyrider83
|
Что не понятно, я написал.
|
Я тоже написал что, те которые нужны. Если не нужна периферия, то не трогайте вообще RPINR, по умолчанию все входы периферийных модулей отключены.
Достаточно только настроить TRISx и регистр AD1PCFG (по умолчанию все ANx аналоговые). Если нужен открытый сток, то настраивайте ODCx.
Последний раз редактировалось realid; 01.05.2010 в 13:35.
|
|
|
Эти 2 пользователя(ей) сказали Спасибо realid за это сообщение:
|
|
|
01.05.2010, 14:26
|
|
Гражданин KAZUS.RU
Регистрация: 24.11.2006
Адрес: ДНР
Сообщений: 612
Сказал спасибо: 553
Сказали Спасибо 314 раз(а) в 142 сообщении(ях)
|
Re: Осваиваем PIC24
Сообщение от Easyrider83
|
Их там 20 штук. Как с портами-то работать?
|
Для начала отключить от них АЦП(как было сказано выше):
...
AD1PCFG = 0xFFFF;
...
|
|
|
|
01.05.2010, 17:19
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Осваиваем PIC24
Спасибо, проблема была как раз в AD1PCFG.
|
|
|
|
02.05.2010, 16:17
|
|
Гражданин KAZUS.RU
Регистрация: 28.11.2007
Адрес: харьков
Сообщений: 850
Сказал спасибо: 339
Сказали Спасибо 43 раз(а) в 23 сообщении(ях)
|
Re: Осваиваем PIC24
чтобы включить RTCC надо установить OSCCON.SOSCEN = 1 ?
|
|
|
|
02.05.2010, 17:17
|
|
Заблокирован
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
|
Re: Осваиваем PIC24
Разберётесь?
Код:
|
// PIC24FJ64GA002
#include ‹p24Fxxxx.h›
_CONFIG1 (JTAGEN_OFF & GCP_OFF & GWRP_OFF & ICS_PGx3 & FWDTEN_OFF & WINDIS_OFF);
_CONFIG2 (IESO_OFF & SOSCSEL_SOSC & FNOSC_PRIPLL & FCKSM_CSECME & OSCIOFNC_OFF & IOL1WAY_OFF & I2C1SEL_PRI & POSCMOD_HS);
void main(void)
{
CLKDIV = 0x3000; //DOZE 1:8
//Input
RPINR18 = 0x1F06; // RP6=U1RX
RPINR20 = 0x1F09; // RP9=SDI1
RPINR0 = 0x0D00; // RP13=INT1
//Output
RPOR2 = 0x0300; // RP5 =U1TX
RPOR7 = 0x0807; // RP15=SCK1O, RP14=SDO
//Lock sequence
__builtin_write_OSCCONL(0x42); //SOSC enabled, PPS lock
//Unused peripheral module disabled, use SPI, I2C2, UART1, RTCC, CRC, Timer 1,2,3
PMD1 = 0xC0D1;
PMD2 = 0x1F1E;
PMD3 = 0x0500;
//Configure PORTA, PORTB (IN=13,9,8,7,6,2,3)
AD1PCFG = 0x9E3F;
ODCB = 0x0001;
TRISA = 0x0003;
TRISB = 0x23DC;
//================================================== ========================
//Configure SPI1 module(8 Mhz)
//(8-bit mode, SMP=1, CKE=1, CKP=0, SCK Div=1:1)
//================================================== ========================
SPI1CON1 = 0x033F;
SPI1CON2 = 0;
SPI1STAT = 0x8000;
IFS0bits.SPI1IF = 0;
IFS0bits.SPF1IF = 0;
IEC0bits.SPF1IE = 1;
//---------------------------------------------------------------------
//Configure I2C module 2 (100 kHz)400
I2C2CON = 0;
I2C2BRG = 0x004E; //100
I2C2CONbits.I2CEN = 1;
IFS3bits.MI2C2IF = 0;
//---------------------------------------------------------------------
//Configure UART module(9600 kB/s, 8-bit, no parity, 1 stop bit)
U1BRG = 0x0051;
U1MODE = 0;
U1STA = 0;
U1MODEbits.UARTEN = 1;
U1STAbits.UTXEN = 1;
IFS0bits.U1RXIF = 0;
IFS4bits.U1ERIF = 0;
IEC0bits.U1RXIE = 1;
IEC4bits.U1ERIE = 1;
//---------------------------------------------------------------------
//Configure External Interrupt 1(RB13)
//Interrupt on Falling Edge
INTCON2bits.INT1EP = 1;
IFS1bits.INT1IF = 0;
IEC1bits.INT1IE = 1;
//Configure External Interrupt 0(RB7)
//Interrupt on Falling Edge
INTCON2bits.INT0EP = 1;
IFS0bits.INT0IF = 0;
IEC0bits.INT0IE = 1;
//---------------------------------------------------------------------
//Configure Change notification
CNEN1 = 0x000C;
IFS1bits.CNIF = 0;
IEC1bits.CNIE = 1;
//Configure Timer 1(External clock)
PR1 = 1;
TMR1 = 0;
T1CON = 0x0002;
IFS0bits.T1IF = 0;
IEC0bits.T1IE = 1;
//---------------------------------------------------------------------
//Timer 3 (16-bit)
PR3 = 1;
T3CON = 0x0030;
TMR3 = 0;
IFS0bits.T3IF = 0;
IEC0bits.T3IE = 1;
//---------------------------------------------------------------------
//RTCC
__builtin_write_RTCWEN();
RCFGCALbits.RTCEN = 1;
//---------------------------------------------------------------------
//CRC Generator
CRCCON = 0x0007;
CRCXOR = 0x0031;
CRCWDAT = 0;
IFS4bits.CRCIF = 0;
IEC4bits.CRCIE = 1;
//---------------------------------------------------------------------
PR1 = T1_2msDelay;
T1CONbits.TON = 1;
Sleep();
} |
|
|
|
|
02.05.2010, 17:22
|
|
Супер-модератор
Регистрация: 15.10.2007
Сообщений: 3,539
Сказал спасибо: 172
Сказали Спасибо 1,561 раз(а) в 811 сообщении(ях)
|
Re: Осваиваем PIC24
Сообщение от Dtolok
|
чтобы включить RTCC надо установить OSCCON.SOSCEN = 1 ?
|
Во-первых регистр OSCCON защищенный, для записи в него необходимо провести открывающую процедуру или использовать встроенные функции С30:
Код:
|
__builtin_write_OSCCONL(0x02); |
.
Во-вторых это включит только вторичный такт. генератор (SOSC).
Чтобы включить RTCC см. раздел посвященный этому модулю, конкретно регистр RCFGCAL и бит RTCEN. Но его нельзя установить пока бит RTCWREN = 0 этого регистра, необходимо провести откр. процедуру и установить его в 1, а потом устанавливать RTCEN. Ознакомьтесь с описанием модуля в разделе 29 в FRM.
Код:
|
__builtin_write_RTCWEN();
RCFGCALbits.RTCEN = 1; |
|
|
|
|
02.05.2010, 17:24
|
|
Супер-модератор
Регистрация: 15.10.2007
Сообщений: 3,539
Сказал спасибо: 172
Сказали Спасибо 1,561 раз(а) в 811 сообщении(ях)
|
Re: Осваиваем PIC24
Сообщение от st_1
|
Разберётесь?
Код:
|
// PIC24FJ64GA002
#include ‹p24Fxxxx.h›
_CONFIG1 (JTAGEN_OFF & GCP_OFF & GWRP_OFF & ICS_PGx3 & FWDTEN_OFF & WINDIS_OFF);
_CONFIG2 (IESO_OFF & SOSCSEL_SOSC & FNOSC_PRIPLL & FCKSM_CSECME & OSCIOFNC_OFF & IOL1WAY_OFF & I2C1SEL_PRI & POSCMOD_HS);
void main(void)
{
бла-бла-бла
//---------------------------------------------------------------------
PR1 = T1_2msDelay;
T1CONbits.TON = 1;
Sleep();
} |
|
Хе-хе. Узнаю свой код. Откуда он у вас? Мне просто интересно
Последний раз редактировалось realid; 02.05.2010 в 17:32.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 02:12.
|
|