Ciao a tutti , oggi mi si è presentato un nuovo problema , volevo usare l'oscillatore DS1077 e non ho mai usato la libreria WIRE , cercando ho trovato questo esempio:
/*
* Ben LeMasurier 2k9'
*
* I2C SDA (data line) = analog pin 4
* I2C SDC (clock line) = analog pin 5
*/
#include <Wire.h>
#define DS1077_ADDRESS 0b1011000
// command sets
#define DIV 0x01 // operating frequency
#define MUX 0x02 // mode of operation
#define BUS 0x0D // bus settings
#define E2 0x3F // EEPROM
void setup() {
Wire.begin(); // We're I2C-Bus Master
// enable DIV, set both prescalars to their
// maximum values (P0/1 = 8)
ds1077_write(MUX, 0b00001111, 0x00);
// set DIV to the maximum value
set_n_divisor(1025);
}
void loop() {
}
void set_n_divisor(int n) {
int msb, lsb;
// DIV (n) = N + 2, lets keep it simple.
n -= 2;
ds1077_write(DIV, highByte(n), lowByte(n));
}
void ds1077_write(int command, int msb, int lsb) {
Wire.beginTransmission(DS1077_ADDRESS);
Wire.send(command);
// MSB then LSB
Wire.send(msb);
Wire.send(lsb);
Wire.endTransmission();
}
Il problema è che cosi non mi funziona , per cercare di capire il motivo ho abilitato la seriale a 9600 e mandavo in stampa i valori di command , msb e lsb
il programma si è messo a funzionare , qualcuno mi puo' spiegare il motivo ?
Ciao IMer