Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
D
desktopWEDM
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Will Langford
desktopWEDM
Commits
283b7065
There was a problem fetching the pipeline summary.
Commit
283b7065
authored
7 years ago
by
Will Langford
Browse files
Options
Downloads
Patches
Plain Diff
fixed awex
parent
b159ccc9
Branches
Branches containing commit
No related tags found
No related merge requests found
Pipeline
#
Changes
2
Pipelines
1
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
firmware/adc/hello_adc.c
+13
-14
13 additions, 14 deletions
firmware/adc/hello_adc.c
firmware/pulseGen/pulseGen_AWEX.c
+11
-5
11 additions, 5 deletions
firmware/pulseGen/pulseGen_AWEX.c
with
24 additions
and
19 deletions
firmware/adc/hello_adc.c
+
13
−
14
View file @
283b7065
...
@@ -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_DIV1
6
_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
);
...
...
This diff is collapsed.
Click to expand it.
firmware/pulseGen/pulseGen_AWEX.c
+
11
−
5
View file @
283b7065
...
@@ -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;
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment