Skip to content
Snippets Groups Projects
Commit f445087c authored by Aron Nikku's avatar Aron Nikku
Browse files

Lab3 fix

parent dbfebbb9
Branches master
No related tags found
No related merge requests found
No preview for this file type
:020000020000FC
:040000000C94250037
:10002C000C9418000F930FB70F930E9472000E944C
:10003C00A7000E94C2000F910FBF0F9118950E944C
:10004C00D2000E94D2000E9437000E943B000E9406
:10005C0063000E94A7000E94C2000E945600789480
:10006C00FFCF0FEF04B90AB908950E94E3000E9474
:10007C00D20000E30E94F5000E94F5000E94F500FA
:10008C0000E20E94F50000E20E94E7000FE00E94EF
:10009C00E70001E00E94E70006E00E94E7000895F7
:1000AC000CE00093810004EF0093890003E20093BD
:1000BC00880002E000936F000895F1E0E0E000E0BA
:1000CC00019304E0019309E0019305E0019303E03F
:1000DC00019302E001930895F1E0E0E000810395C3
:1000EC0000830A3069F500E00193008103950083D9
:1000FC00063031F500E001930081039500830A304E
:10010C00F9F400E001930081039500830630C1F4FB
:10011C0000E001931181123049F4008103950083B2
:10012C00043071F400E0019300830AC00081039550
:10013C0000830A3029F400E00193008103950083C9
:10014C000895F1E0E6E0D1E0C6E00E94B8000E941C
:10015C00BF000E94B8000E94BF000E94B80000E0DF
:10016C000883089502910063099302910063099337
:10017C0008950AE3099308950E94DF000E94DB00B2
:10018C00F1E0E6E00E94CB0008950191003019F0F7
:10019C000E94EB00FACF08958F939F9380E090E03C
:1001AC000197F1F79F918F91089502E00E94E7006B
:1001BC00089501E00E94E70008952A9A08952A986C
:1001CC00089528980E94EF000895289A0E94EF0045
:1001DC0008950E94F50002950E94F5000895299A51
:0A01EC000BB929980E94D200089573
:040000000C942F002D
:10002C000C9418000F930FB70F931F932F933F93BC
:10003C00CF93DF93EF93FF930E948300FF91EF9197
:10004C00DF91CF913F912F911F910F910FBF0F9186
:10005C0018950E94C3000E94C3000E9445000E9494
:10006C0049000E9471000E949A000E94B5000E94F3
:10007C00640078940E949A000E94B500FBCF0FEFA9
:10008C0004B90AB908950E94D4000E94C30000E389
:10009C000E94E6000E94E6000E94E60000E20E9438
:1000AC00E60000E20E94D8000CE00E94D80001E0BB
:1000BC000E94D80006E00E94D80008950CE000933E
:1000CC00810004EF0093890003E20093880002E0B2
:1000DC0000936F000895F1E0E0E005E0019304E087
:1000EC00019309E0019305E0019303E0019302E021
:1000FC00019308950A060A061818D1E0C0E0F1E051
:10010C00E0E0088103951591183129F0011751F49D
:10011C0000E00993F6CF043029F41981123011F460
:10012C0000E0099308830895F1E0E6E0D1E0C6E031
:10013C000E94AB000E94B2000E94AB000E94B20071
:10014C000E94AB0000E008830895029100630993BC
:10015C0002910063099308950AE3099308950E949C
:10016C00CC00F1E0E6E00E94BC0008950191003063
:10017C0019F00E94DC00FACF08958F939F9380E0D2
:10018C0090E00197F1F79F918F91089502E00E9402
:10019C00D800089501E00E94D80008952A9A089585
:1001AC002A98089528980E94E0000895289A0E94A1
:1001BC00E00008950E94E60002950E94E600089572
:0C01CC00299A0BB929980E94C3000895DD
:00000001FF
This diff is collapsed.
AVRASM ver. 2.2.8 F:\AVR\Projects\Lab3\Lab3\main.asm Thu Dec 16 20:57:45 2021
AVRASM ver. 2.2.8 F:\AVR\Projects\Lab3\Lab3\main.asm Wed Dec 22 18:52:34 2021
EQU SIGNATURE_000 0000001e
......@@ -699,36 +699,38 @@ EQU BLGT 00000002
EQU E 00000001
EQU RS 00000000
EQU FN_SET 00000020
EQU DISP_ON 0000000f
EQU DISP_ON 0000000c
EQU LCD_CLR 00000001
EQU E_MODE 00000006
EQU R_HOME 00000002
EQU SECOND_TICKS 0000f423
CSEG START 00000025
CSEG START 0000002f
CSEG DO_TICK 00000018
CSEG TIME_TICK 00000072
CSEG TIME_FORMAT 000000a7
CSEG LINE_PRINT 000000c2
CSEG WAIT 000000d2
CSEG LCD_PORT_INIT 00000037
CSEG LCD_INIT 0000003b
CSEG TIME_INIT 00000063
CSEG TIMER1_INIT 00000056
CSEG LOOP 00000036
CSEG BACKLIGHT_ON 000000e3
CSEG LCD_WRITE4 000000f5
CSEG LCD_COMMAND 000000e7
CSEG TIME_TICK 00000083
CSEG WAIT 000000c3
CSEG LCD_PORT_INIT 00000045
CSEG LCD_INIT 00000049
CSEG TIME_INIT 00000071
CSEG TIME_FORMAT 0000009a
CSEG LINE_PRINT 000000b5
CSEG TIMER1_INIT 00000064
CSEG LOOP 00000040
CSEG BACKLIGHT_ON 000000d4
CSEG LCD_WRITE4 000000e6
CSEG LCD_COMMAND 000000d8
DSEG TIME 00000100
CSEG TIME_TICK_END 000000a6
CSEG TIME_TICK_HOUR_NOT_2x 0000009c
CSEG TIME_LIMITS 00000080
CSEG TIME_TICK_LOOP 00000087
CSEG TIME_TICK_24 00000091
CSEG TIME_TICK_LOOP_END 00000098
DSEG LINE 00000106
CSEG TIME_FORMAT_DIGIT 000000b8
CSEG TIME_FORMAT_COLON 000000bf
CSEG LCD_ERASE 000000df
CSEG LCD_HOME 000000db
CSEG LCD_PRINT 000000cb
CSEG LCD_PRINT_END 000000d1
CSEG LCD_ASCII 000000eb
CSEG WAIT_1 000000d6
CSEG BACKLIGHT_OFF 000000e5
CSEG LCD_WRITE8 000000ef
CSEG TIME_FORMAT_DIGIT 000000ab
CSEG TIME_FORMAT_COLON 000000b2
CSEG LCD_HOME 000000cc
CSEG LCD_PRINT 000000bc
CSEG LCD_PRINT_END 000000c2
CSEG LCD_ASCII 000000dc
CSEG WAIT_1 000000c7
CSEG LCD_ERASE 000000d0
CSEG BACKLIGHT_OFF 000000d6
CSEG LCD_WRITE8 000000e0
No preview for this file type
......@@ -22,33 +22,35 @@
<FILE>Lab3.lss</FILE>
</OUTPUT_FILES>
<LABELS>
<START><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>48</LINE></START>
<START><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>62</LINE></START>
<DO_TICK><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>34</LINE></DO_TICK>
<TIME_TICK><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>151</LINE></TIME_TICK>
<TIME_FORMAT><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>234</LINE></TIME_FORMAT>
<LINE_PRINT><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>268</LINE></LINE_PRINT>
<WAIT><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>293</LINE></WAIT>
<LCD_PORT_INIT><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>67</LINE></LCD_PORT_INIT>
<LCD_INIT><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>74</LINE></LCD_INIT>
<TIME_INIT><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>131</LINE></TIME_INIT>
<TIMER1_INIT><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>112</LINE></TIMER1_INIT>
<LOOP><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>62</LINE></LOOP>
<BACKLIGHT_ON><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>320</LINE></BACKLIGHT_ON>
<LCD_WRITE4><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>351</LINE></LCD_WRITE4>
<LCD_COMMAND><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>332</LINE></LCD_COMMAND>
<TIME><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>127</LINE></TIME>
<TIME_TICK_END><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>230</LINE></TIME_TICK_END>
<TIME_TICK_HOUR_NOT_2x><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>215</LINE></TIME_TICK_HOUR_NOT_2x>
<LINE><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>277</LINE></LINE>
<TIME_FORMAT_DIGIT><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>252</LINE></TIME_FORMAT_DIGIT>
<TIME_FORMAT_COLON><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>261</LINE></TIME_FORMAT_COLON>
<LCD_ERASE><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>315</LINE></LCD_ERASE>
<LCD_HOME><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>309</LINE></LCD_HOME>
<LCD_PRINT><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>281</LINE></LCD_PRINT>
<LCD_PRINT_END><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>287</LINE></LCD_PRINT_END>
<LCD_ASCII><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>338</LINE></LCD_ASCII>
<WAIT_1><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>298</LINE></WAIT_1>
<BACKLIGHT_OFF><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>324</LINE></BACKLIGHT_OFF>
<LCD_WRITE8><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>344</LINE></LCD_WRITE8>
<TIME_TICK><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>170</LINE></TIME_TICK>
<WAIT><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>263</LINE></WAIT>
<LCD_PORT_INIT><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>83</LINE></LCD_PORT_INIT>
<LCD_INIT><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>90</LINE></LCD_INIT>
<TIME_INIT><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>147</LINE></TIME_INIT>
<TIME_FORMAT><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>205</LINE></TIME_FORMAT>
<LINE_PRINT><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>239</LINE></LINE_PRINT>
<TIMER1_INIT><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>128</LINE></TIMER1_INIT>
<LOOP><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>76</LINE></LOOP>
<BACKLIGHT_ON><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>290</LINE></BACKLIGHT_ON>
<LCD_WRITE4><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>321</LINE></LCD_WRITE4>
<LCD_COMMAND><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>302</LINE></LCD_COMMAND>
<TIME><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>143</LINE></TIME>
<TIME_LIMITS><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>166</LINE></TIME_LIMITS>
<TIME_TICK_LOOP><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>177</LINE></TIME_TICK_LOOP>
<TIME_TICK_24><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>192</LINE></TIME_TICK_24>
<TIME_TICK_LOOP_END><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>201</LINE></TIME_TICK_LOOP_END>
<LINE><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>247</LINE></LINE>
<TIME_FORMAT_DIGIT><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>223</LINE></TIME_FORMAT_DIGIT>
<TIME_FORMAT_COLON><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>232</LINE></TIME_FORMAT_COLON>
<LCD_HOME><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>279</LINE></LCD_HOME>
<LCD_PRINT><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>251</LINE></LCD_PRINT>
<LCD_PRINT_END><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>257</LINE></LCD_PRINT_END>
<LCD_ASCII><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>308</LINE></LCD_ASCII>
<WAIT_1><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>268</LINE></WAIT_1>
<LCD_ERASE><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>285</LINE></LCD_ERASE>
<BACKLIGHT_OFF><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>294</LINE></BACKLIGHT_OFF>
<LCD_WRITE8><FILE>F:\AVR\Projects\Lab3\Lab3\main.asm</FILE><LINE>314</LINE></LCD_WRITE8>
</LABELS>
</ASSEMBLER_INFO>
......@@ -41,30 +41,42 @@
</ToolNumber>
<ToolName xmlns="">Simulator</ToolName>
</com_atmel_avrdbg_tool_simulator>
<AsfFrameworkConfig>
<framework-data xmlns="">
<options />
<configurations />
<files />
<documentation help="" />
<offline-documentation help="" />
<dependencies>
<content-extension eid="atmel.asf" uuidref="Atmel.ASF" version="3.49.1" />
</dependencies>
</framework-data>
</AsfFrameworkConfig>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<ToolchainSettings>
<AvrAssembler>
<avrasm.assembler.general.AdditionalIncludeDirectories>
<ListValues>
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.6.364\avrasm\inc</Value>
</ListValues>
</avrasm.assembler.general.AdditionalIncludeDirectories>
<avrasm.assembler.general.IncludeFile>m328Pdef.inc</avrasm.assembler.general.IncludeFile>
</AvrAssembler>
<avrasm.assembler.general.AdditionalIncludeDirectories>
<ListValues>
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.6.364\avrasm\inc</Value>
</ListValues>
</avrasm.assembler.general.AdditionalIncludeDirectories>
<avrasm.assembler.general.IncludeFile>m328Pdef.inc</avrasm.assembler.general.IncludeFile>
</AvrAssembler>
</ToolchainSettings>
<OutputType>Executable</OutputType>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<ToolchainSettings>
<AvrAssembler>
<avrasm.assembler.general.AdditionalIncludeDirectories>
<ListValues>
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.6.364\avrasm\inc</Value>
</ListValues>
</avrasm.assembler.general.AdditionalIncludeDirectories>
<avrasm.assembler.general.IncludeFile>m328Pdef.inc</avrasm.assembler.general.IncludeFile>
</AvrAssembler>
<avrasm.assembler.general.AdditionalIncludeDirectories>
<ListValues>
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.6.364\avrasm\inc</Value>
</ListValues>
</avrasm.assembler.general.AdditionalIncludeDirectories>
<avrasm.assembler.general.IncludeFile>m328Pdef.inc</avrasm.assembler.general.IncludeFile>
</AvrAssembler>
</ToolchainSettings>
</PropertyGroup>
<ItemGroup>
......
......@@ -36,10 +36,14 @@ DO_TICK:
in r16, SREG
push r16
push r17
call TIME_TICK
call TIME_FORMAT
call LINE_PRINT
pop r17
pop r16
out SREG, r16
pop r16
......
......@@ -12,7 +12,7 @@
.equ FN_SET = 0b00100000 ; 001DL NF--
; DL:4/8 bit data N:num diplay lines F:Character font
.equ DISP_ON = 0b00001111 ;0000 1DCB
.equ DISP_ON = 0b00001100 ;0000 1DCB
; D:On/off C:Show cursor B:Cursor blink
.equ LCD_CLR = 0b00000001 ; Clears Display
......@@ -36,9 +36,23 @@ DO_TICK:
in r16, SREG
push r16
push r17
push r18
push r19
push r28
push r29
push r30
push r31
call TIME_TICK
call TIME_FORMAT
call LINE_PRINT
pop r31
pop r30
pop r29
pop r28
pop r19
pop r18
pop r17
pop r16
out SREG, r16
......@@ -60,6 +74,8 @@ START:
call TIMER1_INIT
sei
LOOP:
call TIME_FORMAT
call LINE_PRINT
rjmp LOOP
;============================================
......@@ -132,7 +148,7 @@ TIME_INIT:
ldi ZH, HIGH(TIME)
ldi ZL, LOW(TIME)
ldi r16, 0
ldi r16, 5
st Z+, r16
ldi r16, 4
st Z+, r16
......@@ -147,90 +163,45 @@ TIME_INIT:
ret
TIME_LIMITS:
.db 10, 6, 10, 6, 24, 24
; Increments time by 1s
TIME_TICK:
ldi ZH, HIGH(TIME)
ldi ZL, LOW(TIME)
ldi YH, HIGH(TIME)
ldi YL, LOW(TIME)
; SEC
; Increment
ld r16, Z
inc r16
st Z, r16
cpi r16, 10
brne TIME_TICK_END
; Set to zero
ldi r16, 0
st Z+, r16
; Increment
ld r16, Z
inc r16
st Z, r16
cpi r16, 6
brne TIME_TICK_END
; Set to zero
ldi r16, 0
st Z+, r16
ldi ZH, HIGH(TIME_LIMITS*2)
ldi ZL, LOW(TIME_LIMITS*2)
TIME_TICK_LOOP:
ld r16, Y
; MIN
; Increment
ld r16, Z
inc r16
st Z, r16
cpi r16, 10
brne TIME_TICK_END
; Set to zero
ldi r16, 0
st Z+, r16
; Increment
ld r16, Z
inc r16
st Z, r16
cpi r16, 6
brne TIME_TICK_END
; Set to zero
ldi r16, 0
st Z+, r16
lpm r17, Z+
; HOUR
cpi r17, 24
breq TIME_TICK_24 ; branch if on Hour
;get H
ldd r17, Z+1
; if H = 2
cpi r17, 2
brne TIME_TICK_HOUR_NOT_2x
ld r16, Z
inc r16
st Z, r16
cpi r16, 4
brne TIME_TICK_END
cp r16, r17
brne TIME_TICK_LOOP_END
ldi r16, 0
st Z+, r16
st Z, r16
rjmp TIME_TICK_END
st Y+, r16
rjmp TIME_TICK_LOOP
; else
TIME_TICK_HOUR_NOT_2x:
; Increment
ld r16, Z
inc r16
st Z, r16
cpi r16, 10
brne TIME_TICK_END
; Set to zero
TIME_TICK_24:
cpi r16, 4
brne TIME_TICK_LOOP_END
ldd r17, Y+1
cpi r17, 2
brne TIME_TICK_LOOP_END
ldi r16, 0
st Z+, r16
; Increment
ld r16, Z
inc r16
st Z, r16
st Y+, r16
TIME_TICK_END:
TIME_TICK_LOOP_END:
st Y, r16
ret
TIME_FORMAT:
ldi ZH, HIGH(TIME + 6)
ldi ZL, LOW(TIME + 6)
......@@ -266,7 +237,6 @@ TIME_FORMAT_COLON:
;============================================
LINE_PRINT:
call LCD_ERASE
call LCD_HOME
ldi ZH, HIGH(LINE)
ldi ZL, LOW(LINE)
......
No preview for this file type
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment