Avr Basic Compiler Reference Manual

  • Upload
    -

  • View
    260

  • Download
    0

Embed Size (px)

Citation preview

  • 8/14/2019 Avr Basic Compiler Reference Manual

    1/24

    VR Simulator IDEB SIC Compiler Reference ManualTable Of Contents:General infoSho!arnin"s#Do$otCompile%nuse&Co&e#Initiali'eVariablesOnDeclaration#Optimi'eVariablesDeclaration#

    bout (ariablesDim#As#Bit#B)te#!or*on"#Sin"le#Reser(e#+,B#+*B#+,!#+*!#+-B#+.B#S)mbol#True#/alse#Const#0ointer#ASM#

    Mathematical an& lo"ical operationsMoS1r#S1rt#*o"#E2p#Sin#Cos#$ot#AnOr#3or#$an$or#$2or#,i"h#*o#To""le#

    Stan&ar& Basic lan"ua"e elementsGoto#/or#To#Step#$e2t#E2it/or#!hile#!enIf#Then#Else#En&if#SelectCase#Case#En&Select#,alt#

    SubroutinesEnGosub#Return#

    Microcontroller relate& lan"ua"e elementsConfi"0in#Input#Output#Define#C*OC45/RE6%E$C7#

    Special Basic lan"ua"e elements!aitMs#!ait%s#SIM%*ATIO$5!AITMS5VA*%E#Brea8#Shift*eft#ShiftRi"ht#*oo8%p#/re1Out#

    Structure& lan"ua"e support 9proce&ures an& functions0roc#En&0roc#Call#E2it#/unction#En&/unction#Inclu&e#

    %sin" internal EE0ROM &ata memor)Rea!rite#

    %sin" internal ;D con(erter mo&uleA&cin#ADC5C*OC4#ADC5VRE/#ADC5SAM0*E%S#

    %sin" interruptsEnable#Disable#OnInterrupt#Resume#

    Serial communication usin" internal har&are %S RT,seropen#,serout#,serin#,ser"et#Cr*f#*f#A**O!5M%*TI0*E5,SERO0E$#SI$G*E5DECIMA*50*ACES#

    Softare % RT implementationSERO%T5DE*A7%S#Serout#Serin#SeroutIn(#SerinIn(#

    Interfacin" character *CDs*CD5BITS#*CD5DREG#*CD5DBIT#*CD5RSREG#*CD5RSBIT#*CD5EREG#*CD5EBIT#*CD5R!REG#*CD5R!BIT#*CD5COMMA$D%S#*CD5DATA%S#*CD5I$ITMS#*CD5READ5B%S75/*AG#*c&init#*c&out#*c&cm&out#*c&Clear#*c&,ome9*c&*ine

  • 8/14/2019 Avr Basic Compiler Reference Manual

    2/24

    I=C communication ith e2ternal I=C &e(icesI=C!rite#I=CReaI=C!rite

    Optimi'eVariablesDeclarationThisoptionillturnonthecompilerinternalroutinethatilloptimi'ethe(ariables&eclarationor&er

    2

  • 8/14/2019 Avr Basic Compiler Reference Manual

    3/24

    base&ontheusa"efre1uenc)ofthe(ariables+Inthisa)#themostfre1uentl)use&(ariablesillbestore&inloerSRAMmemor)locations#resultin"inpossibl)smallersi'eofthe"enerate&co&e+

    bout (ariables/i(e&atat)pesaresupporte&:Bit@

  • 8/14/2019 Avr Basic Compiler Reference Manual

    4/24

    i ! x"LBj ! x"#W

    All"eneralpurposeor8in"an&I;Ore"istersarea(ailableasB)te(ariablesinbasicpro"rams+In&i(i&ualbitsofaB)te(ariablecanbea&&resse&b)+#+1?onst &ig& ! 102=x !

  • 8/14/2019 Avr Basic Compiler Reference Manual

    5/24

    Dim k As Longx ! 0x0.0y ! ointer(x) $%&e +ontent o- SRA4 lo+'tion 0.0 *ill ,e lo'ded tov'ri',le yy ! y 0xx ! x 1ointer(x) ! y $4odi-ied y v'le *ill ,e stored to SRA4 lo+'tion 06Cx ! 0x0..k ! 0x12=>6.ointer(x) ! k $Cor SRA4 lo+'tions 0..0.A *ill ,e lo'ded *it& t&e

    >,yte v'le +ont'ined in v'ri',le k

    Itispossibletousecommentsinbasicsourcepro"rams+Thecommentsmustbe"inithsin"le1uotes)mbol9an&ma)beplace&an)hereinthepro"ram+

    *inesofassemblersourceco&ema)beplace&an)hereinbasicsourcepro"raman&mustbe"inithASM:prefi2+/ore2ample:AS4E FAS4ELAB7L1E LD3 R16G0xCC

    S)mbolicnamesof"lobal&eclare&(ariablescanbeuse&inassemblerroutinesbecauseproper(ariablea&&ressillbeassi"ne&tothosenamesb)E6%&irecti(e:Dim v'rn'me As Bytev'rn'me ! 0AS4E LD3 R16G0xCCAS4E S%S HARFA47GR16

    Mathematical an& lo"ical operations/i(earithmeticoperations9N#@##;#MODarea(ailableforinte"er&atat)pes+MODoperationisnotapplicableforSin"le&atat)pe(ariables+Thecompilerisabletocompileallpossiblecomple2arithmetice2pressions#inclu&in"thosecontainin"mathfunctionsan&user&efine&functions+/ore2ample:Dim i As WordDim j As WordDim x As Wordi ! 12=

    j ! i I 2=>x ! 2x ! (j I x 12=>) J (i x)

    S1uarerootofainte"ernumber9@?-ran"ecanbecalculate&usin"S6Rfunction:Dim x As Wordx ! =600x ! Sr(x)

    Therearefi(esin"leprecisionmathematicalfunctions9S6RT#*OG#E30#SI$#COSthatcanbeuse&ithSin"le&atat)pe(ariables+*OGillcomputethenaturallo"arithmofarealnumber+Allmathfunctionscanalsobeuse&incomple2mathe2pressions+/ore2ample:Dim x As Singlex ! 2

    x ! Srt(x)

    /orBit&atat)pe(ariablesse(enlo"icaloperationsarea(ailable+Itispossibletoma8eonl)onelo"icaloperationinonesin"lestatement+*o"icaloperationsarealsoa(ailableforother(ariablet)pes+/ore2ample:E2ample

  • 8/14/2019 Avr Basic Compiler Reference Manual

    6/24

    x ! i And jx ! i r jx ! i /or jx ! i F'nd jx ! i For jx ! i Fxor j

    E2ample=:Dim x As WordDim y As Word

    x ! x r yR%B ! R%D And 911110000

    Therearethreestatementsthatareuse&forbitmanipulation@,IG,#*O!an&TOGG*E+Ifthear"umentofthesestatementsisabitinoneofthe0ORTre"isters#thenthesamebitinthecorrespon&in"DDRre"isterisautomaticall)set#confi"urin"theaffecte&pinasanoutputpin+Somee2amples:#ig& R%B"0Lo* ADSRA"AD7F%oggle B1

    Stan&ar& Basic lan"ua"e elements%ncon&itionalPumpsareperforme&b)GOTOstatement+Ituseslinelabelnameasar"ument+*inelabelscanbe"lobalorlocal+*inelabelsmustbefolloe&b)colonmar8:+,ereisonee2ample:Dim x As Wordx ! 0loo

  • 8/14/2019 Avr Basic Compiler Reference Manual

    7/24

    Dim i As ByteDim j As ByteDim x As Bytej ! 2x ! 2DDRB ! 2Cor i ! j %o 0 Ste< xR%B ! iFext i

    E2ample:Dim x As Byteloo

  • 8/14/2019 Avr Basic Compiler Reference Manual

    8/24

    Microcontrollerportsan&pinscanbeconfi"ure&asinputsoroutputsb)assi"nin"proper(aluestoDDR2re"istersortheirbits+Thattas8canalsobeaccomplishe&b)aCO$/IG0I$statement+Itss)nta2isapparentfromthefolloin"e2amples:on-igin R%B ! t

  • 8/14/2019 Avr Basic Compiler Reference Manual

    9/24

    E2ample=:DDRB ! 0x--R%B ! 900000001

    gole-tEW'it4s 20R%B ! S&i-tLe-t(R%BG 1)3- R%B". %&en oto gorig&toto gole-t

    gorig&tEW'it4s 20R%B ! S&i-tRig&t(R%BG 1)3- R%B"0 %&en oto gole-toto gorig&t

    *OO4%0functioncanbeuse&toselectonefromthelistofB)teconstants#base&onthe(alueinthein&e2(ariable#thatissupplie&asthelastseparate&ar"umentofthefunction+Thefirstconstantinthelisthasin&e2(alue+Theselecte&B)teconstantillbeloa&e&intotheresult(ariableofthefunction+Ifthe(alueinthein&e2(ariable"oesbe)on&thenumberofconstantsinthelist#theresult(ariableillnotbeaffecte&b)thefunction+,ereisonesmalle2amplefora@se"ment*ED&ispla):

    Dim digit As ByteDim m'sk As ByteDDRB ! 911111111loo

  • 8/14/2019 Avr Basic Compiler Reference Manual

    10/24

    CA**statement+Thelistofpasse&ar"umentscancontainboth(ariablesan&numericconstants+/ore2ample:Dim x As ByteDDRB ! 2Cor x ! 0 %o 2'll

  • 8/14/2019 Avr Basic Compiler Reference Manual

    11/24

    -n+1 ! i j7nd Cn+tion

    Structure&lan"ua"esupportisanoptionala&&@onmo&ulefortheinte"rate&basiccompiler+

    %sin" internal EE0ROM &ata memor)AccesstointernalEE0ROM&atamemor)canbeimplemente&usin"READan&!RITEstatements+Thefirstar"umentisthea&&ressofab)teinEE0ROMmemor)an&canbeaconstantora(ariable+Thesecon&ar"umentis&atathatisrea&orritten9forREADstatementitmustbea

    (ariablear"umentJfor!RITEstatementitcanalsobeaconstant+Dim x As ByteDim y As Bytex ! 10Re'd xG yWrite 11G y

    %sin" internal ;D con(erter mo&uleADCI$statementisa(ailableasasupportforinternalA;Dcon(erter+Ithastoar"uments+Thefirstar"umentisADCchannelnumberan&thesecon&ar"umentisa(ariablethatillbeuse&tostoretheresultofA;Dcon(ersion+Itisnotonl)possibletocon(ertsin"le@en&e&inputsithADCI$statement#butalso&ifferentialinputsith(arious"ainselections+/orthatpurposetheappropriate(alueforM%3bits9ADM%3re"istershoul&beuse&asACDchannelnumberar"umentofADCI$statement+IfaB)te(ariableisuse&forthecon(ersionresult#>@bitcon(ersionillbeperforme&9lefta&Puste&result+ADCI$statementuses(aluesofthreeparametersADC5C*OC4#ADC5VRE/an&ADC5SAM0*E%S+Their&efault(aluescanbechan"e&usin"DE/I$E&irecti(e+ADC5C*OC4parameter&eterminesthechoiceforADCinputcloc8prescalerselection+Alloe&ran"eis@an&the&efault(alueis-forprescalerselection+ADC5VRE/parameter&efinestheADC(olta"ereferenceselection+Its(alueisuse&tosetupRE/SbitsinADM%3re"ister+The&efault(alueis+ADC5SAM0*E%Sparameter9&efault(alue=setsthe&esire&ADCac1uisitiontimeinmicrosecon&s9@=+,ereisonee2ample:Dim v() As ByteDim vm As WordDim i As Byte

    De-ine AD8L5 ! =

    De-ine AD8HR7C ! 0De-ine AD8SA4L7MS ! 0DDRA ! 0x00DDRB ! 0x--

    Cor i ! 0 %o >Ad+in 0G v(i)Fext i

    vm ! 0Cor i ! 0 %o >vm ! vm v(i)Fext ivm ! vm J

    R%B ! vm"LB

    %sin" interruptsInterruptroutinesshoul&beplace&asallothersubroutinesaftertheE$Dstatement+Aseparateroutineshoul&beimplemente&fore(er)interruptsourceuse&+Thelistofa(ailableinterruptsourcesfortheselecte&AVR&e(iceiththeirofficialnamescanbe(iee&b)selectin"ShoS)stemInterrupt$amescomman&fromtheOptionsmenuofthebasiccompilerin&o+Interruptroutineshoul&be"inithO$I$TERR%0T8e)or&folloe&b)theofficialnameofitsinterruptsourcean&

    11

  • 8/14/2019 Avr Basic Compiler Reference Manual

    12/24

    itshoul&en&ithRES%MEstatement+E$AB*Ean&DISAB*Estatementsfolloe&b)aninterruptsourcenamecanbeuse&inthepro"ramtocontrolthestatusofitsenablefla"+Ifuse&ithnoar"umentsthe)illcontrolthestatusofthe"lobalinterruptenablefla"9I@fla"intheSREGre"ister+RES%MEstatementillautomaticall)settheI@fla"an&enableneinterrupts+Onee2ample:Dim x As Bytex ! 2DDRB ! 0x--R%B ! xDDRD"2 ! 0 $+on-igre 3F%0

  • 8/14/2019 Avr Basic Compiler Reference Manual

    13/24

    3- i K 0 %&en#serot :Fm,erE :G PiG rL-W'it4s 07ndi-oto loo@bit

    interface*CD5RSREG@&efinestheporthereRSlineisconnecte&to9&efaultis0ORTB*CD5RSBIT@&efinesthepinhereRSlineisconnecte&to9&efaultis-*CD5EREG@&efinestheporthereElineisconnecte&to9&efaultis0ORTB*CD5EBIT@&efinesthepinhereElineisconnecte&to9&efaultis=*CD5R!REG@&efinestheporthereR;!lineisconnecte&to9settoifnotuse&Jis&efault*CD5R!BIT@&efinesthepinhereR;!lineisconnecte&to9settoifnotuse&Jis&efault*CD5COMMA$D%S@&efinesthe&ela)after*CDCMDO%Tstatement9&efault(alueis*CD5DATA%S@&efinesthe&ela)after*CDO%Tstatement9&efault(alueis

  • 8/14/2019 Avr Basic Compiler Reference Manual

    14/24

    Thelastthreeparametersshoul&besettolo(alueshenusin"inte"rate&*CDmo&ulesimulator+IfR;!lineisconnecte&tomicrocontrolleran&parameter*CD5READ5B%S75/*AGissetto

  • 8/14/2019 Avr Basic Compiler Reference Manual

    15/24

    oto looar"umentsform>@linecharpattern9fromthetoptothebottoman&mustbeintheran"e@-usercharactersareassi"ne&tocharco&es@an&>@

  • 8/14/2019 Avr Basic Compiler Reference Manual

    16/24

    I=C communication ith e2ternal I=C &e(icesI=Ccommunicationcanbeimplemente&inbasicpro"ramsusin"I=C!RITEan&I=CREADstatements+Thefirstar"umentofbothstatementsmustbeoneofthemicrocontrollerspinsthatisconnecte&totheSDAlineofthee2ternalI=C&e(ice+Thesecon&ar"umentofbothstatementsmustbeoneofthemicrocontrollerspinsthatisconnecte&totheSC*line+Thethir&ar"umentofbothstatementsmustbeaconstant(alueorB)te(ariablecalle&sla(ea&&ress+Itsformatis&escribe&inthe&atasheetoftheuse&&e(ice+/ore2ample#forEE0ROMsfrom=.Cfamil)9ith&e(icea&&ressinputsconnecte&to"roun&the(alue2Ashoul&beuse&forsla(ea&&ressparameter+Bothstatementsillta8econtrolo(erbitofsla(ea&&ress&urin"communication+Theforth

    ar"umentofbothstatementsmustbeaB)teor!or&(ariable9this&epen&sonthe&e(iceuse&thatcontainsthea&&ressofthelocationthatillbeaccesse&+Ifaconstant(alueisuse&fora&&ressparameteritmustbeinB)te(alueran"e+Thelast9fifthar"umentofI=C!RITEstatementisaB)teconstantor(ariablethatillberittentothespecifie&a&&ress#an&forI=CREADstatementitmustbeaB)te(ariabletostorethe(aluethatillberea&fromthespecifie&a&&ress+Itisalloe&tousemorethanone&ataar"ument+/orI=C&e(icesthat&onotsupport&ataa&&ressar"umentthereisshortformofI=Cstatements9I=C!RITE

  • 8/14/2019 Avr Basic Compiler Reference Manual

    17/24

    Thereisasetoflo@le(elI=Ccommunicationstatementsa(ailable#ifitisnee&e&toha(emorecontrolo(erI=Ccommunicationprocess+I=C0RE0AREstatementhastoar"umentsthatmustbeoneofthemicrocontrollerspins+Thefirstar"ument&efinesSDAlinean&secon&ar"ument&efinesSC*line+ThisstatementillpreparetheselinesforI=Ccommunication+I=CSTARTstatementill"eneratestartcon&ition#an&I=CSTO0statementill"eneratestopcon&ition+Oneb)tecanbesenttotheI=Csla(eusin"I=CSE$Dstatement+Afterthestatementise2ecute&TbitinSREGre"isterillhol&thecop)ofthestateontheSDAline&urin"theac8nole&"ec)cle+Therearetostatementsthatcanbeuse&torecei(eoneb)tefromI=Csla(e+I=CRECAorI=CRECEIVEAC4ill"enerateac8nole&"esi"nal&urin"ac8nole"&ec)cleaftertheb)teisrecei(e&+I=CREC$orI=CRECEIVE$AC4ill"eneratenotac8nole&"esi"nal&urin"ac8nole"&ec)cleaftertheb)teis

    recei(e&+Onee2ample:E2ample=:Dim 'ddr As WordDim d't'(=1) As Byte

    Sym,ol sd' ! R%"1Sym,ol s+l ! R%"0'ddr ! 0

    32re

  • 8/14/2019 Avr Basic Compiler Reference Manual

    18/24

    De-ine S38S8B3% ! =De-ine S38S58R7 ! R%De-ine S38S58B3% ! 2De-ine S38SD38R7 ! R%De-ine S38SD38B3% ! De-ine S38SD8R7 ! R%De-ine S38SD8B3% ! >S3re?MicroireEE0ROM:E2ample=:De-ine S38S8R7 ! R%De-ine S38S8B3% ! =De-ine S3S83FH7R% ! 1De-ine S38S58R7 ! R%De-ine S38S58B3% ! 2

    18

  • 8/14/2019 Avr Basic Compiler Reference Manual

    19/24

    De-ine S38SD38R7 ! R%De-ine S38SD38B3% ! De-ine S38SD8R7 ! R%De-ine S38SD8B3% ! >S3re

  • 8/14/2019 Avr Basic Compiler Reference Manual

    20/24

    G*CDCMDO%T+0riortousin"Graphical*CDsrelate&statements#usershoul&setuptheinterfaceiththe"raphical*CDmo&uleusin"DE/I$E&irecti(es+,ereisthelistofa(ailableparameters:G*CD5DREG@&efinestheporthere&atalinesareconnecte&to9ithastobeafull>@pinsportG*CD5RSREG@&efinestheporthereRSlineisconnecte&toG*CD5RSBIT@&efinesthepinhereRSlineisconnecte&toG*CD5EREG@&efinestheporthereElineisconnecte&toG*CD5EBIT@&efinesthepinhereElineisconnecte&toG*CD5R!REG@&efinestheporthereR;!lineisconnecte&toG*CD5R!BIT@&efinesthepinhereR;!lineisconnecte&toG*CD5CS

  • 8/14/2019 Avr Basic Compiler Reference Manual

    21/24

    G*CD0OSITIO$statementisuse&toa&&ressab)tepositiononthe&ispla)+Itmustbeuse&beforean)oftheG*CD!RITE#G*CDI$#G*CDO%Tan&G*CDCMDO%Tstatements+Thefirstar"umentispa"ea&&ressan&itmustbeab)te&atat)pe(ariableorconstantintheran"e@

  • 8/14/2019 Avr Basic Compiler Reference Manual

    22/24

    setupusin"DE/I$E&irecti(es+Thereareei"hta(ailableparametersto&efinetheconnectionofA#B#Can&Dcoils:STE05A5REG@&efinestheporthereAcoilisconnecte&toSTE05A5BIT@&efinesthepinhereAcoilisconnecte&toSTE05B5REG@&efinestheporthereBcoilisconnecte&toSTE05B5BIT@&efinesthepinhereBcoilisconnecte&toSTE05C5REG@&efinestheporthereCcoilisconnecte&toSTE05C5BIT@&efinesthepinhereCcoilisconnecte&toSTE05D5REG@&efinestheporthereDcoilisconnecte&toSTE05D5BIT@&efinesthepinhereAcoilisconnecte&to

    CoilsAan&Careactuall)partsofonesin"lecoilithcommonconnection+Thesameis(ali&forBan&Dcoilconnections+ThereisalsoSTE05MODEparameteruse&to&efinethe&ri(emo&e+Ifitissetto

  • 8/14/2019 Avr Basic Compiler Reference Manual

    23/24

    loo

    In&i(i&ualbits9timeslotscanbesenttoan&recei(e&fromthe&e(iceusin"S=&e(ice:Dim -inis& As BitDim tem< As ByteDim sign As Byte

    1*ire3nit1*ireSendByte 0x++G 0x>>W'it4s 1loo

  • 8/14/2019 Avr Basic Compiler Reference Manual

    24/24

    beuse&hen&e(elopin"bootloa&erapplications#fore2ample+