1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
|
<!DOCTYPE html>
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>highlight.asm-avr</title>
<meta name="generator" content="KF5::SyntaxHighlighting - Definition (AVR Assembler) - Theme (Breeze Light)"/>
</head><body style="background-color:#ffffff;color:#1f1c1b"><pre>
<span style="color:#898887">;********************************************************************</span>
<span style="color:#898887">;* LED flasher: LED will flash with a X on/off ratio at PD6</span>
<span style="color:#898887">;*</span>
<span style="color:#898887">;* </span><span style="color:#81ca2d;background-color:#f7e6e6;font-weight:bold">NOTE</span><span style="color:#898887">: delay depends in the value of X, 1 is fast, 255 is slow</span>
<span style="color:#898887">;*</span>
<span style="color:#898887">;* No copyright ©1998 RES® * FREEWARE *</span>
<span style="color:#898887">;*</span>
<span style="color:#898887">;* </span><span style="color:#81ca2d;background-color:#f7e6e6;font-weight:bold">NOTE</span><span style="color:#898887">: Connect a low current LED with a 1k resistor in serie from </span>
<span style="color:#898887">;* Vdd to pin 11 of the MCU. (Or a normal LED with a 330ohm)</span>
<span style="color:#898887">;* </span>
<span style="color:#898887">;* RES® can be reached by email: digitalaudio@mail.com </span>
<span style="color:#898887">;* or visit the website: http://home.wanadoo.nl/electro1/avr</span>
<span style="color:#898887">;*</span>
<span style="color:#898887">;* Version :1.0 </span>
<span style="color:#898887">;* Date :12/26/98</span>
<span style="color:#898887">;* Author :Rob's ElectroSoft®</span>
<span style="color:#898887">;* Target MCU :AT90S1200-12PI@4MHz </span>
<span style="color:#898887">;********************************************************************</span>
<span style="font-weight:bold">.include</span> <span style="color:#bf0303">"1200def.inc"</span>
<span style="font-weight:bold">rjmp</span> RESET <span style="color:#898887">;reset handle</span>
<span style="color:#898887">;* Long delay </span>
<span style="color:#898887">;* Register variables</span>
<span style="font-weight:bold">.def</span> T1 <span style="color:#ca60ca">=</span> r1
<span style="font-weight:bold">.def</span> T2 <span style="color:#ca60ca">=</span> r2
<span style="font-weight:bold">.def</span> temp <span style="color:#ca60ca">=</span> r19
<span style="color:#898887">;* Code</span>
<span style="color:#644a9b">longDelay:</span>
<span style="font-weight:bold">clr</span> T1 <span style="color:#898887">;T1 used as delay 2nd count</span>
<span style="font-weight:bold">clr</span> T2 <span style="color:#898887">;T2 used as delay 3d count</span>
<span style="color:#644a9b">delay_1:</span>
<span style="font-weight:bold">dec</span> T2
<span style="font-weight:bold">brne</span> delay_1
<span style="font-weight:bold">dec</span> T1
<span style="font-weight:bold">brne</span> delay_1
<span style="font-weight:bold">dec</span> temp <span style="color:#898887">;temp must be preset as </span>
<span style="font-weight:bold">brne</span> delay_1 <span style="color:#898887">; delay master count</span>
<span style="font-weight:bold">ret</span>
<span style="color:#898887">;* Resets the data direction register D</span>
<span style="color:#898887">;* Defines</span>
<span style="font-weight:bold">.equ</span> led <span style="color:#ca60ca">=</span> <span style="color:#b08000">6</span> <span style="color:#898887">;LED at PD6</span>
<span style="color:#898887">;* Code</span>
<span style="color:#644a9b">RESET:</span>
<span style="font-weight:bold">sbi</span> DDRD<span style="color:#ca60ca">,</span> led <span style="color:#898887">;connect LED to PORTD pin 6</span>
<span style="color:#898887">;* Main program</span>
<span style="color:#898887">;* This part will let the LED go on and off by X</span>
<span style="color:#898887">;* Register variables</span>
<span style="font-weight:bold">.equ</span> X <span style="color:#ca60ca">=</span> <span style="color:#b08000">10</span> <span style="color:#898887">;enter delaytime X</span>
<span style="color:#644a9b">flash:</span>
<span style="font-weight:bold">sbi</span> PORTD<span style="color:#ca60ca">,</span> led <span style="color:#898887">;LED on</span>
<span style="font-weight:bold">ldi</span> temp<span style="color:#ca60ca">,</span> X <span style="color:#898887">;X sec delay </span>
<span style="font-weight:bold">rcall</span> longDelay
<span style="font-weight:bold">cbi</span> PORTD<span style="color:#ca60ca">,</span> led <span style="color:#898887">;LED off </span>
<span style="font-weight:bold">ldi</span> temp<span style="color:#ca60ca">,</span> X <span style="color:#898887">;X sec delay</span>
<span style="font-weight:bold">rcall</span> longDelay
<span style="font-weight:bold">rjmp</span> flash <span style="color:#898887">;another run</span>
<span style="color:#898887">/* other </span>
<span style="color:#898887">tests */</span>
<span style="font-weight:bold">.org</span> LARGEBOOTSTART
<span style="color:#898887">; the following sets up RAMPZ:Z to point to a FLASH data object, typically</span>
<span style="color:#898887">; for use with ELPM.</span>
<span style="font-weight:bold">ldi</span> ZL<span style="color:#ca60ca">,</span> <span style="color:#644a9b">low</span> <span style="color:#ca60ca">(</span>cmdtable <span style="color:#ca60ca">*</span> <span style="color:#b08000">2</span><span style="color:#ca60ca">)</span>
<span style="font-weight:bold">ldi</span> ZH<span style="color:#ca60ca">,</span> <span style="color:#644a9b">high</span> <span style="color:#ca60ca">(</span>cmdtable <span style="color:#ca60ca">*</span> <span style="color:#b08000">2</span><span style="color:#ca60ca">)</span>
<span style="font-weight:bold">.if</span> <span style="color:#ca60ca">((</span>cmdtable <span style="color:#ca60ca">*</span> <span style="color:#b08000">2</span><span style="color:#ca60ca">)</span> <span style="color:#ca60ca">></span> <span style="color:#b08000">65535</span><span style="color:#ca60ca">)</span>
<span style="font-weight:bold">ldi</span> r16<span style="color:#ca60ca">,</span> <span style="color:#b08000">1</span>
<span style="font-weight:bold">sts</span> RAMPZ<span style="color:#ca60ca">,</span> r16
<span style="font-weight:bold">.endif</span>
<span style="color:#898887">; more code follows here</span>
<span style="color:#644a9b">cmdtable:</span> <span style="font-weight:bold">.db</span> <span style="color:#bf0303">"foo"</span><span style="color:#ca60ca">,</span> <span style="color:#b08000">0x0</span>
<span style="font-weight:bold">.db</span> <span style="color:#bf0303">"Hello</span><span style="color:#3daee9">\n</span><span style="color:#bf0303">"</span> <span style="color:#898887">// is equivalent to:</span>
<span style="font-weight:bold">.db</span> <span style="color:#924c9d">'H'</span><span style="color:#ca60ca">,</span> <span style="color:#924c9d">'e'</span><span style="color:#ca60ca">,</span> <span style="color:#924c9d">'l'</span><span style="color:#ca60ca">,</span> <span style="color:#924c9d">'l'</span><span style="color:#ca60ca">,</span> <span style="color:#924c9d">'o'</span><span style="color:#ca60ca">,</span> <span style="color:#924c9d">'\\'</span><span style="color:#ca60ca">,</span> <span style="color:#924c9d">'n'</span>
<span style="font-weight:bold">.db</span> <span style="color:#924c9d">'\0'</span><span style="color:#ca60ca">,</span> <span style="color:#924c9d">'\177'</span><span style="color:#ca60ca">,</span> <span style="color:#924c9d">'\xff'</span>
<span style="font-weight:bold">.db</span> <span style="color:#bf0303">"</span><span style="color:#3daee9">\n</span><span style="color:#bf0303">x</span><span style="color:#3daee9">\r</span><span style="color:#bf0303">x</span><span style="color:#3daee9">\a</span><span style="color:#bf0303">x</span><span style="color:#3daee9">\b</span><span style="color:#bf0303">x</span><span style="color:#3daee9">\f</span><span style="color:#bf0303">x</span><span style="color:#3daee9">\t</span><span style="color:#bf0303">x</span><span style="color:#3daee9">\v</span><span style="color:#bf0303">x</span><span style="color:#3daee9">\\</span><span style="color:#bf0303">x</span><span style="color:#3daee9">\000</span><span style="color:#bf0303">0</span><span style="color:#3daee9">\xff</span><span style="color:#bf0303">f</span><span style="color:#3daee9">\0\1</span><span style="color:#bf0303">"</span>
<span style="color:#b08000">0b10_111_</span>2 <span style="color:#b08000">0xaf3_4</span> <span style="color:#b08000">0_12</span> <span style="color:#b08000">32_32</span> <span style="color:#b08000">$32_3</span>
<span style="font-weight:bold">.macro</span> m
<span style="font-weight:bold">ldi</span> <span style="color:#0057ae">@0</span><span style="color:#ca60ca">,</span> <span style="color:#0057ae">@1</span>
<span style="font-weight:bold">.endm</span> m r16<span style="color:#ca60ca">,\</span> <span style="color:#b08000">0</span>
<span style="color:#006e28">#define</span> <span style="color:#006e28">TEST</span> <span style="color:#ca60ca">\</span>
<span style="font-weight:bold">.IF</span> <span style="color:#006e28">val</span> <span style="color:#ca60ca">\</span>
<span style="font-weight:bold">.DW</span> <span style="color:#006e28">__TIME__</span> <span style="color:#ca60ca">\</span>
<span style="font-weight:bold">.ELSE</span> <span style="color:#ca60ca">\</span>
<span style="font-weight:bold">.DW</span> <span style="color:#b08000">1</span> <span style="color:#ca60ca">\</span>
<span style="font-weight:bold">.ENDIF</span>
<span style="color:#006e28">#</span><span style="color:#bf0303;text-decoration:underline">defi</span> <span style="color:#006e28">TEST</span>
</pre></body></html>
|