Sida 1 av 2

Få liv i i2c med 16F18346

Postat: 17 augusti 2019, 12:49:51
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);
           
           
      }
}

Re: Få liv i i2c med 16F18346

Postat: 17 augusti 2019, 16:05:55
av TomasL
Har du konfigurerat portarna till I2C, vilket IDE använder du?

Re: Få liv i i2c med 16F18346

Postat: 17 augusti 2019, 19:19:11
av newbadboy
Vad jag kan se är det konfigurerat ja. Mikro C kompilator

Re: Få liv i i2c med 16F18346

Postat: 17 augusti 2019, 20:46:05
av TomasL
Jo, men vilket IDE.

Re: Få liv i i2c med 16F18346

Postat: 17 augusti 2019, 20:49:02
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?

Re: Få liv i i2c med 16F18346

Postat: 17 augusti 2019, 22:18:08
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.

Re: Få liv i i2c med 16F18346

Postat: 17 augusti 2019, 23:25:42
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.

Re: Få liv i i2c med 16F18346

Postat: 17 augusti 2019, 23:34:18
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 ...

Re: Få liv i i2c med 16F18346

Postat: 17 augusti 2019, 23:53:06
av TomasL
Varför inte MPLAB, löser många problem.

Re: Få liv i i2c med 16F18346

Postat: 18 augusti 2019, 00:00:02
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

Re: Få liv i i2c med 16F18346

Postat: 18 augusti 2019, 00:11:23
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/

Re: Få liv i i2c med 16F18346

Postat: 18 augusti 2019, 00:16:59
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

Re: Få liv i i2c med 16F18346

Postat: 21 augusti 2019, 15:08:43
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.

Re: Få liv i i2c med 16F18346

Postat: 21 augusti 2019, 15:27:44
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.

Re: Få liv i i2c med 16F18346

Postat: 22 augusti 2019, 12:58:26
av newbadboy
Gav upp till slut och körde med soft I2c istället. Fick nästan direkt liv i det