BERTL library, Kevin Heinrich

Dependents:   BertlPingPong_UEbung3_EB

Committer:
heinrich_kevin
Date:
Mon Apr 04 12:17:24 2016 +0000
Revision:
4:066936e2c097
Parent:
3:4326e2654adb
NEW VERSION

Who changed what in which revision?

UserRevisionLine numberNew contents of line
heinrich_kevin 0:f40ab7184c3f 1 #include <mbed.h>
heinrich_kevin 1:01bc0c86f111 2 //LED-Defines
heinrich_kevin 3:4326e2654adb 3 #define LED_OFF 0x00 // 0b0000 0000, All Leds are off
heinrich_kevin 1:01bc0c86f111 4 #define LED_FL_WHITE 0x01 // 0b0000 0001, BERTL FORWARD Left-Side WHITE-LED
heinrich_kevin 1:01bc0c86f111 5 #define LED_FL_YELLOW 0x02 // 0b0000 0010, BERTL FORWARD Left-Side YELLOW-LED
heinrich_kevin 1:01bc0c86f111 6 #define LED_FR_WHITE 0x04 // 0b0000 0100, BERTL FORWARD Right-Side WHITE-LED
heinrich_kevin 1:01bc0c86f111 7 #define LED_FR_YELLOW 0x08 // 0b0000 1000, BERTL FORWARD Right-Side YELLOW-LED
heinrich_kevin 1:01bc0c86f111 8 #define LED_BL_RED 0x10 // 0b0001 0000, BERTL BACKWARD Left-Side RED-LED
heinrich_kevin 1:01bc0c86f111 9 #define LED_BL_YELLOW 0x20 // 0b0010 0000, BERTL BACKWARD Left-Side YELLOW-LED
heinrich_kevin 1:01bc0c86f111 10 #define LED_BR_RED 0x40 // 0b0100 0000, BERTL BACKWARD Right-Side RED-LED
heinrich_kevin 1:01bc0c86f111 11 #define LED_BR_YELLOW 0x80 // 0b1000 0000, BERTL BACKWARD Right-Side YELLOW-LED
heinrich_kevin 3:4326e2654adb 12 #define LED_ON 0xFF // 0b1111 1111, All Leds are on
heinrich_kevin 0:f40ab7184c3f 13
heinrich_kevin 3:4326e2654adb 14 #define LED_R_YELLOW (LED_FR_YELLOW|LED_BR_YELLOW) // 0b1000 1000, BERTL Right Side, YELLOW-LEDs are on
heinrich_kevin 3:4326e2654adb 15 #define LED_L_YELLOW (LED_FL_YELLOW|LED_BL_YELLOW) // 0b0010 0010, BERTL Left Side, YELLOW-LEDs are on
heinrich_kevin 4:066936e2c097 16 #define LED_YELLOW (LED_L_YELLOW|LED_R_YELLOW) // 0b1010 1010, BERTL, all YELLOW-LEDs are on
heinrich_kevin 3:4326e2654adb 17 #define LED_F_WHITE (LED_FL_WHITE|LED_FR_WHITE) // 0b0000 0101, BERTL Forward, WHITE-LEDs are on
heinrich_kevin 3:4326e2654adb 18 #define LED_B_RED (LED_BL_RED|LED_BR_RED) // 0b0101 0000, BERTL Backward, RED LEDs are on
heinrich_kevin 3:4326e2654adb 19 #define LED_B_ALL (LED_B_RED|LED_BL_YELLOW|LED_BR_YELLOW) // 0b1111 0000, BERTL Backward, All LEDs are on
heinrich_kevin 3:4326e2654adb 20 #define LED_F_ALL (LED_F_WHITE|LED_FL_YELLOW|LED_FR_YELLOW) // 0b0000 1111, BERTL Forward, All LEDs are on
heinrich_kevin 2:d9f2452ba88d 21 //--------------------------------------
heinrich_kevin 2:d9f2452ba88d 22 // Switches:
heinrich_kevin 2:d9f2452ba88d 23 // Switch TA1: DEZ = 1
heinrich_kevin 4:066936e2c097 24 #define TA_FM 0x01 // front middle switch
heinrich_kevin 2:d9f2452ba88d 25 // Switch TA2: DEZ = 2
heinrich_kevin 4:066936e2c097 26 #define TA_BM 0x02 // back middle switch
heinrich_kevin 2:d9f2452ba88d 27 // Switch TA3: DEZ = 4
heinrich_kevin 4:066936e2c097 28 #define TA_FL 0x04 // front left switch
heinrich_kevin 2:d9f2452ba88d 29 // Switch TA4: DEZ = 8
heinrich_kevin 4:066936e2c097 30 #define TA_FR 0x08 // front right switch
heinrich_kevin 2:d9f2452ba88d 31 // Switch TA5: DEZ = 16
heinrich_kevin 4:066936e2c097 32 #define TA_BL 0x10 // back left switch
heinrich_kevin 2:d9f2452ba88d 33 // Switch TA6: DEZ = 32
heinrich_kevin 4:066936e2c097 34 #define TA_BR 0x20 // back right switch
heinrich_kevin 2:d9f2452ba88d 35 // Switch TA7: DEZ = 64
heinrich_kevin 4:066936e2c097 36 #define TA_BF_L 0x40 // bottom front left switch
heinrich_kevin 2:d9f2452ba88d 37 // Switch TA8: DEZ = 128
heinrich_kevin 4:066936e2c097 38 #define TA_BF_R 0x80 // bottom front right switch
heinrich_kevin 4:066936e2c097 39
heinrich_kevin 4:066936e2c097 40 #define TA_F (TA_FL|TA_FM|TA_FR) // All front switches
heinrich_kevin 4:066936e2c097 41 #define TA_B (TA_BL|TA_BM|TA_BR) // All back switches
heinrich_kevin 2:d9f2452ba88d 42 //--------------------------------------
heinrich_kevin 1:01bc0c86f111 43 // Define PC9555 Routines
heinrich_kevin 2:d9f2452ba88d 44 #define PC9555_ADDR_W 0x40 //A2 = A1 = A0 = 0, WRITE-ADRESS
heinrich_kevin 2:d9f2452ba88d 45 #define PC9555_ADDR_R 0x41 // READ-ADRESS, to set the Read-bit
heinrich_kevin 1:01bc0c86f111 46 #define PC9555_FREQUENCY 100000 // fI2C in Hz
heinrich_kevin 1:01bc0c86f111 47 // PC9555 Commands
heinrich_kevin 1:01bc0c86f111 48 #define PC9555_PORT0_IN (0)
heinrich_kevin 1:01bc0c86f111 49 #define PC9555_PORT1_IN (1)
heinrich_kevin 1:01bc0c86f111 50 #define PC9555_PORT0_OUT (2)
heinrich_kevin 1:01bc0c86f111 51 #define PC9555_PORT1_OUT (3)
heinrich_kevin 1:01bc0c86f111 52 #define PC9555_PORT0_INV (4)
heinrich_kevin 1:01bc0c86f111 53 #define PC9555_PORT1_INV (5)
heinrich_kevin 1:01bc0c86f111 54 #define PC9555_PORT0_DIRCONFIG (6)
heinrich_kevin 1:01bc0c86f111 55 #define PC9555_PORT1_DIRCONFIG (7)
heinrich_kevin 2:d9f2452ba88d 56 // Define Motor Routines
heinrich_kevin 2:d9f2452ba88d 57 #define ENGINE_LEFT_BACKWARD P1_0 //IN1, EP10, MG1A => MG1 engine-Pin 2, left_Reverse
heinrich_kevin 2:d9f2452ba88d 58 #define ENGINE_LEFT_FORWARD P1_1 //IN2, EP11, MG1B => MG1 engine-Pin 1, left_Forward
heinrich_kevin 2:d9f2452ba88d 59 #define ENGINE_ENABLE_LEFT P1_15 //EN1, P34, left_ENABLE
heinrich_kevin 2:d9f2452ba88d 60 #define ENGINE_RIGHT_REVERSE P1_4 //IN4, EP13, MG2A => MG2 engine-Pin 2, right_Reverse
heinrich_kevin 2:d9f2452ba88d 61 #define ENGINE_RIGHT_FORWARD P1_3 //IN3, EP14, MG2B => MG2 engine-Pin 1, right_Forward
heinrich_kevin 2:d9f2452ba88d 62 #define ENGINE_ENABLE_RIGHT P0_21 //EN2, P36, right_ENABLE
heinrich_kevin 2:d9f2452ba88d 63 #define MAX_PWM 255 //Define the MAX Value of the PWM
heinrich_kevin 1:01bc0c86f111 64 // Motor Routines
heinrich_kevin 0:f40ab7184c3f 65 void bertl_engine(int left, int right);
heinrich_kevin 1:01bc0c86f111 66 void bertl_engine_test();
heinrich_kevin 1:01bc0c86f111 67
heinrich_kevin 1:01bc0c86f111 68 // PC9555 routines
heinrich_kevin 1:01bc0c86f111 69 void bertl_PC9555_init();
heinrich_kevin 1:01bc0c86f111 70 void bertl_PC9555_leds(unsigned char leds);
heinrich_kevin 1:01bc0c86f111 71 unsigned char bertl_PC9555_switches();