CFSR; if(exception_code == CFSR_UFSR_DIVIDE_BY_ZERO) printf("Divide By Zero Error \n\r"); }"> CFSR; if(exception_code == CFSR_UFSR_DIVIDE_BY_ZERO) printf("Divide By Zero Error \n\r"); }"> CFSR; if(exception_code == CFSR_UFSR_DIVIDE_BY_ZERO) printf("Divide By Zero Error \n\r"); }">




#define CFSR_UFSR_DIVIDE_BY_ZERO (1U<<25)
uint32_t exception_code;
extern uint16_t adc_raw_data[NUM_OF_CHANNELS];
uint32_t pressure_sensor, final_value;
int main(void)
{
pressure_sensor = 0;
uart2_tx_init();
adc_dma_init();
while(1)
{
printf("Value from sensor one : %d \\n\\r", adc_raw_data[0]);
printf("Value from sensor two : %d \\n\\r", adc_raw_data[1]);
for(int i = 0; i < 90000; i++) {}
pressure_sensor = adc_raw_data[0];
final_value = 10000 / pressure_sensor;
}
}
void HardFault_Handler(void)
{
exception_code = SCB->CFSR;
if(exception_code == CFSR_UFSR_DIVIDE_BY_ZERO)
printf("Divide By Zero Error \\n\\r");
}
#define PIN0 (1U<<0)
volatile uint32_t pwm_sig;
int main(void)
{
/*Init pwm at pa0 and pa1*/
tim2_pa0_pa1_pwm_init();
/*Systick Init*/
systick_5kHz_interrupt();
tim2_pa0_pa1_pwm_set_dutycycle(1, 30);
while(1)
{
}
}
static void systick_callback(void)
{
pwm_sig = (uint32_t)(GPIOA->IDR & PIN0);
}
void SysTick_Handler(void)
{
systick_callback();
}



or

