Lukas Bielesch / DEBUG_F042F6P6
Committer:
bieleluk
Date:
Thu May 09 21:37:50 2019 +0000
Revision:
23:2e1f37405365
Parent:
22:e63aa0ea925a
Child:
24:bc7c4e8f3fe0

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bieleluk 12:5e618e97cb24 1 #pragma once
bieleluk 12:5e618e97cb24 2
bieleluk 12:5e618e97cb24 3 // include files
bieleluk 12:5e618e97cb24 4 //------------------------------------------------------------------------------------------------------------------
bieleluk 12:5e618e97cb24 5 #include "mbed.h"
bieleluk 12:5e618e97cb24 6
bieleluk 12:5e618e97cb24 7 // macros
bieleluk 12:5e618e97cb24 8 //------------------------------------------------------------------------------------------------------------------
bieleluk 12:5e618e97cb24 9 #define name(var) #var
bieleluk 12:5e618e97cb24 10
bieleluk 12:5e618e97cb24 11
bieleluk 12:5e618e97cb24 12 // assembly functions
bieleluk 12:5e618e97cb24 13 //------------------------------------------------------------------------------------------------------------------
bieleluk 12:5e618e97cb24 14 extern "C" int check_1_bit(uint32_t gpiox, uint32_t offset, uint32_t pin);
bieleluk 12:5e618e97cb24 15 extern "C" int check_2_bit(uint32_t gpiox, uint32_t offset, uint32_t pin);
bieleluk 12:5e618e97cb24 16 extern "C" int check_alternative_mode(uint32_t gpiox, uint32_t offset, uint32_t pin);
bieleluk 12:5e618e97cb24 17 extern "C" int read_word(uint32_t address, uint32_t offset);
bieleluk 12:5e618e97cb24 18
bieleluk 12:5e618e97cb24 19 // structs
bieleluk 12:5e618e97cb24 20 //------------------------------------------------------------------------------------------------------------------
bieleluk 12:5e618e97cb24 21 typedef struct Pin {
bieleluk 12:5e618e97cb24 22 char port;
bieleluk 12:5e618e97cb24 23 int number;
bieleluk 12:5e618e97cb24 24 } pin_t;
bieleluk 12:5e618e97cb24 25
bieleluk 12:5e618e97cb24 26
bieleluk 12:5e618e97cb24 27 /** Debug_complete class.
bieleluk 15:a9db6d4c2a8f 28 * Class for stepping programme and printing actual position and complete configuration of certain peripherals.
bieleluk 16:e232e16e4f46 29 *
bieleluk 15:a9db6d4c2a8f 30 * Functions printf, putc and getc are also defined in the class.
bieleluk 16:e232e16e4f46 31 *
bieleluk 15:a9db6d4c2a8f 32 * Example program:
bieleluk 12:5e618e97cb24 33 * @code
bieleluk 12:5e618e97cb24 34 * // ----------------------------------------------------------------------------
bieleluk 12:5e618e97cb24 35 * // Author: Lukas Bielesch
bieleluk 12:5e618e97cb24 36 * // Department of Measurement, Czech technical university in Prague, Czech Republic
bieleluk 12:5e618e97cb24 37 * // Date of publication: 15. Apr 2019
bieleluk 12:5e618e97cb24 38 * // ----------------------------------------------------------------------------
bieleluk 14:5a3b0cabbcd4 39 * #include "Debug.h"
bieleluk 12:5e618e97cb24 40 * AnalogIn analog(PA_5);
bieleluk 12:5e618e97cb24 41 * PwmOut pwm(PA_6);
bieleluk 12:5e618e97cb24 42 * DigitalOut out(PA_4);
bieleluk 12:5e618e97cb24 43 * Debug_complete pc(PA_2, PA_3, 115200);
bieleluk 12:5e618e97cb24 44 *
bieleluk 12:5e618e97cb24 45 * int main(){
bieleluk 12:5e618e97cb24 46 * out = 1;
bieleluk 12:5e618e97cb24 47 * pc.breakpoint(__LINE__);
bieleluk 12:5e618e97cb24 48 * pwm = 0.5;
bieleluk 12:5e618e97cb24 49 * pwm.period(1);
bieleluk 12:5e618e97cb24 50 * while(1){
bieleluk 23:2e1f37405365 51 * pwm = analog;
bieleluk 12:5e618e97cb24 52 * pc.breakpoint(__LINE__);
bieleluk 23:2e1f37405365 53 * wait(0.5);
bieleluk 23:2e1f37405365 54 * pwm.period_ms(analog.read_u16()%2000);
bieleluk 12:5e618e97cb24 55 * pc.breakpoint();
bieleluk 12:5e618e97cb24 56 * }
bieleluk 12:5e618e97cb24 57 * }
bieleluk 12:5e618e97cb24 58 * @endcode
bieleluk 12:5e618e97cb24 59 */
bieleluk 12:5e618e97cb24 60 class Debug_complete {
bieleluk 12:5e618e97cb24 61 public:
bieleluk 12:5e618e97cb24 62
bieleluk 12:5e618e97cb24 63 /** Create object of class Debug_complete
bieleluk 12:5e618e97cb24 64 * @param tx_pin TX pin of serial port of the board
bieleluk 12:5e618e97cb24 65 * @param rx_pin RX pin of serial port of the board
bieleluk 12:5e618e97cb24 66 * @param baudrate desired baudrate value of serial port
bieleluk 12:5e618e97cb24 67 */
bieleluk 12:5e618e97cb24 68 Debug_complete(PinName tx_pin, PinName rx_pin, int baudrate = 115200);
bieleluk 12:5e618e97cb24 69
bieleluk 12:5e618e97cb24 70 /** Perform one breakpoint
bieleluk 12:5e618e97cb24 71 * @param line_number line number of the breakpoint
bieleluk 12:5e618e97cb24 72 */
bieleluk 12:5e618e97cb24 73 void breakpoint(int line_number = -1);
bieleluk 12:5e618e97cb24 74
bieleluk 12:5e618e97cb24 75
bieleluk 12:5e618e97cb24 76
bieleluk 12:5e618e97cb24 77 private:
bieleluk 12:5e618e97cb24 78 // objects
bieleluk 12:5e618e97cb24 79 Serial pc; //debug serial device
bieleluk 12:5e618e97cb24 80 // variables
bieleluk 12:5e618e97cb24 81 int breakpoint_count; //stores number of the current breakpoint
bieleluk 12:5e618e97cb24 82 //functions
bieleluk 12:5e618e97cb24 83 // print alternate function of pin
bieleluk 12:5e618e97cb24 84 void print_af_mode( char portx, int pin_number, int af_mode);
bieleluk 19:841a5c532145 85 // show configuration of all pins
bieleluk 19:841a5c532145 86 void show_all_pins_config();
bieleluk 19:841a5c532145 87 // show configuration of one pin
bieleluk 12:5e618e97cb24 88 void show_pin_config(pin_t pin);
bieleluk 19:841a5c532145 89 // print config of all timers
bieleluk 19:841a5c532145 90 void show_all_timers_config();
bieleluk 12:5e618e97cb24 91 // print configuration of timer
bieleluk 12:5e618e97cb24 92 void show_tim_config(int timer);
bieleluk 12:5e618e97cb24 93 // print configuration of pin in pwm output mode
bieleluk 12:5e618e97cb24 94 void show_pwm_config(int timer, int channel);
bieleluk 12:5e618e97cb24 95 // print configuration of pin in analog input mode
bieleluk 12:5e618e97cb24 96 void show_analog_config(int channel);
bieleluk 12:5e618e97cb24 97 // print configuration of adc1 converter
bieleluk 12:5e618e97cb24 98 void show_adc1_config();
bieleluk 12:5e618e97cb24 99 //print configuration of board's clock
bieleluk 12:5e618e97cb24 100 void show_clk_config();
bieleluk 12:5e618e97cb24 101 // clear screen from m line up to n line
bieleluk 19:841a5c532145 102 //void clear_from_n_up_to_m(int m, int n);
bieleluk 12:5e618e97cb24 103 //initialization function
bieleluk 12:5e618e97cb24 104 void init();
bieleluk 19:841a5c532145 105 void line();
bieleluk 12:5e618e97cb24 106 };
bieleluk 12:5e618e97cb24 107