Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
A
ArduinoZeroTemplate
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
GRASP
ArduinoZeroTemplate
Commits
15e7feac
Commit
15e7feac
authored
2 years ago
by
Bengt Ragnemalm
Browse files
Options
Downloads
Patches
Plain Diff
ADC example added
parent
728a7a9a
Branches
Branches containing commit
No related tags found
No related merge requests found
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
ArduinoZeroTemplate.cproj
+12
-12
12 additions, 12 deletions
ArduinoZeroTemplate.cproj
src/ArduinoZeroTemplate.c
+33
-7
33 additions, 7 deletions
src/ArduinoZeroTemplate.c
src/ArduinoZeroTemplate.h
+6
-4
6 additions, 4 deletions
src/ArduinoZeroTemplate.h
src/mymacros.h
+0
-0
0 additions, 0 deletions
src/mymacros.h
with
51 additions
and
23 deletions
ArduinoZeroTemplate.cproj
+
12
−
12
View file @
15e7feac
...
@@ -250,12 +250,12 @@
...
@@ -250,12 +250,12 @@
<file
path=
"src/ASF/sam0/drivers/sercom/usart/quick_start_callback/qs_usart_callback.h"
framework=
""
version=
"3.49.1"
source=
"sam0\drivers\sercom\usart\quick_start_callback\qs_usart_callback.h"
changed=
"False"
content-id=
"Atmel.ASF"
/>
<file
path=
"src/ASF/sam0/drivers/sercom/usart/quick_start_callback/qs_usart_callback.h"
framework=
""
version=
"3.49.1"
source=
"sam0\drivers\sercom\usart\quick_start_callback\qs_usart_callback.h"
changed=
"False"
content-id=
"Atmel.ASF"
/>
<file
path=
"src/ASF/sam0/drivers/sercom/usart/usart.h"
framework=
""
version=
"3.49.1"
source=
"sam0\drivers\sercom\usart\usart.h"
changed=
"False"
content-id=
"Atmel.ASF"
/>
<file
path=
"src/ASF/sam0/drivers/sercom/usart/usart.h"
framework=
""
version=
"3.49.1"
source=
"sam0\drivers\sercom\usart\usart.h"
changed=
"False"
content-id=
"Atmel.ASF"
/>
<file
path=
"src/ASF/sam0/drivers/sercom/usart/quick_start_dma/qs_usart_dma_use.h"
framework=
""
version=
"3.49.1"
source=
"sam0\drivers\sercom\usart\quick_start_dma\qs_usart_dma_use.h"
changed=
"False"
content-id=
"Atmel.ASF"
/>
<file
path=
"src/ASF/sam0/drivers/sercom/usart/quick_start_dma/qs_usart_dma_use.h"
framework=
""
version=
"3.49.1"
source=
"sam0\drivers\sercom\usart\quick_start_dma\qs_usart_dma_use.h"
changed=
"False"
content-id=
"Atmel.ASF"
/>
<file
path=
"src/ASF/sam0/drivers/adc/adc.h"
framework=
""
version=
"3.49.1"
source=
"sam0\drivers\adc\adc.h"
changed=
"False"
content-id=
"Atmel.ASF"
/>
<file
path=
"src/ASF/sam0/drivers/adc/adc_sam_d_r_h/adc.c"
framework=
""
version=
"3.49.1"
source=
"sam0\drivers\adc\adc_sam_d_r_h\adc.c"
changed=
"False"
content-id=
"Atmel.ASF"
/>
<file
path=
"src/ASF/sam0/drivers/adc/adc_sam_d_r_h/adc_feature.h"
framework=
""
version=
"3.49.1"
source=
"sam0\drivers\adc\adc_sam_d_r_h\adc_feature.h"
changed=
"False"
content-id=
"Atmel.ASF"
/>
<file
path=
"src/ASF/sam0/drivers/wdt/wdt.c"
framework=
""
version=
"3.49.1"
source=
"sam0\drivers\wdt\wdt.c"
changed=
"False"
content-id=
"Atmel.ASF"
/>
<file
path=
"src/ASF/sam0/drivers/wdt/wdt.c"
framework=
""
version=
"3.49.1"
source=
"sam0\drivers\wdt\wdt.c"
changed=
"False"
content-id=
"Atmel.ASF"
/>
<file
path=
"src/ASF/sam0/drivers/wdt/wdt.h"
framework=
""
version=
"3.49.1"
source=
"sam0\drivers\wdt\wdt.h"
changed=
"False"
content-id=
"Atmel.ASF"
/>
<file
path=
"src/ASF/sam0/drivers/wdt/wdt.h"
framework=
""
version=
"3.49.1"
source=
"sam0\drivers\wdt\wdt.h"
changed=
"False"
content-id=
"Atmel.ASF"
/>
<file
path=
"src/ASF/sam0/drivers/wdt/quick_start/qs_wdt_basic.h"
framework=
""
version=
"3.49.1"
source=
"sam0\drivers\wdt\quick_start\qs_wdt_basic.h"
changed=
"False"
content-id=
"Atmel.ASF"
/>
<file
path=
"src/ASF/sam0/drivers/wdt/quick_start/qs_wdt_basic.h"
framework=
""
version=
"3.49.1"
source=
"sam0\drivers\wdt\quick_start\qs_wdt_basic.h"
changed=
"False"
content-id=
"Atmel.ASF"
/>
<file
path=
"src/ASF/sam0/drivers/adc/adc.h"
framework=
""
version=
"3.49.1"
source=
"sam0\drivers\adc\adc.h"
changed=
"False"
content-id=
"Atmel.ASF"
/>
<file
path=
"src/ASF/sam0/drivers/adc/adc_sam_d_r_h/adc.c"
framework=
""
version=
"3.49.1"
source=
"sam0\drivers\adc\adc_sam_d_r_h\adc.c"
changed=
"False"
content-id=
"Atmel.ASF"
/>
<file
path=
"src/ASF/sam0/drivers/adc/adc_sam_d_r_h/adc_feature.h"
framework=
""
version=
"3.49.1"
source=
"sam0\drivers\adc\adc_sam_d_r_h\adc_feature.h"
changed=
"False"
content-id=
"Atmel.ASF"
/>
</files>
</files>
<documentation
help=
"https://asf.microchip.com/docs/3.49.1/common.applications.user_application.sam0_system.user_board.atsamd21g18a/html/index.html"
/>
<documentation
help=
"https://asf.microchip.com/docs/3.49.1/common.applications.user_application.sam0_system.user_board.atsamd21g18a/html/index.html"
/>
<offline-documentation
help=
""
/>
<offline-documentation
help=
""
/>
...
@@ -659,12 +659,6 @@
...
@@ -659,12 +659,6 @@
<Compile
Include=
"src\ArduinoZeroTemplate.h"
>
<Compile
Include=
"src\ArduinoZeroTemplate.h"
>
<SubType>
compile
</SubType>
<SubType>
compile
</SubType>
</Compile>
</Compile>
<None
Include=
"src\ASF\sam0\drivers\dac\dac.h"
>
<SubType>
compile
</SubType>
</None>
<None
Include=
"src\asf.h"
>
<SubType>
compile
</SubType>
</None>
<None
Include=
"src\ASF\sam0\drivers\adc\adc.h"
>
<None
Include=
"src\ASF\sam0\drivers\adc\adc.h"
>
<SubType>
compile
</SubType>
<SubType>
compile
</SubType>
</None>
</None>
...
@@ -674,6 +668,15 @@
...
@@ -674,6 +668,15 @@
<None
Include=
"src\ASF\sam0\drivers\adc\adc_sam_d_r_h\adc_feature.h"
>
<None
Include=
"src\ASF\sam0\drivers\adc\adc_sam_d_r_h\adc_feature.h"
>
<SubType>
compile
</SubType>
<SubType>
compile
</SubType>
</None>
</None>
<Compile
Include=
"src\mymacros.h"
>
<SubType>
compile
</SubType>
</Compile>
<None
Include=
"src\ASF\sam0\drivers\dac\dac.h"
>
<SubType>
compile
</SubType>
</None>
<None
Include=
"src\asf.h"
>
<SubType>
compile
</SubType>
</None>
<Compile
Include=
"src\ASF\sam0\drivers\dac\dac_sam_d_c_h\dac.c"
>
<Compile
Include=
"src\ASF\sam0\drivers\dac\dac_sam_d_c_h\dac.c"
>
<SubType>
compile
</SubType>
<SubType>
compile
</SubType>
</Compile>
</Compile>
...
@@ -1298,9 +1301,6 @@
...
@@ -1298,9 +1301,6 @@
<Compile
Include=
"src\config\asf.h"
>
<Compile
Include=
"src\config\asf.h"
>
<SubType>
compile
</SubType>
<SubType>
compile
</SubType>
</Compile>
</Compile>
<Compile
Include=
"src\macros.h"
>
<SubType>
compile
</SubType>
</Compile>
<Compile
Include=
"src\main.c"
>
<Compile
Include=
"src\main.c"
>
<SubType>
compile
</SubType>
<SubType>
compile
</SubType>
</Compile>
</Compile>
...
...
This diff is collapsed.
Click to expand it.
src/ArduinoZeroTemplate.c
+
33
−
7
View file @
15e7feac
...
@@ -7,7 +7,7 @@
...
@@ -7,7 +7,7 @@
#include
<asf.h>
#include
<asf.h>
#include
"ArduinoZeroTemplate.h"
#include
"ArduinoZeroTemplate.h"
#include
"macros.h"
#include
"
my
macros.h"
// Globala variabler
// Globala variabler
...
@@ -58,12 +58,18 @@ void ArduinoZeroTemplate(void)
...
@@ -58,12 +58,18 @@ void ArduinoZeroTemplate(void)
}
}
}
}
// Create example of using ADC
// ADC example
ADC_Convert
(
ADC_INPUT_EXAMPLE
);
// DAC example. All configuration needed is already done in Init. DAC is 10 bits and can convert in 350 ksps
dac_chan_write
(
&
dac0_instance_struct
,
DAC_CHANNEL_0
,
1023
);
// 1023 is the value and is also maximum value.
// Serial.begin(115200);
while
(
true
)
while
(
true
)
{
{
}
// end while (true) infinite loop
}
// end while (true) infinite loop
}
// end ArduinoZeroTemplate
}
// end
****
ArduinoZeroTemplate
****
void
ArduinoZeroTemplateInit
(
void
)
void
ArduinoZeroTemplateInit
(
void
)
{
{
...
@@ -223,7 +229,7 @@ void ArduinoZeroTemplateInit(void)
...
@@ -223,7 +229,7 @@ void ArduinoZeroTemplateInit(void)
dac_config_struct
.
reference
=
DAC_REFERENCE_AVCC
;
dac_config_struct
.
reference
=
DAC_REFERENCE_AVCC
;
dac_init
(
&
dac0_instance_struct
,
DAC
,
&
dac_config_struct
);
dac_init
(
&
dac0_instance_struct
,
DAC
,
&
dac_config_struct
);
dac_enable
(
&
dac0_instance_struct
);
dac_enable
(
&
dac0_instance_struct
);
// In the future the above should be done per DAC channel
instead
there each DAC in a device is supposed to be a channel.
// In the future the above should be done per DAC channel there each DAC in a device is supposed to be a channel.
// But in the current version of ASF there is no support for DAC channels. See dac.h
// But in the current version of ASF there is no support for DAC channels. See dac.h
// Note: There are just a few SAM devices that has more than one DAC, like the SAM4L-family.
// Note: There are just a few SAM devices that has more than one DAC, like the SAM4L-family.
...
@@ -232,15 +238,35 @@ void ArduinoZeroTemplateInit(void)
...
@@ -232,15 +238,35 @@ void ArduinoZeroTemplateInit(void)
// Internal ADC
// Internal ADC
adc_get_config_defaults
(
&
adc_config_struct
);
adc_get_config_defaults
(
&
adc_config_struct
);
adc_config_struct
.
clock_source
=
GCLK_GENERATOR_4
;
adc_config_struct
.
clock_source
=
GCLK_GENERATOR_4
;
// Clock timer
// Clock timer
Init1msClock
();
Init1msClock
();
}
// end init
}
// **** end init ****
uint_fast16_t
ADC_Convert
(
uint8_t
adcinput
)
{
static
uint_fast16_t
light
=
0
;
uint16_t
adcValue
=
0
;
uint_fast16_t
adcStatus
=
0
;
struct
adc_config
adc_config_struct
;
// ADC configuration structure
adc_get_config_defaults
(
&
adc_config_struct
);
adc_config_struct
.
positive_input
=
adcinput
;
adc_config_struct
.
reference
=
ADC_REFERENCE_INTVCC0
;
adc_init
(
&
adc0_instance_struct
,
ADC
,
&
adc_config_struct
);
adc_start_conversion
(
&
adc0_instance_struct
);
do
{
adcStatus
=
adc_read
(
&
adc0_instance_struct
,
&
adcValue
);
}
while
(
adcStatus
==
STATUS_BUSY
);
light
=
adcValue
;
return
light
;
}
void
usart5_read_callback
(
struct
usart_module
*
const
usart_module
)
void
usart5_read_callback
(
struct
usart_module
*
const
usart_module
)
{
{
// Here some signaling to main should be done. This is an example.
// Here some signaling to main should be done. This is an example
of setting a flag after reception of a command
.
usart5_command_received
=
true
;
usart5_command_received
=
true
;
}
}
...
...
This diff is collapsed.
Click to expand it.
src/ArduinoZeroTemplate.h
+
6
−
4
View file @
15e7feac
...
@@ -131,18 +131,20 @@ Available for user
...
@@ -131,18 +131,20 @@ Available for user
#define TIMEOUT 3 // Nr of retries
#define TIMEOUT 3 // Nr of retries
*/
*/
// For internal DAC if used
// For internal DAC if used. There is only one output so this is it!
// DAC is 10 bits and can convert in 350 ksps
#define DAC_PIN PIN_PA02 // Min 5 kohm load, max 100 pF.
#define DAC_PIN PIN_PA02 // Min 5 kohm load, max 100 pF.
// USART5 in UART mode if used:
// USART5 in UART mode if used:
#define MAX_USART5_RX_BUFFER_LENGTH 5
#define MAX_USART5_RX_BUFFER_LENGTH 5
//
Analog in addition in progress
//
For ADC if used
// How to read is missing
.
#define ADC_INPUT_EXAMPLE ADC_POSITIVE_INPUT_PIN1 // PA01
.
// Functions
// Functions
void
ArduinoZeroTemplateInit
(
void
);
void
ArduinoZeroTemplate
(
void
);
void
ArduinoZeroTemplate
(
void
);
void
ArduinoZeroTemplateInit
(
void
);
uint_fast16_t
ADC_Convert
(
uint8_t
adcinput
);
void
Update1msClock
(
void
);
void
Update1msClock
(
void
);
void
Init1msClock
(
void
);
void
Init1msClock
(
void
);
...
...
This diff is collapsed.
Click to expand it.
src/macros.h
→
src/
my
macros.h
+
0
−
0
View file @
15e7feac
File moved
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