Dependencies:   mbed

Committer:
jaume
Date:
Sat Feb 26 18:58:47 2011 +0000
Revision:
0:32b9bb5ffa61

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jaume 0:32b9bb5ffa61 1 /* Proyecto: cmps03 Jaume */
jaume 0:32b9bb5ffa61 2
jaume 0:32b9bb5ffa61 3 #include "mbed.h"
jaume 0:32b9bb5ffa61 4 BusOut mleds(LED1, LED2, LED3, LED4);
jaume 0:32b9bb5ffa61 5 I2C i2c(p9, p10); // sda, scl
jaume 0:32b9bb5ffa61 6 Serial pc(USBTX, USBRX); // tx, rx a 9600
jaume 0:32b9bb5ffa61 7
jaume 0:32b9bb5ffa61 8 const int addr = 0xC0; // define direccion CMPS03
jaume 0:32b9bb5ffa61 9
jaume 0:32b9bb5ffa61 10 int main() {
jaume 0:32b9bb5ffa61 11 char cmd[2];
jaume 0:32b9bb5ffa61 12 char dat[3];
jaume 0:32b9bb5ffa61 13 while (1) {
jaume 0:32b9bb5ffa61 14 cmd[0] = 0x01; // puntero registro 1
jaume 0:32b9bb5ffa61 15
jaume 0:32b9bb5ffa61 16 i2c.write(addr, cmd, 1);
jaume 0:32b9bb5ffa61 17 i2c.read(addr, dat, 3); // lee posicion 1byte y 2bytesHL
jaume 0:32b9bb5ffa61 18 float posicion = 360*dat[0]/255; // posicion max 255 0 359.9
jaume 0:32b9bb5ffa61 19 printf("Posicion con 1 byte %.2f grados\n", posicion);
jaume 0:32b9bb5ffa61 20 int p = dat[0]/31;
jaume 0:32b9bb5ffa61 21 switch (p) {
jaume 0:32b9bb5ffa61 22 case 0:
jaume 0:32b9bb5ffa61 23 printf(" NORTE ");
jaume 0:32b9bb5ffa61 24 break;
jaume 0:32b9bb5ffa61 25 case 1:
jaume 0:32b9bb5ffa61 26 printf(" ESTE");
jaume 0:32b9bb5ffa61 27 break;
jaume 0:32b9bb5ffa61 28 case 2:
jaume 0:32b9bb5ffa61 29 printf(" ESTE");
jaume 0:32b9bb5ffa61 30 break;
jaume 0:32b9bb5ffa61 31 case 3:
jaume 0:32b9bb5ffa61 32 printf(" SUR ");
jaume 0:32b9bb5ffa61 33 break;
jaume 0:32b9bb5ffa61 34 case 4:
jaume 0:32b9bb5ffa61 35 printf(" SUR ");
jaume 0:32b9bb5ffa61 36 break;
jaume 0:32b9bb5ffa61 37 case 5:
jaume 0:32b9bb5ffa61 38 printf("OESTE ");
jaume 0:32b9bb5ffa61 39 break;
jaume 0:32b9bb5ffa61 40 case 6:
jaume 0:32b9bb5ffa61 41 printf("OESTE ");
jaume 0:32b9bb5ffa61 42 break;
jaume 0:32b9bb5ffa61 43 case 7:
jaume 0:32b9bb5ffa61 44 printf(" NORTE ");
jaume 0:32b9bb5ffa61 45 }
jaume 0:32b9bb5ffa61 46 mleds = dat[0]/15;
jaume 0:32b9bb5ffa61 47 printf (" \n");
jaume 0:32b9bb5ffa61 48 posicion =0.1*((dat[1]<<8)+dat[2]); // posicion de 9 a 3599
jaume 0:32b9bb5ffa61 49 printf("Posicion con 2 byte %.2f grados\n", posicion);
jaume 0:32b9bb5ffa61 50 printf("---------------------------------------\n");
jaume 0:32b9bb5ffa61 51 wait(1);
jaume 0:32b9bb5ffa61 52 }
jaume 0:32b9bb5ffa61 53 }