-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTP_PWM.asm
151 lines (138 loc) · 2.3 KB
/
TP_PWM.asm
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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
;Lethycia Venturini Ferreira - Eng. Mecatronica
INCLUDE 'derivative.inc'
XDEF _Startup, main
MY_ZEROPAGE: SECTION SHORT
;VARIAVEIS RAM
HORA: DS 1
MIN: DS 1
SEG: DS 1
TEMPO: DS 1
LEITURAAD: DS 2
DIVIDE: DS 1
DECEN: DS 1
TEMPO2: DS 1
VARPWM: DS 1
MyCode: SECTION
main:
_Startup:
;PROGRAMA E CONSTANTES
CONFIGURA:
MOV #$0, CONFIG2
MOV #$19, CONFIG1
MOV #$30, TSC ;PARAR E RESETAR
MOV #$42, TSC ;ROTTIMER HABILITADA /4
LDHX #1000
STHX TMODH ;/800 INTERRUPCOES/SEG
LDHX #500
STHX TCH0H ;DC=50%
MOV #$5E, TSC0 ;ATIVA EM 0 COM INTERRUPCAO
LDHX #0
STHX TCH1H
MOV #$5A, TSC1 ;ATIVA EM 1 COM INTERRUPCAO
CLR TEMPO
CLR DIVIDE
MOV #$11, HORA
MOV #1, MIN
CLR SEG
CLR DECEN
MOV #1, VARPWM
MOV #$60, ADICLK ;40Mseg
CLI
INICIO:
MOV #$5, TEMPO
JSR MOSTRAPWM
L1:
LDA TEMPO
BNE L1
BRA INICIO
CONVAD:
MOV #2,ADSCR ;INICIAR CONVERSAO NO PTA4
;POOLING
AGUARDA:
BRCLR 7, ADSCR, AGUARDA
MOV ADR, LEITURAAD
RTS
MOSTRAPWM:
BRSET 0, VARPWM, DC0
BRSET 1, VARPWM, DC30
BRSET 2, VARPWM, DC60
BRSET 3, VARPWM, DC80
BRSET 4, VARPWM, DC100
DC0:
LDHX #0
STHX TCH1H
LSL VARPWM
RTS
DC30:
LDHX #300
STHX TCH1H
LSL VARPWM
RTS
DC60:
LDHX #600
STHX TCH1H
LSL VARPWM
RTS
DC80:
LDHX #800
STHX TCH1H
LSL VARPWM
RTS
DC100:
BSET 0,TSC1
LSL VARPWM
BSET 0, VARPWM
RTS
ROTTIMER:
DEC TEMPO2
LDA DIVIDE
INCA
STA DIVIDE
CMP #8
BNE SAIROT ;DIVIDE/8
CLR DIVIDE
LDA DECEN
ADD #1
DAA
STA DECEN
BNE SAIROT
DEC TEMPO
LDA SEG
ADD #1
DAA
STA SEG
CMP #$60
BNE SAIROT
CLR SEG
DEC TEMPO
LDA MIN
ADD #1
DAA
STA MIN
CMP #$60
BNE SAIROT
CLR MIN
DEC TEMPO
LDA HORA
ADD #1
DAA
STA HORA
CMP #$24
BNE SAIROT
CLR HORA
SAIROT:
BCLR 7, TSC ;TIRA PENDENCIA
RTI
ROTCH0:
BCLR 7, TSC0
RTI
ROTCH1:
BCLR 7, TSC1
RTI
ORG $FFF4 ;VECTOR 5 CH1 TIMER
DC.W ROTCH1
ORG $FFF6 ;VECTOR 4 CH0 TIMER
DC.W ROTCH0
ORG $FFF2;VECTOR 6 TIMER
DC.W ROTTIMER
END