Skip to content
Snippets Groups Projects
Commit 283b7065 authored by Will Langford's avatar Will Langford
Browse files

fixed awex

parent b159ccc9
Branches
No related tags found
No related merge requests found
Pipeline #
...@@ -122,18 +122,17 @@ int main(void) { ...@@ -122,18 +122,17 @@ int main(void) {
USART_Rx_Enable(USART_data.usart); USART_Rx_Enable(USART_data.usart);
USART_Tx_Enable(USART_data.usart); USART_Tx_Enable(USART_data.usart);
// // setup pwm // setup pwm
// TCC0.PER = 0x0400; //set up 4096 resolution TCC0.PER = 0x0400; //set up 1024 resolution
// TCC0.CTRLB |= TC_WGMODE_SS_gc;//( TCC0.CTRLB & ~TC0_WGMODE_gm ) | TC_WGMODE_SS_gc; //single slope TCC0.CTRLB |= TC_WGMODE_SS_gc;//( TCC0.CTRLB & ~TC0_WGMODE_gm ) | TC_WGMODE_SS_gc; //single slope
// TCC0.CTRLB |= TC0_CCDEN_bm; //& ( TC0_CCAEN_bm | TC0_CCBEN_bm | TC0_CCCEN_bm | TC0_CCDEN_bm ); //enable compare channel TCC0.CTRLA |= TC_CLKSEL_DIV256_gc; //TC_CLKSEL_DIV64_gc; //set clock divider
// TCC0.CTRLA |= TC_CLKSEL_DIV2_gc; //set clock divider set_pwm(900);
// set_pwm(900);
// setup AWEX
// // setup AWEX AWEXC.CTRL |= AWEX_DTICCDEN_bm | AWEX_DTICCCEN_bm;; // enable DTI override on C and D channel (PC6 and PC7)
// AWEXC.CTRL |= AWEX_DTICCDEN_bm; // enable on D channel (PC6 and PC7) and get CC from A AWEXC.STATUS &= ~AWEX_FDF_bm; // clear fault detection flag
// AWEXC.STATUS &= ~AWEX_FDF_bm; // clear fault detection flag AWEXC.OUTOVEN |= chPin | dchPin; // enable output overide on charge and discharge pins
// AWEXC.OUTOVEN |= chPin | dchPin; // enable output overide on charge and discharge pins AWEXC.DTBOTH = 32; // set deadtime (measured in clock cyles)
// AWEXC.DTBOTH = 32; // set deadtime (measured in clock cyles)
// setup ADC // setup ADC
...@@ -145,7 +144,7 @@ int main(void) { ...@@ -145,7 +144,7 @@ int main(void) {
ADC_Reference_Config(&ADCA, ADC_REFSEL_INTVCC_gc); ADC_Reference_Config(&ADCA, ADC_REFSEL_INTVCC_gc);
//_delay_ms(200); //_delay_ms(200);
// ADC_Prescaler_Config(&ADCA, ADC_PRESCALER_DIV32_gc); // ADC_Prescaler_Config(&ADCA, ADC_PRESCALER_DIV32_gc);
ADC_Prescaler_Config(&ADCA, ADC_PRESCALER_DIV1_gc); //speed test ADC_Prescaler_Config(&ADCA, ADC_PRESCALER_DIV16_gc); //speed test
// ADC_Ch_InputMode_and_Gain_Config(&ADCA.CH0, // ADC_Ch_InputMode_and_Gain_Config(&ADCA.CH0,
// ADC_CH_INPUTMODE_DIFFWGAINL_gc, // ADC_CH_INPUTMODE_DIFFWGAINL_gc,
// ADC_CH_GAIN_16X_gc); // ADC_CH_GAIN_16X_gc);
...@@ -167,7 +166,7 @@ int main(void) { ...@@ -167,7 +166,7 @@ int main(void) {
sei(); sei();
while (1) { while (1) {
if (RTC.CNT - last_tx_rtc > 10){ if (RTC.CNT - last_tx_rtc > 2){
ADC_Ch_Conversion_Start(&ADCA.CH0); ADC_Ch_Conversion_Start(&ADCA.CH0);
while(!ADC_Ch_Conversion_Complete(&ADCA.CH0)){}; while(!ADC_Ch_Conversion_Complete(&ADCA.CH0)){};
ADC_result = ADC_ResultCh_GetWord_Signed(&ADCA.CH0,offset); ADC_result = ADC_ResultCh_GetWord_Signed(&ADCA.CH0,offset);
......
...@@ -65,6 +65,7 @@ void writeToBuffer(char *buff, char *fmt, ...) { ...@@ -65,6 +65,7 @@ void writeToBuffer(char *buff, char *fmt, ...) {
void set_pwm(uint16_t duty){ void set_pwm(uint16_t duty){
TCC0.CCDBUF = duty; //set compare value TCC0.CCDBUF = duty; //set compare value
TCC0.CCCBUF = duty; //set compare value
do {} while(TCC0.INTFLAGS && TC0_OVFIF_bm == 0 ); //wait do {} while(TCC0.INTFLAGS && TC0_OVFIF_bm == 0 ); //wait
TCC0.INTFLAGS = TC0_OVFIF_bm; TCC0.INTFLAGS = TC0_OVFIF_bm;
} }
...@@ -107,7 +108,7 @@ int main(void) { ...@@ -107,7 +108,7 @@ int main(void) {
chargePort.DIRSET = chPin | dchPin; // charge and discharge chargePort.DIRSET = chPin | dchPin; // charge and discharge
// chargePort.PIN6CTRL |= PORT_OPC_PULLDOWN_gc; //turn on pull-down resistors (when in input mode) // chargePort.PIN6CTRL |= PORT_OPC_PULLDOWN_gc; //turn on pull-down resistors (when in input mode)
// chargePort.PIN7CTRL |= PORT_OPC_PULLDOWN_gc; //turn on pull-down resistors (when in input mode) // chargePort.PIN7CTRL |= PORT_OPC_PULLDOWN_gc; //turn on pull-down resistors (when in input mode)
// chargePort.REMAP |= PORT_TC0D_bm | PORT_TC0C_bm;//0b00001100; // remap OCOC and OCOD to our charge and discharge pins chargePort.REMAP = PORT_TC0D_bm | PORT_TC0C_bm;//0b00001100; // remap OCOC and OCOD to our charge and discharge pins
// setup USART // setup USART
USART_InterruptDriver_Initialize(&USART_data, &USARTC0, USART_DREINTLVL_LO_gc); USART_InterruptDriver_Initialize(&USART_data, &USARTC0, USART_DREINTLVL_LO_gc);
...@@ -123,12 +124,11 @@ int main(void) { ...@@ -123,12 +124,11 @@ int main(void) {
// setup pwm // setup pwm
TCC0.PER = 0x0400; //set up 1024 resolution TCC0.PER = 0x0400; //set up 1024 resolution
TCC0.CTRLB |= TC_WGMODE_SS_gc;//( TCC0.CTRLB & ~TC0_WGMODE_gm ) | TC_WGMODE_SS_gc; //single slope TCC0.CTRLB |= TC_WGMODE_SS_gc;//( TCC0.CTRLB & ~TC0_WGMODE_gm ) | TC_WGMODE_SS_gc; //single slope
TCC0.CTRLB |= TC0_CCDEN_bm; //& ( TC0_CCAEN_bm | TC0_CCBEN_bm | TC0_CCCEN_bm | TC0_CCDEN_bm ); //enable compare channel
TCC0.CTRLA |= TC_CLKSEL_DIV64_gc; //set clock divider TCC0.CTRLA |= TC_CLKSEL_DIV64_gc; //set clock divider
set_pwm(900); set_pwm(900);
// setup AWEX // setup AWEX
AWEXC.CTRL |= AWEX_DTICCDEN_bm; // enable on D channel (PC6 and PC7) AWEXC.CTRL |= AWEX_DTICCDEN_bm | AWEX_DTICCCEN_bm;; // enable DTI override on C and D channel (PC6 and PC7)
AWEXC.STATUS &= ~AWEX_FDF_bm; // clear fault detection flag AWEXC.STATUS &= ~AWEX_FDF_bm; // clear fault detection flag
AWEXC.OUTOVEN |= chPin | dchPin; // enable output overide on charge and discharge pins AWEXC.OUTOVEN |= chPin | dchPin; // enable output overide on charge and discharge pins
AWEXC.DTBOTH = 32; // set deadtime (measured in clock cyles) AWEXC.DTBOTH = 32; // set deadtime (measured in clock cyles)
...@@ -159,7 +159,13 @@ int main(void) { ...@@ -159,7 +159,13 @@ int main(void) {
// _delay_ms(5); // _delay_ms(5);
// chargePort.OUTCLR = dchPin; // chargePort.OUTCLR = dchPin;
// _delay_ms(1); // _delay_ms(1);
// if (RTC.CNT - last_tx_rtc > 25){ if (RTC.CNT - last_tx_rtc > 25){
last_tx_rtc = RTC.CNT;
writeToBuffer(&output_buffer[0],"count=%d\n", counter++);
send_packet(output_buffer,maxBufferSize);
ledPort.OUTTGL = ledPin;
}
// chargePort.OUTSET = chPin; // chargePort.OUTSET = chPin;
// chargePort.OUTCLR = dchPin; // chargePort.OUTCLR = dchPin;
// ledPort.OUTSET = ledPin; // ledPort.OUTSET = ledPin;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment