Hi Jungs,
bin gerade dabei ein FM24C02 mit einem Pic24fj64ga004 anzusprechen.
Da meine Hardware noch nicht da ist simmuliere ich mit Proteus.
Nun kommt immer die Fehlermeldung
Master:attempt to initiate simultainious actions i2c2con
Wenn ich das ganze auf I2C1 umschreibe kommt die selbe Meldung nur dann
mit i2c1con
Was mache ich falsch ?
1 |
|
2 |
|
3 | #include <p24FJ64GA004.h>
|
4 | #include "my_delay.h"
|
5 | #include <i2c.h>
|
6 |
|
7 | _CONFIG2(IESO_OFF & SOSCSEL_SOSC & FNOSC_FRC &FCKSM_CSDCMD &I2C1SEL_SEC &POSCMOD_NONE)
|
8 | ;
|
9 |
|
10 | _CONFIG1(JTAGEN_OFF)
|
11 | ;
|
12 |
|
13 | unsigned int config1;
|
14 | unsigned int config2;
|
15 |
|
16 | AD1PCFG |= 0b111111111111; //All Digital Outputs
|
17 | TRISA = 0;//configure all PortA as output
|
18 | TRISB = 0;
|
19 |
|
20 | config2 = 0x39; // Set baud rate to 100KHz
|
21 | config1 = (I2C_ON);
|
22 | OpenI2C2(config1, config2);
|
23 | IdleI2C2(); // Set I2C as idle
|
24 | StartI2C2(); // Request start up sequence
|
25 | IdleI2C2();
|
26 | MasterWriteI2C2(0xA0); // Device 1010, Add 000 , RW 0 )
|
27 | IdleI2C2();
|
28 | AckI2C2();
|
29 | IdleI2C2();
|
30 |
|
31 | MasterWriteI2C2(0x00); // Add low
|
32 | IdleI2C2();
|
33 | AckI2C2();
|
34 | IdleI2C2();
|
35 |
|
36 | MasterWriteI2C2(0xDD); // data
|
37 | IdleI2C2();
|
38 | AckI2C2();
|
39 | IdleI2C2();
|
40 |
|
41 | StopI2C2(); // Initiate stop sequence
|
42 | IdleI2C2();
|
43 | CloseI2C2();
|
44 |
|
45 |
|
46 | while (1)
|
47 | ;
|