Dspic30F I2C sunt nu de lucru

S

Strallows

Guest
Salut

Mai întâi de toate, aş dori să vă felicit pentru prima-clasa forum pe care le-aţi aici, şi dacă pot să-mi-ar plăcea să iniţieze prezenţa mea cu această întrebare.

Eu încerc să lucreze cu protocolul I2C sunt de la un dspic30F6012a şi aşa mai departe nu pot să-mi realiza încordare.Am citit întreaga secţiune de I2C sunt de la datasheet de dspic30F6021a şi se pare atât de uşor de pus în I2C sunt la locul de muncă, care cred că-mi misterioasa este foarte uşor de la faţa locului de către tine.

Eu voi încerca să dea cât mai multe informaţii de murdară meu proiect.

Am o dspic30F6012a cu un 24MHz de cristal, o PICkit2 programator, şi eu sunt, folosind MPLAB8.20.C30 compilator şi codul de faptul că sunt utilizaţi este de exemplu de la C30 compilatorul Instrumente Limbă Biblioteci document
pag. 192.Sunt folosind logica analizor de la PICkit2 şi am încercat-o cu un domeniu de aplicare, de asemenea, de la lectură SDA şi SCL pe porturile 36 şi 37.

Codul meu este la fel ca aceasta de la C30:
Cod:# 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 () (nesemnate int config2, config1;

nesemnate caracter * wrptr;

nesemnate caracter tx_data [] =

(, "M", "I", "C", "R", "O", "C", "H", "I", "P", "\ 0");

wrptr = tx_data;TRISBbits.TRISB12 = 0; / / config iesire LED
/ / Baude rata este setat pentru 100 kHz

config2 = 218;

/ / Configurare I2C sunt de 7 biţi adresa Mod

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);

în timp ce (1) (_RB12 = 1;IdleI2C ();

StartI2C ();

/ / Aşteaptă Start succesiunea este finalizată

în timp ce (I2CCONbits.SEN);

/ / Scrieţi Slave adresa set de masterat şi de transmitere

MasterWriteI2C (0xE);

/ / Aşteaptă adresa este transmis

în timp ce (I2CSTATbits.TBF);

în timp ce (I2CSTATbits.ACKSTAT);

/ / Transmite şir de date

MasterputsI2C (wrptr);

StopI2C ();

/ / Aşteaptă opri succesiunea este finalizată

în timp ce (I2CCONbits.PEN);

CloseI2C ();)

)

 

Welcome to EDABoard.com

Sponsor

Back
Top