
Semestrálna práca VÝTAH Roman Ciesarík
FreeFall.cpp@10:346a5a5936b9, 2018-01-08 (annotated)
- Committer:
- Ciesarik3
- Date:
- Mon Jan 08 15:00:34 2018 +0000
- Revision:
- 10:346a5a5936b9
- Parent:
- 9:51cf1120b4f4
- Child:
- 11:a9918a8441a9
rozhodenie do dal?ieho suboru z mainu presunute nektore veci do headre cpp;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Ciesarik3 | 9:51cf1120b4f4 | 1 | #include "FreeFall.h" |
Ciesarik3 | 9:51cf1120b4f4 | 2 | #include "headre.h" |
Ciesarik3 | 9:51cf1120b4f4 | 3 | |
Ciesarik3 | 9:51cf1120b4f4 | 4 | #define MMA8451_I2C_ADDRESS (0x1d<<1) |
Ciesarik3 | 9:51cf1120b4f4 | 5 | |
Ciesarik3 | 9:51cf1120b4f4 | 6 | PinName const SDA = PTE25; |
Ciesarik3 | 9:51cf1120b4f4 | 7 | PinName const SCL = PTE24; |
Ciesarik3 | 9:51cf1120b4f4 | 8 | |
Ciesarik3 | 9:51cf1120b4f4 | 9 | DigitalOut freeFall_LED(LED_RED); |
Ciesarik3 | 9:51cf1120b4f4 | 10 | InterruptIn acc(PTA15); |
Ciesarik3 | 9:51cf1120b4f4 | 11 | I2C i2c(SDA, SCL); |
Ciesarik3 | 9:51cf1120b4f4 | 12 | |
Ciesarik3 | 9:51cf1120b4f4 | 13 | bool freeFall_check; |
Ciesarik3 | 9:51cf1120b4f4 | 14 | |
Ciesarik3 | 9:51cf1120b4f4 | 15 | void freeFall() |
Ciesarik3 | 9:51cf1120b4f4 | 16 | { |
Ciesarik3 | 9:51cf1120b4f4 | 17 | uint8_t IntSourceSystem = 0; |
Ciesarik3 | 9:51cf1120b4f4 | 18 | char t[1] = {0x0C}; |
Ciesarik3 | 9:51cf1120b4f4 | 19 | i2c.write(MMA8451_I2C_ADDRESS , t, 1, true); |
Ciesarik3 | 9:51cf1120b4f4 | 20 | i2c.read(MMA8451_I2C_ADDRESS , (char *)&IntSourceSystem, 1); |
Ciesarik3 | 9:51cf1120b4f4 | 21 | |
Ciesarik3 | 9:51cf1120b4f4 | 22 | if ((IntSourceSystem&0x04)==0x04) { |
Ciesarik3 | 9:51cf1120b4f4 | 23 | char DATA [] = {0x01}; |
Ciesarik3 | 9:51cf1120b4f4 | 24 | poslemSpravu(BRZDA, 0xcc, 0x01, DATA ); |
Ciesarik3 | 9:51cf1120b4f4 | 25 | freeFall_LED = 0; |
Ciesarik3 | 9:51cf1120b4f4 | 26 | freeFall_check = 1; |
Ciesarik3 | 9:51cf1120b4f4 | 27 | } |
Ciesarik3 | 9:51cf1120b4f4 | 28 | } |
Ciesarik3 | 9:51cf1120b4f4 | 29 | |
Ciesarik3 | 9:51cf1120b4f4 | 30 | |
Ciesarik3 | 9:51cf1120b4f4 | 31 | void init_freeFall() |
Ciesarik3 | 9:51cf1120b4f4 | 32 | { |
Ciesarik3 | 9:51cf1120b4f4 | 33 | //https://www.nxp.com/docs/en/application-note/AN4070.pdf?&fasp=1&WT_TYPE=Applicatio |
Ciesarik3 | 9:51cf1120b4f4 | 34 | uint8_t data1[2] = {0x2A, 0x20}; // Deaktivacia senzora |
Ciesarik3 | 9:51cf1120b4f4 | 35 | i2c.write(MMA8451_I2C_ADDRESS , (char *)data1, 2); |
Ciesarik3 | 9:51cf1120b4f4 | 36 | uint8_t data2[2] = {0x15, 0xB8}; |
Ciesarik3 | 9:51cf1120b4f4 | 37 | i2c.write(MMA8451_I2C_ADDRESS , (char *)data2, 2); |
Ciesarik3 | 9:51cf1120b4f4 | 38 | uint8_t data3[2] = {0x17, 0x03}; |
Ciesarik3 | 9:51cf1120b4f4 | 39 | i2c.write(MMA8451_I2C_ADDRESS , (char *)data3, 2); |
Ciesarik3 | 9:51cf1120b4f4 | 40 | uint8_t data4[2] = {0x18, 0x06}; |
Ciesarik3 | 9:51cf1120b4f4 | 41 | i2c.write(MMA8451_I2C_ADDRESS , (char *)data4, 2); |
Ciesarik3 | 9:51cf1120b4f4 | 42 | uint8_t data5[2] = {0x2D, 0x04}; |
Ciesarik3 | 9:51cf1120b4f4 | 43 | i2c.write(MMA8451_I2C_ADDRESS , (char *)data5, 2); |
Ciesarik3 | 9:51cf1120b4f4 | 44 | uint8_t data6[2] = {0x2E, 0x00}; |
Ciesarik3 | 9:51cf1120b4f4 | 45 | i2c.write(MMA8451_I2C_ADDRESS , (char *)data6, 2); |
Ciesarik3 | 9:51cf1120b4f4 | 46 | uint8_t data7[2]= {0x2A, 0x09 }; //Frekvencia je nastavena na 400 Hz, aktivacia senzora |
Ciesarik3 | 9:51cf1120b4f4 | 47 | i2c.write(MMA8451_I2C_ADDRESS , (char *)data7, 2); |
Ciesarik3 | 9:51cf1120b4f4 | 48 | |
Ciesarik3 | 9:51cf1120b4f4 | 49 | freeFall_check = false; |
Ciesarik3 | 9:51cf1120b4f4 | 50 | freeFall_LED = 1; |
Ciesarik3 | 9:51cf1120b4f4 | 51 | |
Ciesarik3 | 9:51cf1120b4f4 | 52 | acc.fall(&freeFall); |
Ciesarik3 | 9:51cf1120b4f4 | 53 | } |
Ciesarik3 | 9:51cf1120b4f4 | 54 | |
Ciesarik3 | 9:51cf1120b4f4 | 55 | bool freeFall_status() |
Ciesarik3 | 9:51cf1120b4f4 | 56 | { |
Ciesarik3 | 9:51cf1120b4f4 | 57 | return freeFall_check; |
Ciesarik3 | 9:51cf1120b4f4 | 58 | } |