Chris Elsholz / Mbed 2 deprecated Quadrocopter

Dependencies:   mbed TextLCD

Fork of Quadrocopter by Marco Friedmann

Committer:
MarcoF89
Date:
Wed Aug 02 11:23:54 2017 +0000
Revision:
4:3eaf38e4809f
messen

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MarcoF89 4:3eaf38e4809f 1 #include "mbed.h"
MarcoF89 4:3eaf38e4809f 2 #include "stdio.h"
MarcoF89 4:3eaf38e4809f 3
MarcoF89 4:3eaf38e4809f 4
MarcoF89 4:3eaf38e4809f 5
MarcoF89 4:3eaf38e4809f 6 extern Serial pc(SERIAL_TX, SERIAL_RX);
MarcoF89 4:3eaf38e4809f 7 extern SPI spi(PE_6,PE_5,PE_2); //mosi,miso,sclk
MarcoF89 4:3eaf38e4809f 8 extern DigitalOut ncs(PE_4); //ssel
MarcoF89 4:3eaf38e4809f 9
MarcoF89 4:3eaf38e4809f 10 /**********/
MarcoF89 4:3eaf38e4809f 11 /*Messen Z*/
MarcoF89 4:3eaf38e4809f 12 /**********/
MarcoF89 4:3eaf38e4809f 13
MarcoF89 4:3eaf38e4809f 14 int aktuell_gyro_z()
MarcoF89 4:3eaf38e4809f 15 {
MarcoF89 4:3eaf38e4809f 16 int16_t z_high, z_low, z_high_low;
MarcoF89 4:3eaf38e4809f 17 float messwert[7];
MarcoF89 4:3eaf38e4809f 18 char j, i;
MarcoF89 4:3eaf38e4809f 19
MarcoF89 4:3eaf38e4809f 20 ncs = 0;
MarcoF89 4:3eaf38e4809f 21 spi.write(0xc7); //Z_OUT_H
MarcoF89 4:3eaf38e4809f 22 z_high = spi.write(0x0);
MarcoF89 4:3eaf38e4809f 23 ncs = 1;
MarcoF89 4:3eaf38e4809f 24 wait_us(1);
MarcoF89 4:3eaf38e4809f 25
MarcoF89 4:3eaf38e4809f 26 ncs = 0;
MarcoF89 4:3eaf38e4809f 27 spi.write(0xc8); //Z_OUT_L
MarcoF89 4:3eaf38e4809f 28 z_low = spi.write(0x0);
MarcoF89 4:3eaf38e4809f 29 ncs = 1;
MarcoF89 4:3eaf38e4809f 30 wait_us(1);
MarcoF89 4:3eaf38e4809f 31
MarcoF89 4:3eaf38e4809f 32 z_high_low = z_low | z_high << 8; //Low und High Byte zusammenfügen
MarcoF89 4:3eaf38e4809f 33 return z_high_low;
MarcoF89 4:3eaf38e4809f 34 }
MarcoF89 4:3eaf38e4809f 35
MarcoF89 4:3eaf38e4809f 36
MarcoF89 4:3eaf38e4809f 37 /**********************/
MarcoF89 4:3eaf38e4809f 38 /*Initialisieren**Gyro*/
MarcoF89 4:3eaf38e4809f 39 /**********************/
MarcoF89 4:3eaf38e4809f 40 int initialisierung_gyro()
MarcoF89 4:3eaf38e4809f 41 {
MarcoF89 4:3eaf38e4809f 42 ncs = 0;
MarcoF89 4:3eaf38e4809f 43 spi.write(0x6B); // Register 107
MarcoF89 4:3eaf38e4809f 44 spi.write(0x80); //Reset // Standby off
MarcoF89 4:3eaf38e4809f 45 ncs = 1;
MarcoF89 4:3eaf38e4809f 46 wait_ms(1000);
MarcoF89 4:3eaf38e4809f 47
MarcoF89 4:3eaf38e4809f 48
MarcoF89 4:3eaf38e4809f 49 ncs=0;
MarcoF89 4:3eaf38e4809f 50 spi.write(0x1A); //CONFIG write // DLPF_CFG // Register 26
MarcoF89 4:3eaf38e4809f 51 spi.write(0x06); //Bandwidth: 250Hz// Delay: 0.97ms// Fs: 8kHz
MarcoF89 4:3eaf38e4809f 52 ncs = 1;
MarcoF89 4:3eaf38e4809f 53 wait_ms(1);
MarcoF89 4:3eaf38e4809f 54
MarcoF89 4:3eaf38e4809f 55
MarcoF89 4:3eaf38e4809f 56 ncs=0;
MarcoF89 4:3eaf38e4809f 57 spi.write(0x1B); //Gyro_CONFIG write
MarcoF89 4:3eaf38e4809f 58 spi.write(0x18); //Max. Skalenwert//00=+250dps;08=+500dps;10=+1000dps;18=+2000dps
MarcoF89 4:3eaf38e4809f 59 ncs = 1;
MarcoF89 4:3eaf38e4809f 60 wait_ms(1);
MarcoF89 4:3eaf38e4809f 61
MarcoF89 4:3eaf38e4809f 62 ncs = 0;
MarcoF89 4:3eaf38e4809f 63 spi.write(0x17); // Register 23
MarcoF89 4:3eaf38e4809f 64 spi.write(0x00); // Offset High Byte
MarcoF89 4:3eaf38e4809f 65 ncs = 1;
MarcoF89 4:3eaf38e4809f 66 wait_ms(1);
MarcoF89 4:3eaf38e4809f 67
MarcoF89 4:3eaf38e4809f 68 ncs = 0;
MarcoF89 4:3eaf38e4809f 69 spi.write(0x18); // Register 24
MarcoF89 4:3eaf38e4809f 70 spi.write(0x17); // Offset Low Byte
MarcoF89 4:3eaf38e4809f 71 ncs = 1;
MarcoF89 4:3eaf38e4809f 72 wait_ms(1000);
MarcoF89 4:3eaf38e4809f 73 }
MarcoF89 4:3eaf38e4809f 74