Diagonaal berekenen lukt, meerdere outputs nog niet

Dependencies:   mbed FastPWM HIDScope MODSERIAL QEI

Committer:
TimDouma
Date:
Thu Oct 13 12:34:30 2016 +0000
Revision:
2:bf1466ac4e6f
Parent:
1:709a462b8373
Child:
3:ac6f86c0db6e
linker en rechter D waarde gesplitst, ticker werkt alleen nog met een void functie;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
TimDouma 0:46a1642a10c8 1 #include "mbed.h"
TimDouma 0:46a1642a10c8 2 #include "math.h"
TimDouma 0:46a1642a10c8 3 #define SERIAL_BAUD 115200
TimDouma 1:709a462b8373 4 #include "iostream"
TimDouma 0:46a1642a10c8 5
TimDouma 0:46a1642a10c8 6 Serial pc(USBTX,USBRX);
TimDouma 0:46a1642a10c8 7 Ticker TickerAfstandBerekenen;
TimDouma 0:46a1642a10c8 8 // in te voeren x en y waardes (de positie waar we heen willen)
TimDouma 0:46a1642a10c8 9 volatile float x = -30.0;
TimDouma 0:46a1642a10c8 10 volatile float y = 200.0;
TimDouma 0:46a1642a10c8 11
TimDouma 0:46a1642a10c8 12 // waardes
TimDouma 0:46a1642a10c8 13 volatile const float a = 50.0; // de afstand van gekozen assenstelsel tot de armas (assenstelsel precies in het midden)
TimDouma 0:46a1642a10c8 14 volatile const float Bar = 200.0; // lengte van de armen
TimDouma 0:46a1642a10c8 15 //volatile float D1 = 9.0;
TimDouma 0:46a1642a10c8 16
TimDouma 0:46a1642a10c8 17
TimDouma 0:46a1642a10c8 18 // functie om D1 en D2 te berekenen
TimDouma 2:bf1466ac4e6f 19 float AfstandBerekenenLinks ()
TimDouma 0:46a1642a10c8 20 {
TimDouma 0:46a1642a10c8 21 float BV1 = sqrt(pow((a+x),2) + pow(y,2)); // diagonaal (afstand van armas tot locatie) berekenen
TimDouma 0:46a1642a10c8 22 float D1 = pow(BV1,2)/(2*BV1); // berekenen van de afstand oorsprong tot diagonaal
TimDouma 0:46a1642a10c8 23 pc.baud(SERIAL_BAUD);
TimDouma 2:bf1466ac4e6f 24 pc.printf("D1 = %f\r\n", D1);
TimDouma 0:46a1642a10c8 25
TimDouma 1:709a462b8373 26 return D1 ;
TimDouma 0:46a1642a10c8 27 }
TimDouma 0:46a1642a10c8 28
TimDouma 2:bf1466ac4e6f 29 float AfstandBerekenenRechts()
TimDouma 2:bf1466ac4e6f 30 {
TimDouma 2:bf1466ac4e6f 31 float BV2 = sqrt(pow((x-a),2) + pow(y,2));// diagonaal (afstand van armas tot locatie) berekenen
TimDouma 2:bf1466ac4e6f 32 float D2 = pow(BV2,2)/(2*BV2); // berekenen van de afstand oorsprong tot diagonaal
TimDouma 2:bf1466ac4e6f 33 pc.baud(SERIAL_BAUD);
TimDouma 2:bf1466ac4e6f 34 pc.printf("D2 = %f\r\n", D2);
TimDouma 2:bf1466ac4e6f 35
TimDouma 2:bf1466ac4e6f 36 return D2 ;
TimDouma 2:bf1466ac4e6f 37 }
TimDouma 2:bf1466ac4e6f 38 void Blij()
TimDouma 2:bf1466ac4e6f 39 {
TimDouma 2:bf1466ac4e6f 40 pc.baud(SERIAL_BAUD);
TimDouma 2:bf1466ac4e6f 41 pc.printf("het werkt wel met een void functie\r\n");
TimDouma 2:bf1466ac4e6f 42 }
TimDouma 2:bf1466ac4e6f 43
TimDouma 2:bf1466ac4e6f 44
TimDouma 0:46a1642a10c8 45 /*
TimDouma 0:46a1642a10c8 46 void MotorhoekBerekenen (){
TimDouma 0:46a1642a10c8 47 if (x > -a){
TimDouma 0:46a1642a10c8 48 float MotorHoek1 = 180 - atan(y/(x+a)) - acos(
TimDouma 0:46a1642a10c8 49 */
TimDouma 0:46a1642a10c8 50 int main()
TimDouma 0:46a1642a10c8 51 {
TimDouma 2:bf1466ac4e6f 52 float D1 = AfstandBerekenenLinks();
TimDouma 2:bf1466ac4e6f 53 float D2 = AfstandBerekenenRechts();
TimDouma 2:bf1466ac4e6f 54
TimDouma 2:bf1466ac4e6f 55 TickerAfstandBerekenen.attach(&AfstandBerekenenLinks,1);
TimDouma 0:46a1642a10c8 56
TimDouma 0:46a1642a10c8 57 pc.baud(SERIAL_BAUD);
TimDouma 2:bf1466ac4e6f 58 pc.printf("D1 = %f en D2 = %f\r\n", D1, D2);
TimDouma 2:bf1466ac4e6f 59
TimDouma 0:46a1642a10c8 60 while (true) {
TimDouma 0:46a1642a10c8 61
TimDouma 0:46a1642a10c8 62 }
TimDouma 0:46a1642a10c8 63 }