Få liv i i2c med 16F18346

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
newbadboy
Inlägg: 2426
Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:

Få liv i i2c med 16F18346

Inlägg av newbadboy »

Som sgat försöker jag med koden nedan få ut ngt på i2c busen men det är stendött, signalen är hög bara.
Har inte använd denna Pic'en innan men den har en hel del register och annat som jag inte riktigt är van vid. Vad missar jag?

Kod: Markera allt

#include "SSD1306driver_lite.h"  // include SSD1306 OLED display driver source code

#define VFB5 PORTA.F5
#define TEMP PORTA.F4 
#define BTN PORTC.F5
#define OUT PORTC.F4
#define ADC4 PORTC.F6
#define EN4 PORTC.F7
#define ADC3 PORTB.F6
#define EN3 PORTB.F4
#define ADC2 PORTC.F2
#define EN2 PORTC.F1
#define ADC1 PORTC.F0
#define EN1 PORTA.F2


char txt[11];

Init_main(){
       OSCCON1=0B00000001;
       OSCFRQ=0b00000110;         // set internal oscillator to 16MHz
       OSCTUNE=0B00000000;
       
       ANSELA=0b00110000;         // configure all PORTS
       ANSELB=0b01000000;         // i2c2 ligger på port B5 o B7, stänger av adc
       ANSELC=0b01000101;
       TRISA=0b01000000;
       TRISB=0b01000000;           //sätter b5 o b7 som utgång
       TRISC=0b01100101;

       delay_ms(1000);     // wait a second
       I2C2_Init(400000);  // initialize I2C communication with clock frequency of 400kHz
       
       EN1=1;
       EN2=1;
       EN3=1;
       EN4=1;
 }

// main function
void main(){
     Init_main();
     
     while(1){

           I2C2_Start();
           I2C2_Wr(0xD0);// D0 is the address of the slave device
           I2C2_Wr(0x03);// write Register address
           I2C2_Wr(0xA2);// write your data
           I2C2_Stop();
           delay_ms(500);
           
           
      }
}
Senast redigerad av newbadboy 17 augusti 2019, 22:22:18, redigerad totalt 2 gånger.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45270
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Få liv i i2c med 16F18346

Inlägg av TomasL »

Har du konfigurerat portarna till I2C, vilket IDE använder du?
Användarvisningsbild
newbadboy
Inlägg: 2426
Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:

Re: Få liv i i2c med 16F18346

Inlägg av newbadboy »

Vad jag kan se är det konfigurerat ja. Mikro C kompilator
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45270
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Få liv i i2c med 16F18346

Inlägg av TomasL »

Jo, men vilket IDE.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45270
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Få liv i i2c med 16F18346

Inlägg av TomasL »

Jag kan inte se någon konfiguration, kommentera alla rader där du ställer utgångsregistren, med vad du vill uppnå.
Hur är det med PPS?
Användarvisningsbild
newbadboy
Inlägg: 2426
Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:

Re: Få liv i i2c med 16F18346

Inlägg av newbadboy »

förlåt med risk att låta helblåst. Det ska väl eg inte behövas ngn konfigurering manuellt. i2c_Init skall fixa allt detta automatiskt. Har gjort detta på ett projekt innan fast men en annan pic och där vill jag minnas att inte gjorde mer än detta och de funkade.

Vad är ide och pps?

Kommentarer är tillagda.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45270
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Få liv i i2c med 16F18346

Inlägg av TomasL »

IDE är vilket system du använder, till exempel MPLABX eller liknande.
Du får naturligtvis kontrollera att din "init" ställer all pinnar rätt, troligtvis gör den inte det.

"vad är PPS" Läs databladet
Och nej, du har inte lagt till några kommentarer överallt, bättre beskrivningar.
Användarvisningsbild
newbadboy
Inlägg: 2426
Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:

Re: Få liv i i2c med 16F18346

Inlägg av newbadboy »

OK men då är svaret på ide just mikroC. Det är deras grejer helt.

Ska kolla peripheral pin select och återkomma om det ...
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45270
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Få liv i i2c med 16F18346

Inlägg av TomasL »

Varför inte MPLAB, löser många problem.
Användarvisningsbild
newbadboy
Inlägg: 2426
Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:

Re: Få liv i i2c med 16F18346

Inlägg av newbadboy »

Hehe ja du. Ingen aning. Kom in på detta spåret för länge sen och har inte orkat byta typ. Har ingen bra förklaring
Användarvisningsbild
Magnus_K
EF Sponsor
Inlägg: 5854
Blev medlem: 4 januari 2010, 17:53:25
Ort: Skogen mellan Uppsala-Gävle

Re: Få liv i i2c med 16F18346

Inlägg av Magnus_K »

Det har inte blivit något tok med att #include "SSD1306driver_lite.h" // include SSD1306 OLED display driver source code vill använda mjukvaru-I2C (I2C1) och du sätter upp och initierar hårdvaru-I2C (I2C2)?

Har tyvärr inte MicroC installerat på den här datorn och kan kika i hjälpfilerna.
Kan den här länken hjälpa dig på något sätt? -> https://simple-circuit.com/ssd1306-oled-mikroc-library/
Användarvisningsbild
newbadboy
Inlägg: 2426
Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:

Re: Få liv i i2c med 16F18346

Inlägg av newbadboy »

Det är ngt jag har i tankarna ja. Men i nuläget anropar jag inget all från de filerna utan bara försöker spotta ut lite data på pinnarna. Ska prova mer imorgon. Så får jag återkomma
Användarvisningsbild
newbadboy
Inlägg: 2426
Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:

Re: Få liv i i2c med 16F18346

Inlägg av newbadboy »

Asså jag får inte igång det :(... har försökt med PPS_mapping bla men det ger komplierings fel för SC pinnen men inte SDA. Mao är jag ute o cycklar rejält.
hummel
Inlägg: 2267
Blev medlem: 28 november 2009, 10:40:52
Ort: Stockholm

Re: Få liv i i2c med 16F18346

Inlägg av hummel »

Börja med att göra pseudokod vad gäller all initiering av portar osv genom att läsa databladet noga. Implementera sedan koden.
Användarvisningsbild
newbadboy
Inlägg: 2426
Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:

Re: Få liv i i2c med 16F18346

Inlägg av newbadboy »

Gav upp till slut och körde med soft I2c istället. Fick nästan direkt liv i det
Skriv svar