From 3b0fe97f46b98c96b876d006a2901df9cba3e15d Mon Sep 17 00:00:00 2001 From: Michael Wiebusch Date: Wed, 8 Jan 2014 11:20:26 +0100 Subject: [PATCH] c project management, cleaning up --- firmware/src/CB_functions.c | 37 ++++++++++++++----------------------- firmware/src/CB_functions.h | 2 +- firmware/src/dac.c | 17 +++++++++++++++++ firmware/src/dac.h | 3 ++- 4 files changed, 34 insertions(+), 25 deletions(-) diff --git a/firmware/src/CB_functions.c b/firmware/src/CB_functions.c index 0569149..90b71b6 100644 --- a/firmware/src/CB_functions.c +++ b/firmware/src/CB_functions.c @@ -11,24 +11,13 @@ #include "stm32f10x_conf.h" #include "misc_utils.h" #include "spi1.h" +#include "dac.h" extern uint16_t spiDataBuffer[]; uint16_t uC_regs[UC_NO_REGS]; -void uart_word_to_dac(uint16_t word){ - while (USART_GetFlagStatus(USART3, USART_FLAG_TXE) == RESET); - CB_GPIO_Out_Lo(DAC_CS); - - USART_SendData(USART3, reverse_8bit(0x30 | ((word>>12)&0xF))); - while (USART_GetFlagStatus(USART3, USART_FLAG_TXE) == RESET); - USART_SendData(USART3, reverse_8bit((word>>4)&0xFF)); - while (USART_GetFlagStatus(USART3, USART_FLAG_TXE) == RESET); - USART_SendData(USART3, reverse_8bit((word<<4)&0xFF)); - delay_ms(1); - while (USART_GetFlagStatus(USART3, USART_FLAG_TXE) == RESET); - CB_GPIO_Out_Hi(DAC_CS); -} + void uart_byte_to_fpga(uint8_t byte){ while (USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET); @@ -66,7 +55,10 @@ void report_all_registers(void) { } - +inline void adc_conv0_pulse(void){ + ADC_CONV0_GPIO_PORT->BSRR = ADC_CONV0_PIN; // make a ... + ADC_CONV0_GPIO_PORT->BRR = ADC_CONV0_PIN; // ... short activation pulse +} void decode_register(uint8_t addr) { @@ -91,11 +83,11 @@ void decode_register(uint8_t addr) { CB_GPIO_Out(JTAGEN0,*thisRegister & 1<<0); break; case 0x2: //DAC CurLimA 0 - uart_word_to_dac(((*thisRegister&0xFFFF)>>4) | (0<<12)); + usart3_word_to_dac(((*thisRegister&0xFFFF)>>4) | (0<<12)); case 0x3: //DAC CurLimD 0 - uart_word_to_dac(((*thisRegister&0xFFFF)>>4) | (1<<12)); + usart3_word_to_dac(((*thisRegister&0xFFFF)>>4) | (1<<12)); case 0x4: //DAC VClp 0 - uart_word_to_dac(((*thisRegister&0xFFFF)>>4) | (2<<12)); + usart3_word_to_dac(((*thisRegister&0xFFFF)>>4) | (2<<12)); case 0x6: // Switches1 CB_GPIO_Out(ENAA1,*thisRegister & 1<<5); @@ -106,18 +98,17 @@ void decode_register(uint8_t addr) { CB_GPIO_Out(JTAGEN1,*thisRegister & 1<<0); break; case 0x7: //DAC CurLimA 1 - uart_word_to_dac(((*thisRegister&0xFFFF)>>4) | (4<<12)); + usart3_word_to_dac(((*thisRegister&0xFFFF)>>4) | (4<<12)); case 0x8: //DAC CurLimD 1 - uart_word_to_dac(((*thisRegister&0xFFFF)>>4) | (5<<12)); + usart3_word_to_dac(((*thisRegister&0xFFFF)>>4) | (5<<12)); case 0x9: //DAC VClp 1 - uart_word_to_dac(((*thisRegister&0xFFFF)>>4) | (6<<12)); + usart3_word_to_dac(((*thisRegister&0xFFFF)>>4) | (6<<12)); case 0xF: //SPI Debug -// uart_word_to_dac( (uint16_t) (*thisRegister&0xFFFF)); +// usart3_word_to_dac( (uint16_t) (*thisRegister&0xFFFF)); //CB_GPIO_Out_Hi(ADC_CONV0); // start conversion - ADC_CONV0_GPIO_PORT->BSRR = ADC_CONV0_PIN; // make a ... - ADC_CONV0_GPIO_PORT->BRR = ADC_CONV0_PIN; // ... short activation pulse + adc_conv0_pulse(); delay_us(4); // wait conversion time //CB_GPIO_Out_Lo(ADC_CONV0); // now the data is ready diff --git a/firmware/src/CB_functions.h b/firmware/src/CB_functions.h index 7a24ff5..a4ec56c 100644 --- a/firmware/src/CB_functions.h +++ b/firmware/src/CB_functions.h @@ -16,5 +16,5 @@ void decode_register(uint8_t addr); void report_register(uint8_t addr); void report_all_registers(void); - +void adc_conv0_pulse(void); void uart_byte_to_fpga(uint8_t byte); \ No newline at end of file diff --git a/firmware/src/dac.c b/firmware/src/dac.c index ea5e5e6..b5eb247 100644 --- a/firmware/src/dac.c +++ b/firmware/src/dac.c @@ -7,6 +7,23 @@ */ #include "dac.h" +#include "periph_conf.h" +#include "misc_utils.h" + + +void usart3_word_to_dac(uint16_t word){ + while (USART_GetFlagStatus(USART3, USART_FLAG_TXE) == RESET); + CB_GPIO_Out_Lo(DAC_CS); + + USART_SendData(USART3, reverse_8bit(0x30 | ((word>>12)&0xF))); + while (USART_GetFlagStatus(USART3, USART_FLAG_TXE) == RESET); + USART_SendData(USART3, reverse_8bit((word>>4)&0xFF)); + while (USART_GetFlagStatus(USART3, USART_FLAG_TXE) == RESET); + USART_SendData(USART3, reverse_8bit((word<<4)&0xFF)); + delay_ms(1); + while (USART_GetFlagStatus(USART3, USART_FLAG_TXE) == RESET); + CB_GPIO_Out_Hi(DAC_CS); +} void init_USART3() { diff --git a/firmware/src/dac.h b/firmware/src/dac.h index 3c49a29..6d32884 100644 --- a/firmware/src/dac.h +++ b/firmware/src/dac.h @@ -12,4 +12,5 @@ #include "stm32f10x_conf.h" -void init_USART3(void); \ No newline at end of file +void init_USART3(void); +void usart3_word_to_dac(uint16_t word); \ No newline at end of file -- 2.43.0