Example of how it might be good to start with the DS1306

Dependencies:   mbed

Committer:
chris
Date:
Wed Mar 10 00:23:03 2010 +0000
Revision:
0:2a57c6fe6af8

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
chris 0:2a57c6fe6af8 1 #include "mbed.h"
chris 0:2a57c6fe6af8 2
chris 0:2a57c6fe6af8 3 DigitalOut myled(LED1);
chris 0:2a57c6fe6af8 4
chris 0:2a57c6fe6af8 5 Serial pc (USBTX,USBRX);
chris 0:2a57c6fe6af8 6
chris 0:2a57c6fe6af8 7 SPI spi (p5,p6,p7);
chris 0:2a57c6fe6af8 8 DigitalOut cs (p8);
chris 0:2a57c6fe6af8 9
chris 0:2a57c6fe6af8 10 int main() {
chris 0:2a57c6fe6af8 11
chris 0:2a57c6fe6af8 12 spi.format(8,2);
chris 0:2a57c6fe6af8 13
chris 0:2a57c6fe6af8 14 // set initial state of CS pin
chris 0:2a57c6fe6af8 15 cs = 0;
chris 0:2a57c6fe6af8 16 wait (0.1);
chris 0:2a57c6fe6af8 17
chris 0:2a57c6fe6af8 18 // start by clearing WP in Control register
chris 0:2a57c6fe6af8 19 // the RAM can not be accessed until WP is clear
chris 0:2a57c6fe6af8 20
chris 0:2a57c6fe6af8 21 cs = 1;
chris 0:2a57c6fe6af8 22 wait (0.1);
chris 0:2a57c6fe6af8 23 spi.write (0x8f); // write to control register
chris 0:2a57c6fe6af8 24 spi.write(0x0); // clear all the bits
chris 0:2a57c6fe6af8 25 cs = 0;
chris 0:2a57c6fe6af8 26
chris 0:2a57c6fe6af8 27 wait (0.1);
chris 0:2a57c6fe6af8 28
chris 0:2a57c6fe6af8 29 // Now write to the RAM
chris 0:2a57c6fe6af8 30 cs = 1;
chris 0:2a57c6fe6af8 31 wait (0.1);
chris 0:2a57c6fe6af8 32 spi.write (0xA0); // write to first RAM location
chris 0:2a57c6fe6af8 33 spi.write(0xa5); // set a pattern
chris 0:2a57c6fe6af8 34 cs = 0;
chris 0:2a57c6fe6af8 35
chris 0:2a57c6fe6af8 36 wait (0.1);
chris 0:2a57c6fe6af8 37
chris 0:2a57c6fe6af8 38 // Now read from RAM
chris 0:2a57c6fe6af8 39 cs = 1;
chris 0:2a57c6fe6af8 40 wait (0.1);
chris 0:2a57c6fe6af8 41 spi.write (0x20); // read from first RAM location
chris 0:2a57c6fe6af8 42 char data = spi.write(0x00);
chris 0:2a57c6fe6af8 43 cs = 0;
chris 0:2a57c6fe6af8 44
chris 0:2a57c6fe6af8 45
chris 0:2a57c6fe6af8 46 printf("Read from location 0x20 and received 0x%X\n",data);
chris 0:2a57c6fe6af8 47
chris 0:2a57c6fe6af8 48
chris 0:2a57c6fe6af8 49 while (1) {}
chris 0:2a57c6fe6af8 50
chris 0:2a57c6fe6af8 51 }