Custom version for NXP cup car
Fork of FRDM-TFC by
TFC.h@9:0c6d78c56091, 2017-06-01 (annotated)
- Committer:
- Clarkk
- Date:
- Thu Jun 01 13:16:37 2017 +0000
- Revision:
- 9:0c6d78c56091
- Parent:
- 3:23cce037011f
Few changes
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
emh203 | 1:6f37253dab87 | 1 | |
emh203 | 1:6f37253dab87 | 2 | #include "mbed.h" |
emh203 | 1:6f37253dab87 | 3 | |
emh203 | 1:6f37253dab87 | 4 | /** @file test.h*/ |
emh203 | 1:6f37253dab87 | 5 | |
emh203 | 1:6f37253dab87 | 6 | /** |
emh203 | 1:6f37253dab87 | 7 | * @defgroup FRDM-TFC_API FRDM-TFC_API |
emh203 | 1:6f37253dab87 | 8 | * |
emh203 | 1:6f37253dab87 | 9 | * @{ |
emh203 | 1:6f37253dab87 | 10 | */ |
emh203 | 1:6f37253dab87 | 11 | |
emh203 | 1:6f37253dab87 | 12 | |
emh203 | 1:6f37253dab87 | 13 | /** |
emh203 | 1:6f37253dab87 | 14 | |
emh203 | 1:6f37253dab87 | 15 | @addtogroup FRDM-TFC_API |
emh203 | 1:6f37253dab87 | 16 | |
emh203 | 1:6f37253dab87 | 17 | @{ |
emh203 | 1:6f37253dab87 | 18 | |
emh203 | 1:6f37253dab87 | 19 | Resources used by the TFC Library\n |
emh203 | 1:6f37253dab87 | 20 | |
emh203 | 1:6f37253dab87 | 21 | I/O:\n |
emh203 | 1:6f37253dab87 | 22 | -------------------------------------------------------------------------------------------------\n |
emh203 | 1:6f37253dab87 | 23 | |
emh203 | 1:6f37253dab87 | 24 | PTB0 (Servo Channel 0 - TPM1)\n |
emh203 | 1:6f37253dab87 | 25 | PTB1 (Servo Channel 1 - TPM1)\n |
emh203 | 1:6f37253dab87 | 26 | \n |
emh203 | 1:6f37253dab87 | 27 | PTB8 (Battery LED0)\n |
emh203 | 1:6f37253dab87 | 28 | PTB9 (Battery LED1)\n |
emh203 | 1:6f37253dab87 | 29 | PTB10 (Battery LED2)\n |
emh203 | 1:6f37253dab87 | 30 | PTB11 (Battery LED3)\n |
emh203 | 1:6f37253dab87 | 31 | \n |
emh203 | 1:6f37253dab87 | 32 | PTD7 (Camera SI)\n |
emh203 | 1:6f37253dab87 | 33 | PTE0 (Camera CLK)\n |
emh203 | 1:6f37253dab87 | 34 | PTD5 (Camera A0 - ADC_SE6b)\n |
emh203 | 1:6f37253dab87 | 35 | PTD6 (Camera A1 - ADC_SE7b)\n |
emh203 | 1:6f37253dab87 | 36 | \n |
emh203 | 1:6f37253dab87 | 37 | PTE2 DIP Switch 0\n |
emh203 | 1:6f37253dab87 | 38 | PTE3 DIP Switch 1\n |
emh203 | 1:6f37253dab87 | 39 | PTE4 DIP Switch 2\n |
emh203 | 1:6f37253dab87 | 40 | PTE5 DIP Switch 3\n |
emh203 | 1:6f37253dab87 | 41 | |
emh203 | 1:6f37253dab87 | 42 | PTC13 Pushbutton SW1\n |
emh203 | 1:6f37253dab87 | 43 | PTC17 Pushbutton SW2\n |
emh203 | 1:6f37253dab87 | 44 | |
emh203 | 1:6f37253dab87 | 45 | PTC3 H-Bridge A - 1 FTM0_CH3\n |
emh203 | 1:6f37253dab87 | 46 | PTC4 H-Bridge A - 2 FTM0_CH4\n |
emh203 | 1:6f37253dab87 | 47 | PTC1 H-Bridge B - 1 FTM0_CH1\n |
emh203 | 1:6f37253dab87 | 48 | PTC2 H-Bridge B - 2 FTM0_CH2\n |
emh203 | 1:6f37253dab87 | 49 | |
emh203 | 1:6f37253dab87 | 50 | PTE21 H-Bridge Enable\n |
emh203 | 1:6f37253dab87 | 51 | PTE20 H-Bridge Fault\n |
emh203 | 1:6f37253dab87 | 52 | |
emh203 | 1:6f37253dab87 | 53 | PTE23 H-Bridge A - IFB\n |
emh203 | 1:6f37253dab87 | 54 | PTE22 H-Bridge B - IFB\n |
emh203 | 1:6f37253dab87 | 55 | |
emh203 | 1:6f37253dab87 | 56 | } |
emh203 | 1:6f37253dab87 | 57 | */ |
emh203 | 1:6f37253dab87 | 58 | |
emh203 | 1:6f37253dab87 | 59 | |
emh203 | 1:6f37253dab87 | 60 | |
emh203 | 1:6f37253dab87 | 61 | #ifndef _TFC_H |
emh203 | 1:6f37253dab87 | 62 | #define _TFC_H |
emh203 | 1:6f37253dab87 | 63 | |
emh203 | 1:6f37253dab87 | 64 | #define TFC_HBRIDGE_EN_LOC (uint32_t)(1<<21) |
emh203 | 1:6f37253dab87 | 65 | #define TFC_HBRIDGE_FAULT_LOC (uint32_t)(1<<20) |
emh203 | 1:6f37253dab87 | 66 | |
emh203 | 1:6f37253dab87 | 67 | #define TFC_HBRIDGE_ENABLE PTE->PSOR = TFC_HBRIDGE_EN_LOC |
emh203 | 1:6f37253dab87 | 68 | #define TFC_HBRIDGE_DISABLE PTE->PCOR = TFC_HBRIDGE_EN_LOC |
emh203 | 1:6f37253dab87 | 69 | |
emh203 | 1:6f37253dab87 | 70 | #define TFC_DIP_SWITCH0_LOC ((uint32_t)(1<<2)) |
emh203 | 1:6f37253dab87 | 71 | #define TFC_DIP_SWITCH1_LOC ((uint32_t)(1<<3)) |
emh203 | 1:6f37253dab87 | 72 | #define TFC_DIP_SWITCH2_LOC ((uint32_t)(1<<4)) |
emh203 | 1:6f37253dab87 | 73 | #define TFC_DIP_SWITCH3_LOC ((uint32_t)(1<<5)) |
emh203 | 1:6f37253dab87 | 74 | |
emh203 | 1:6f37253dab87 | 75 | #define TFC_PUSH_BUTT0N0_LOC ((uint32_t)(1<<13)) |
emh203 | 1:6f37253dab87 | 76 | #define TFC_PUSH_BUTT0N1_LOC ((uint32_t)(1<<17)) |
emh203 | 1:6f37253dab87 | 77 | |
emh203 | 1:6f37253dab87 | 78 | #define TFC_BAT_LED0_LOC ((uint32_t)(1<<11)) |
emh203 | 1:6f37253dab87 | 79 | #define TFC_BAT_LED1_LOC ((uint32_t)(1<<10)) |
emh203 | 1:6f37253dab87 | 80 | #define TFC_BAT_LED2_LOC ((uint32_t)(1<<9)) |
emh203 | 1:6f37253dab87 | 81 | #define TFC_BAT_LED3_LOC ((uint32_t)(1<<8)) |
emh203 | 1:6f37253dab87 | 82 | |
emh203 | 1:6f37253dab87 | 83 | #define TAOS_CLK_HIGH PTE->PSOR = (1<<1) |
emh203 | 1:6f37253dab87 | 84 | #define TAOS_CLK_LOW PTE->PCOR = (1<<1) |
emh203 | 1:6f37253dab87 | 85 | #define TAOS_SI_HIGH PTD->PSOR = (1<<7) |
emh203 | 1:6f37253dab87 | 86 | #define TAOS_SI_LOW PTD->PCOR = (1<<7) |
emh203 | 1:6f37253dab87 | 87 | |
Clarkk | 9:0c6d78c56091 | 88 | #define ADC_MASK_CAPTURE_POT_0 1 |
Clarkk | 9:0c6d78c56091 | 89 | #define ADC_MASK_CAPTURE_POT_1 2 |
Clarkk | 9:0c6d78c56091 | 90 | #define ADC_MASK_CAPTURE_BATTERY_LEVEL 4 |
Clarkk | 9:0c6d78c56091 | 91 | #define ADC_MASK_CAPTURE_MOTOR_CURRENT 8 |
Clarkk | 9:0c6d78c56091 | 92 | #define ADC_MASK_CAPTURE_LINE_SCAN 16 |
Clarkk | 9:0c6d78c56091 | 93 | #define ADC_MASK_CAPTURE_ALL 31 |
emh203 | 1:6f37253dab87 | 94 | |
emh203 | 1:6f37253dab87 | 95 | /** |
emh203 | 1:6f37253dab87 | 96 | |
emh203 | 1:6f37253dab87 | 97 | @addtogroup FRDM-TFC_API |
emh203 | 1:6f37253dab87 | 98 | @{ |
emh203 | 1:6f37253dab87 | 99 | */ |
emh203 | 1:6f37253dab87 | 100 | |
emh203 | 1:6f37253dab87 | 101 | /**Macro to turn on LED 0 in the battery indicator array*/ |
emh203 | 1:6f37253dab87 | 102 | #define TFC_BAT_LED0_ON PTB->PSOR = TFC_BAT_LED0_LOC |
emh203 | 1:6f37253dab87 | 103 | /** Macro to turn on LED 1 in the battery indicator array*/ |
emh203 | 1:6f37253dab87 | 104 | #define TFC_BAT_LED1_ON PTB->PSOR = TFC_BAT_LED1_LOC |
emh203 | 1:6f37253dab87 | 105 | /** Macro to turn on LED 2 in the battery indicator array*/ |
emh203 | 1:6f37253dab87 | 106 | #define TFC_BAT_LED2_ON PTB->PSOR = TFC_BAT_LED2_LOC |
emh203 | 1:6f37253dab87 | 107 | /** Macro to turn on LED 3 in the battery indicator array*/ |
emh203 | 1:6f37253dab87 | 108 | #define TFC_BAT_LED3_ON PTB->PSOR = TFC_BAT_LED3_LOC |
emh203 | 1:6f37253dab87 | 109 | |
emh203 | 1:6f37253dab87 | 110 | |
emh203 | 1:6f37253dab87 | 111 | /** Macro to turn off LED 0 in the battery indicator array*/ |
emh203 | 1:6f37253dab87 | 112 | #define TFC_BAT_LED0_OFF PTB->PCOR = TFC_BAT_LED0_LOC |
emh203 | 1:6f37253dab87 | 113 | /** Macro to turn off LED 1 in the battery indicator array*/ |
emh203 | 1:6f37253dab87 | 114 | #define TFC_BAT_LED1_OFF PTB->PCOR = TFC_BAT_LED1_LOC |
emh203 | 1:6f37253dab87 | 115 | /** Macro to turn off LED 2 in the battery indicator array*/ |
emh203 | 1:6f37253dab87 | 116 | #define TFC_BAT_LED2_OFF PTB->PCOR = TFC_BAT_LED2_LOC |
emh203 | 1:6f37253dab87 | 117 | /** Macro to turn off LED 3 in the battery indicator array*/ |
emh203 | 1:6f37253dab87 | 118 | #define TFC_BAT_LED3_OFF PTB->PCOR = TFC_BAT_LED3_LOC |
emh203 | 1:6f37253dab87 | 119 | |
emh203 | 1:6f37253dab87 | 120 | |
emh203 | 1:6f37253dab87 | 121 | /** Macro to toggle LED 0 in the battery indicator array*/ |
emh203 | 1:6f37253dab87 | 122 | #define TFC_BAT_LED0_TOGGLE PTB->PTOR = TFC_BAT_LED0_LOC |
emh203 | 1:6f37253dab87 | 123 | /** Macro to toggle LED 1 in the battery indicator array*/ |
emh203 | 1:6f37253dab87 | 124 | #define TFC_BAT_LED1_TOGGLE PTB->PTOR = TFC_BAT_LED1_LOC |
emh203 | 1:6f37253dab87 | 125 | /** Macro to toggle LED 2 in the battery indicator array*/ |
emh203 | 1:6f37253dab87 | 126 | #define TFC_BAT_LED2_TOGGLE PTB->PTOR = TFC_BAT_LED2_LOC |
emh203 | 1:6f37253dab87 | 127 | /** Macro to toggle LED 3 in the battery indicator array*/ |
emh203 | 1:6f37253dab87 | 128 | #define TFC_BAT_LED3_TOGGLE PTB->PTOR = TFC_BAT_LED3_LOC |
emh203 | 1:6f37253dab87 | 129 | |
emh203 | 1:6f37253dab87 | 130 | |
emh203 | 1:6f37253dab87 | 131 | /** Macro to read the state of the pushbutton SW1*/ |
emh203 | 1:6f37253dab87 | 132 | #define TFC_PUSH_BUTTON_0_PRESSED ((PTC->PDIR&TFC_PUSH_BUTT0N0_LOC)>0) |
emh203 | 1:6f37253dab87 | 133 | /** Macro to read the state of the pushbutton SW1*/ |
emh203 | 1:6f37253dab87 | 134 | #define TFC_PUSH_BUTTON_1_PRESSED ((PTC->PDIR&TFC_PUSH_BUTT0N1_LOC)>0) |
emh203 | 1:6f37253dab87 | 135 | |
emh203 | 1:6f37253dab87 | 136 | /** Macro to read the state of switch 0 in the 4 position DIP switch*/ |
emh203 | 1:6f37253dab87 | 137 | #define TFC_DIP_SWITCH_0_ON ((TFC_GetDIP_Switch()&0x01)>0) |
emh203 | 1:6f37253dab87 | 138 | |
emh203 | 1:6f37253dab87 | 139 | /** Macro to read the state of switch 1 in the 4 position DIP switch*/ |
emh203 | 1:6f37253dab87 | 140 | #define TFC_DIP_SWITCH_1_ON ((TFC_GetDIP_Switch()&0x02)>0) |
emh203 | 1:6f37253dab87 | 141 | |
emh203 | 1:6f37253dab87 | 142 | /** Macro to read the state of switch 2 in the 4 position DIP switch*/ |
emh203 | 1:6f37253dab87 | 143 | #define TFC_DIP_SWITCH_2_ON ((TFC_GetDIP_Switch()&0x04)>0) |
emh203 | 1:6f37253dab87 | 144 | |
emh203 | 1:6f37253dab87 | 145 | /** Macro to read the state of switch 3 in the 4 position DIP switch*/ |
emh203 | 1:6f37253dab87 | 146 | #define TFC_DIP_SWITCH_3_ON ((TFC_GetDIP_Switch()&0x08)>0) |
emh203 | 1:6f37253dab87 | 147 | |
emh203 | 1:6f37253dab87 | 148 | |
emh203 | 1:6f37253dab87 | 149 | /** Initialized the TFC API. Call before using any other API calls. |
emh203 | 1:6f37253dab87 | 150 | * |
emh203 | 1:6f37253dab87 | 151 | */ |
emh203 | 1:6f37253dab87 | 152 | void TFC_Init(); |
emh203 | 1:6f37253dab87 | 153 | |
emh203 | 1:6f37253dab87 | 154 | /** ServoTicker will increment once every servo cycle. |
emh203 | 1:6f37253dab87 | 155 | * It can be used to synchronize events to the start of a servo cycle. ServoTicker is a volatile uint32_t and is updated in the TPM1 overlflow interrupt. This means you will see ServoTicker increment on the rising edge of the servo PWM signal |
emh203 | 1:6f37253dab87 | 156 | * |
emh203 | 1:6f37253dab87 | 157 | */ |
emh203 | 1:6f37253dab87 | 158 | extern volatile uint32_t TFC_ServoTicker; |
emh203 | 1:6f37253dab87 | 159 | |
emh203 | 1:6f37253dab87 | 160 | |
emh203 | 1:6f37253dab87 | 161 | /** Gets the state of the 4-positiomn DIP switch on the FRDM-TFC |
emh203 | 1:6f37253dab87 | 162 | * |
emh203 | 1:6f37253dab87 | 163 | * @returns The lower 4-bits of the return value map to the 4-bits of the DIP switch |
emh203 | 1:6f37253dab87 | 164 | */ |
emh203 | 1:6f37253dab87 | 165 | uint8_t TFC_GetDIP_Switch(); |
emh203 | 1:6f37253dab87 | 166 | |
emh203 | 1:6f37253dab87 | 167 | |
emh203 | 1:6f37253dab87 | 168 | /** Reads the state of the pushbuttons (SW1, SW2) on the FRDM-TFC |
emh203 | 1:6f37253dab87 | 169 | * @param Index Selects the pushbutton (0 for SW1 and 1 for SW2) |
emh203 | 1:6f37253dab87 | 170 | * @returns A non-zero value if the button is pushed |
emh203 | 1:6f37253dab87 | 171 | */ |
emh203 | 1:6f37253dab87 | 172 | uint8_t TFC_ReadPushButton(uint8_t Index); |
emh203 | 1:6f37253dab87 | 173 | |
emh203 | 1:6f37253dab87 | 174 | |
emh203 | 1:6f37253dab87 | 175 | /** Controls the 4 battery level LEDs on the FRDM-TFC boards. |
emh203 | 1:6f37253dab87 | 176 | * |
emh203 | 1:6f37253dab87 | 177 | * @param Value The lower 4-bits of the parameter maps to the 4 LEDs. |
emh203 | 1:6f37253dab87 | 178 | */ |
emh203 | 1:6f37253dab87 | 179 | void TFC_SetBatteryLED(uint8_t Value); |
emh203 | 1:6f37253dab87 | 180 | |
emh203 | 1:6f37253dab87 | 181 | |
emh203 | 1:6f37253dab87 | 182 | /** Sets the servo channels |
emh203 | 1:6f37253dab87 | 183 | * |
emh203 | 1:6f37253dab87 | 184 | * @param ServoNumber Which servo channel on the FRDM-TFC to use (0 or 1). 0 is the default channel for steering |
emh203 | 1:6f37253dab87 | 185 | * @param Position Angle setting for servo in a normalized (-1.0 to 1.0) form. The range of the servo can be changed with the InitServos function. |
emh203 | 1:6f37253dab87 | 186 | * This is called in the TFC constructor with some useful default values--> 20mSec period, 0.5mS min and 2.0mSec max. you may need to adjust these for your own particular setup. |
emh203 | 1:6f37253dab87 | 187 | */ |
emh203 | 1:6f37253dab87 | 188 | void TFC_SetServo(uint8_t ServoNumber, float Position); |
emh203 | 1:6f37253dab87 | 189 | |
emh203 | 1:6f37253dab87 | 190 | /** Initializes TPM for the servoes. It also sets the max and min ranges |
emh203 | 1:6f37253dab87 | 191 | * |
emh203 | 1:6f37253dab87 | 192 | * @param ServoPulseWidthMin Minimum pulse width (in seconds) for the servo. The value of -1.0 in SetServo is mapped to this pulse width. I.E. .001 |
emh203 | 1:6f37253dab87 | 193 | * @param ServoPulseWidthMax Maximum pulse width (in seconds) for the servo. The value of +1.0 in SetServo is mapped to this pulse width. I.E. .002 |
emh203 | 1:6f37253dab87 | 194 | * @param ServoPeriod Period of the servo pulses (in seconds). I.e. .020 for 20mSec |
emh203 | 1:6f37253dab87 | 195 | */ |
emh203 | 1:6f37253dab87 | 196 | |
emh203 | 1:6f37253dab87 | 197 | void TFC_InitServos(float ServoPulseWidthMin, float ServoPulseWidthMax, float ServoPeriod); |
emh203 | 1:6f37253dab87 | 198 | |
emh203 | 1:6f37253dab87 | 199 | |
emh203 | 1:6f37253dab87 | 200 | /** Initialized TPM0 to be used for generating PWM signals for the the dual drive motors. This method is called in the TFC constructor with a default value of 4000.0Hz |
emh203 | 1:6f37253dab87 | 201 | * |
emh203 | 1:6f37253dab87 | 202 | * @param SwitchingFrequency PWM Switching Frequency in floating point format. Pick something between 1000 and 9000. Maybe you can modulate it and make a tune. |
emh203 | 1:6f37253dab87 | 203 | */ |
emh203 | 1:6f37253dab87 | 204 | void TFC_InitMotorPWM(float SwitchingFrequency); |
emh203 | 1:6f37253dab87 | 205 | |
emh203 | 1:6f37253dab87 | 206 | /** Sets the PWM value for each motor. |
emh203 | 1:6f37253dab87 | 207 | * |
emh203 | 1:6f37253dab87 | 208 | * @param MotorA The PWM value for HBridgeA. The value is normalized to the floating point range of -1.0 to +1.0. -1.0 is 0% (Full Reverse on the H-Bridge) and 1.0 is 100% (Full Forward on the H-Bridge) |
emh203 | 1:6f37253dab87 | 209 | * @param MotorB The PWM value for HBridgeB. The value is normalized to the floating point range of -1.0 to +1.0. -1.0 is 0% (Full Reverse on the H-Bridge) and 1.0 is 100% (Full Forward on the H-Bridge) |
emh203 | 1:6f37253dab87 | 210 | */ |
emh203 | 1:6f37253dab87 | 211 | void TFC_SetMotorPWM(float MotorA ,float MotorB); |
emh203 | 1:6f37253dab87 | 212 | |
emh203 | 1:6f37253dab87 | 213 | /** Reads the potentiometers |
emh203 | 1:6f37253dab87 | 214 | * |
emh203 | 1:6f37253dab87 | 215 | * @param Channel Selects which pot is read. I.e. 0 for POT0 or 1 for POT1 |
emh203 | 1:6f37253dab87 | 216 | * @returns Pot value from -1.0 to 1.0 |
emh203 | 1:6f37253dab87 | 217 | */ |
emh203 | 1:6f37253dab87 | 218 | float TFC_ReadPot(uint8_t Channel); |
emh203 | 1:6f37253dab87 | 219 | |
Clarkk | 9:0c6d78c56091 | 220 | |
Clarkk | 9:0c6d78c56091 | 221 | uint16_t TFC_ReadBatteryVoltageRaw(); |
Clarkk | 9:0c6d78c56091 | 222 | uint16_t TFC_ReadMotACurrentRaw(); |
Clarkk | 9:0c6d78c56091 | 223 | uint16_t TFC_ReadMotBCurrentRaw(); |
Clarkk | 9:0c6d78c56091 | 224 | |
Clarkk | 9:0c6d78c56091 | 225 | |
emh203 | 1:6f37253dab87 | 226 | /** Gets the current battery voltage |
emh203 | 1:6f37253dab87 | 227 | * |
emh203 | 1:6f37253dab87 | 228 | * @returns Battery voltage in floating point form. |
emh203 | 1:6f37253dab87 | 229 | */ |
emh203 | 1:6f37253dab87 | 230 | float TFC_ReadBatteryVoltage(); |
emh203 | 1:6f37253dab87 | 231 | |
Clarkk | 9:0c6d78c56091 | 232 | /** Gets motor A current |
Clarkk | 9:0c6d78c56091 | 233 | * |
Clarkk | 9:0c6d78c56091 | 234 | * @returns Current value in amps in floating point form. |
Clarkk | 9:0c6d78c56091 | 235 | */ |
Clarkk | 9:0c6d78c56091 | 236 | float TFC_ReadMotACurrent(); |
emh203 | 1:6f37253dab87 | 237 | |
Clarkk | 9:0c6d78c56091 | 238 | /** Gets motor B current |
Clarkk | 9:0c6d78c56091 | 239 | * |
Clarkk | 9:0c6d78c56091 | 240 | * @returns Current value in amps in floating point form. |
Clarkk | 9:0c6d78c56091 | 241 | */ |
Clarkk | 9:0c6d78c56091 | 242 | float TFC_ReadMotBCurrent(); |
emh203 | 3:23cce037011f | 243 | |
emh203 | 3:23cce037011f | 244 | /** Sets the Battery level indiciate |
emh203 | 3:23cce037011f | 245 | * |
emh203 | 3:23cce037011f | 246 | * @param BattLevel A number betwween 0 and 4. This will light the bar from left to right with the specifified number of segments. |
emh203 | 3:23cce037011f | 247 | * |
emh203 | 3:23cce037011f | 248 | */ |
emh203 | 3:23cce037011f | 249 | void TFC_SetBatteryLED_Level(uint8_t BattLevel); |
emh203 | 3:23cce037011f | 250 | |
Clarkk | 9:0c6d78c56091 | 251 | /** Stop camera exposure |
Clarkk | 9:0c6d78c56091 | 252 | * |
Clarkk | 9:0c6d78c56091 | 253 | */ |
Clarkk | 9:0c6d78c56091 | 254 | void TFC_StopCameraExposure(); |
Clarkk | 9:0c6d78c56091 | 255 | |
Clarkk | 9:0c6d78c56091 | 256 | /** Start ADC convertion of all analog inputs |
Clarkk | 9:0c6d78c56091 | 257 | * |
Clarkk | 9:0c6d78c56091 | 258 | * @param mask The mask of convertions to perform |
Clarkk | 9:0c6d78c56091 | 259 | */ |
Clarkk | 9:0c6d78c56091 | 260 | void TFC_StartDataAcquisition(uint8_t mask); |
emh203 | 3:23cce037011f | 261 | |
emh203 | 1:6f37253dab87 | 262 | /** Pointer to two channels of line scan camera data. Each channel is 128 points of uint8_t's. Note that the underlying implementation is ping-pong buffer These pointers will point to the |
emh203 | 1:6f37253dab87 | 263 | *inactive buffer. |
emh203 | 1:6f37253dab87 | 264 | * |
emh203 | 1:6f37253dab87 | 265 | */ |
emh203 | 1:6f37253dab87 | 266 | |
emh203 | 3:23cce037011f | 267 | extern volatile uint16_t * TFC_LineScanImage0; |
emh203 | 3:23cce037011f | 268 | extern volatile uint16_t * TFC_LineScanImage1; |
emh203 | 3:23cce037011f | 269 | |
emh203 | 1:6f37253dab87 | 270 | |
emh203 | 1:6f37253dab87 | 271 | /** This flag will increment when a new frame is ready. Check for a non zero value (and reset to zero!) when you want to read the camera(s) |
emh203 | 1:6f37253dab87 | 272 | * |
emh203 | 1:6f37253dab87 | 273 | */ |
emh203 | 1:6f37253dab87 | 274 | |
emh203 | 3:23cce037011f | 275 | extern volatile uint8_t TFC_LineScanImageReady; |
Clarkk | 9:0c6d78c56091 | 276 | extern volatile uint8_t TFC_Pot0Ready; |
Clarkk | 9:0c6d78c56091 | 277 | extern volatile uint8_t TFC_Pot1Ready; |
Clarkk | 9:0c6d78c56091 | 278 | extern volatile uint8_t TFC_BatteryVoltageReady; |
Clarkk | 9:0c6d78c56091 | 279 | extern volatile uint8_t TFC_MotorCurrentReady; |
emh203 | 3:23cce037011f | 280 | |
Clarkk | 9:0c6d78c56091 | 281 | extern FunctionPointer TFC_ConvertionReadyCallback; |
emh203 | 1:6f37253dab87 | 282 | |
emh203 | 1:6f37253dab87 | 283 | /** @} */ |
emh203 | 1:6f37253dab87 | 284 | |
emh203 | 1:6f37253dab87 | 285 | |
emh203 | 1:6f37253dab87 | 286 | #endif |