Dspic30F I2C ei toimi

S

Strallows

Guest
Hei

Ensinnäkin haluan kiittää teitä siitä, että ensimmäisen luokan foorumi, että olette täällä, ja jos saan haluaisin aloittaa läsnäolostani tätä kysymystä.

I Yritän työskennellä yhdessä I2C protokolla, joka dspic30F6012a ja siltä osin voin t saavuttaa minun intension.Olen lukenut koko osassa I2C alkaen tekninen ja dspic30F6021a ja näyttää siltä, niin helppo panna I2C työhön, että mielestäni minun salaperäisyydestä on erittäin helppo paikalla sinua.

Aion yrittää antaa niin paljon info minun sekainen hankkeeseen.

Minulla on dspic30F6012a kanssa 24MHz kristalli, joka PICkit2 ohjelmoija, ja olen käyttäen MPLAB8.20.C30 kääntäjään ja koodi, että olen avulla on esimerkki siitä C30 kääntäjään Kieli Työkalut Kirjastot asiakirja pag 192.Olen käyttäen logiikka-analysaattorin alkaen PICkit2 ja olen yrittänyt sen kanssa o-kattavuus kuin hyvin, lukemisen ja SDA ja SCL porttien 36 ja 37.

Oma koodi on vain näin että C30:
Code:# define __dsPIC30F6012a__

# include <p30f6012a.h>

# include <string.h>

# include <stdio.h>/ / C30

# include <i2c.h>/ / config

_FOSC (CSW_FSCM_OFF & HS);

_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 tuotos LED
/ / Baude korko on asetettu 100 kHz

config2 = 218;

/ / Määritä I2C 7 bittinen osoite tilassa

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

/ / Odotahan Käynnistä järjestys on valmistunut

while (I2CCONbits.SEN);

/ / Kirjoita Slave osoite ja asettaa päällikön siirto

MasterWriteI2C (0xE);

/ / Odotahan osoite lähetetään

while (I2CSTATbits.TBF);

while (I2CSTATbits.ACKSTAT);

/ / Transmit string tietoja

MasterputsI2C (wrptr);

StopI2C ();

/ / Odotahan pysäkki järjestys on valmistunut

while (I2CCONbits.PEN);

CloseI2C ();)

)

 

Welcome to EDABoard.com

Sponsor

Back
Top