PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
newbadboy
Inlägg: 2426 Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:
Inlägg
av newbadboy » 17 augusti 2019, 12:49:51
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.
TomasL
EF Sponsor
Inlägg: 45270 Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:
Inlägg
av TomasL » 17 augusti 2019, 16:05:55
Har du konfigurerat portarna till I2C, vilket IDE använder du?
newbadboy
Inlägg: 2426 Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:
Inlägg
av newbadboy » 17 augusti 2019, 19:19:11
Vad jag kan se är det konfigurerat ja. Mikro C kompilator
TomasL
EF Sponsor
Inlägg: 45270 Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:
Inlägg
av TomasL » 17 augusti 2019, 20:46:05
Jo, men vilket IDE.
TomasL
EF Sponsor
Inlägg: 45270 Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:
Inlägg
av TomasL » 17 augusti 2019, 20:49:02
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?
newbadboy
Inlägg: 2426 Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:
Inlägg
av newbadboy » 17 augusti 2019, 22:18:08
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.
TomasL
EF Sponsor
Inlägg: 45270 Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:
Inlägg
av TomasL » 17 augusti 2019, 23:25:42
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.
newbadboy
Inlägg: 2426 Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:
Inlägg
av newbadboy » 17 augusti 2019, 23:34:18
OK men då är svaret på ide just mikroC. Det är deras grejer helt.
Ska kolla peripheral pin select och återkomma om det ...
TomasL
EF Sponsor
Inlägg: 45270 Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:
Inlägg
av TomasL » 17 augusti 2019, 23:53:06
Varför inte MPLAB, löser många problem.
newbadboy
Inlägg: 2426 Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:
Inlägg
av newbadboy » 18 augusti 2019, 00:00:02
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
Magnus_K
EF Sponsor
Inlägg: 5854 Blev medlem: 4 januari 2010, 17:53:25
Ort: Skogen mellan Uppsala-Gävle
Inlägg
av Magnus_K » 18 augusti 2019, 00:11:23
Det har inte blivit något tok med att
#include "SSD1306driver_lite.h" // include SSD1306 OLED display driver source code vill använda mjukvaru-I
2 C (I2C1) och du sätter upp och initierar hårdvaru-I
2 C (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/
newbadboy
Inlägg: 2426 Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:
Inlägg
av newbadboy » 18 augusti 2019, 00:16:59
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
newbadboy
Inlägg: 2426 Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:
Inlägg
av newbadboy » 21 augusti 2019, 15:08:43
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
Inlägg
av hummel » 21 augusti 2019, 15:27:44
Börja med att göra pseudokod vad gäller all initiering av portar osv genom att läsa databladet noga. Implementera sedan koden.
newbadboy
Inlägg: 2426 Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:
Inlägg
av newbadboy » 22 augusti 2019, 12:58:26
Gav upp till slut och körde med soft I2c istället. Fick nästan direkt liv i det