Professional Documents
Culture Documents
CollegeofEngineering/ElectricalEngineering
EE138,IntroductiontoEmbeddedControlSystemDesign
Section01,Spring2014
ProfessorPingHsu
Engineering403
LabRoom:
AtmelAVRStudio6.2orlatest
Lecturer:
LectureRoom:
Engineering244
SoftwareTools:
References:
DatasheetsandApplicationNotes(providedonline)
http://www.atmel.com/Images/Atmel42102SAMD20XplainedPro_UserGuide.pdf
(SAMD20data
sheet)
http://www.elec.uow.edu.au/avr/index.php
(oldAVRcode)
http://www.avrfreaks.net/
(AVR/atmelforum)
http://www.csee.umbc.edu/portal/help/C++/summary.shtml
(basicC++code)
Acknowledgements:
ProfessorChristopherPham
TravisJohnson
AlanChen
JonathanTran
TentativeLabSchedule:
Lab#
LabTopic
TimePeriod
GeneralPurposeInput/Output(GPIO)
1/27/152/17/15
AnalogInterface(ADC)
2/17/153/3/15
PulseWidthModulation(PWM)
67thweek
Interrupts
811thweek
SerialCommunication
1214thweek
GettingtoKnowtheAtmelStudio
Introduction
TutorialforNewProject:
1. OpenAtmelStudio.
2. Clickonfile
a. GotoNew>Project(showninFigure1.)
3. ClickonGCCCASFBoardProjectC/C++(showninFigure2.)
a. Nameitwhateveryouwouldlike(showninFigure3)
b. SelectthelocationyouwouldliketheprojecttobelocatedbyclickingontheBrowsebutton
c. Clickok
4. BoardSelectionwindowwillappear(showninFigure4.)
a. ClickontheDeviceFamilytoselectSAMD(showninFigure5.)
b. Find
ATSAMD20J18
inthelist(showninFigure6.)
c. Oncethatisclickedontwooptionswillappearatthebottomofthescreen.selecttheUser
Boardtemplate
ATSAMD20j18
(showninFigure7.)
d. Clickok
5. AtmelStudiowillthencreateandloadinthenewproject
6. IntheSolutionExplorerwindowfindthesrcfileandexpandit(showninFigure8.)
a. Openthemain.cfile
b. Thisisthefilethatyouwillcodein.(showninFigure9.)
PreloadedCode:
7. Therearetwolinesofcodealreadyincludedintothemain.cfile.
a. #include<asf.h>
i.
Thislineofcodeincludesalloftheheaderfilesthatincludedefinitionsforvariables
andfunctionsthatcanbeusedbytheuser.
b. system_init()
i.
Thislineofcodeincludesfourfunctions.Thesefunctionsareweakandcan
thereforebeoverwrittenwithotherfunctions.
1. system_clock_init()
a. Thisfunctionsetsuptheinternalclocktoadefault8MHzaswell
assetupallthegenericclockstodefaultstates.Inlaterlabsyou
willneedtochangethegenericclockssettings.
2. system_board_init()
a. Thisfunctionisemptyandcanbeusedasaplacetoinitializeallof
yourI/Opins.Howeverforlabwewillbedoingeverythinginthe
main.cfile
3. _system_events_init()
and
_system_extint_init()
a. Bothofthesefunctionsaresimilartothesystem_board_init()
functioninwhichtheyarejustplaceholdersforcodethatyoucould
writeinto.Howeverwewillbeusingthemain.cfiletoputall
neededinitializationsandotherneededfunctions
Figure1.New>Project
Figure2.SelectGCCCASFBoardProject
Figure3.Nameyourproject
Figure4.Windowthatpopsupafterpressingokonfigure3
Figure5.SelecttheSAMDindevicefamily
Figure6.SelectATSAMD20J18
Figure7.SelectingtheUserBoardtemplate
Figure8.ExpandthesrcfolderintheSolutionExplorerwindow
Figure9.Themain.cisthefilethatyourcodewillbewrittenin