S
Strallows
Guest
Ciao
Prima di tutto vorrei congratularmi con lei per la prima classe, forum che si sono qui, e se posso vorrei iniziare con la mia presenza a questa domanda.
I m cercando di lavorare con il protocollo I2C da un dspic30F6012a e finora non posso realizzare il mio t intenzione.Ho letto l'intera sezione del I2C dalla scheda del dspic30F6021a e sembra così facile per mettere il I2C a lavorare, credo che il mio fascino è molto facile da voi posto.
Io cercherò di dare quante più informazioni del mio progetto disordinato.
Ho un dspic30F6012a con uno 24MHz cristallo, uno PICkit2 programmatore, e io sto usando MPLAB8.20.Compilatore C30 e il codice che sto utilizzando è l'esempio dal compilatore C30 Strumenti per le lingue Biblioteche documento pag 192.Sto usando la logica analizzatore dal PICkit2 e ho provato con un campo di applicazione o-bene, la lettura da SDA e SCL sulle porte 36 e 37.
Il mio codice è proprio come il C30 da questo:
Codice:# define __dsPIC30F6012a__
# include <p30f6012a.h>
# include <string.h>
# include <stdio.h>/ / C30
# include <i2c.h>/ / config
_FOSC (CSW_FSCM_OFF & SA);
_FWDT (WDT_OFF);
_FBORPOR (PBOR_OFF & MCLR_DIS);
_FBS (CODE_PROT_OFF);
_FSS (CODE_PROT_OFF);
_FGS (CODE_PROT_OFF);
_FICD (ICS_NONE);int main () (unsigned int config2, config1;
unsigned char * wrptr;
unsigned char tx_data [] =
( 'M', 'I', 'C', 'R', 'O', 'C', 'H', 'I', 'P', '\ 0');
wrptr = tx_data;TRISBbits.TRISB12 = 0; / / config uscita LED
/ / Baude aliquota è fissata per 100 kHz
config2 = 218;
/ / Configure I2C indirizzo a 7 bit per la modalità
config1 = (I2C_ON & I2C_IDLE_CON & I2C_CLK_HLD
I2C_IPMI_DIS & & I2C_7BIT_ADD
I2C_SLW_DIS & & & I2C_SM_DIS
I2C_GCALL_DIS & I2C_STR_DIS &
I2C_NACK & I2C_ACK_DIS & I2C_RCV_DIS &
I2C_STOP_DIS & I2C_RESTART_DIS
& I2C_START_DIS);
OpenI2C (config1, config2);
while (1) (_RB12 = 1;IdleI2C ();
StartI2C ();
/ / Start Attendere fino sequenza è completata
while (I2CCONbits.SEN);
/ / Write Slave impostare l'indirizzo e il master per la trasmissione
MasterWriteI2C (0xE);
/ / Attendere fino indirizzo è trasmesso
while (I2CSTATbits.TBF);
while (I2CSTATbits.ACKSTAT);
/ / Stringa di trasmissione dei dati
MasterputsI2C (wrptr);
StopI2C ();
/ / Attendere fino a fermare la sequenza è completata
while (I2CCONbits.PEN);
CloseI2C ()
)
Prima di tutto vorrei congratularmi con lei per la prima classe, forum che si sono qui, e se posso vorrei iniziare con la mia presenza a questa domanda.
I m cercando di lavorare con il protocollo I2C da un dspic30F6012a e finora non posso realizzare il mio t intenzione.Ho letto l'intera sezione del I2C dalla scheda del dspic30F6021a e sembra così facile per mettere il I2C a lavorare, credo che il mio fascino è molto facile da voi posto.
Io cercherò di dare quante più informazioni del mio progetto disordinato.
Ho un dspic30F6012a con uno 24MHz cristallo, uno PICkit2 programmatore, e io sto usando MPLAB8.20.Compilatore C30 e il codice che sto utilizzando è l'esempio dal compilatore C30 Strumenti per le lingue Biblioteche documento pag 192.Sto usando la logica analizzatore dal PICkit2 e ho provato con un campo di applicazione o-bene, la lettura da SDA e SCL sulle porte 36 e 37.
Il mio codice è proprio come il C30 da questo:
Codice:# define __dsPIC30F6012a__
# include <p30f6012a.h>
# include <string.h>
# include <stdio.h>/ / C30
# include <i2c.h>/ / config
_FOSC (CSW_FSCM_OFF & SA);
_FWDT (WDT_OFF);
_FBORPOR (PBOR_OFF & MCLR_DIS);
_FBS (CODE_PROT_OFF);
_FSS (CODE_PROT_OFF);
_FGS (CODE_PROT_OFF);
_FICD (ICS_NONE);int main () (unsigned int config2, config1;
unsigned char * wrptr;
unsigned char tx_data [] =
( 'M', 'I', 'C', 'R', 'O', 'C', 'H', 'I', 'P', '\ 0');
wrptr = tx_data;TRISBbits.TRISB12 = 0; / / config uscita LED
/ / Baude aliquota è fissata per 100 kHz
config2 = 218;
/ / Configure I2C indirizzo a 7 bit per la modalità
config1 = (I2C_ON & I2C_IDLE_CON & I2C_CLK_HLD
I2C_IPMI_DIS & & I2C_7BIT_ADD
I2C_SLW_DIS & & & I2C_SM_DIS
I2C_GCALL_DIS & I2C_STR_DIS &
I2C_NACK & I2C_ACK_DIS & I2C_RCV_DIS &
I2C_STOP_DIS & I2C_RESTART_DIS
& I2C_START_DIS);
OpenI2C (config1, config2);
while (1) (_RB12 = 1;IdleI2C ();
StartI2C ();
/ / Start Attendere fino sequenza è completata
while (I2CCONbits.SEN);
/ / Write Slave impostare l'indirizzo e il master per la trasmissione
MasterWriteI2C (0xE);
/ / Attendere fino indirizzo è trasmesso
while (I2CSTATbits.TBF);
while (I2CSTATbits.ACKSTAT);
/ / Stringa di trasmissione dei dati
MasterputsI2C (wrptr);
StopI2C ();
/ / Attendere fino a fermare la sequenza è completata
while (I2CCONbits.PEN);
CloseI2C ()
)