Ср июн 06, 2012 16:50:28
.include "m128def.inc"
.DSEG
MAS1: .DB 0x1A,0x2A,0x3A,0x4A
MAS2: .DB 0x1B,0x2B,0x3B,0x4B
MAS3: .DB 0x1C,0x2C,0x3C,0x4C
VECT_END:
.CSEG
LDI ZL,LOW(MAS1*2)
LDI ZH,HIGH(MAS1*2)
LDI YL,LOW(MAS2*2)
LDI YH,HIGH(MAS2*2)
LDI XL,LOW(MAS3*2)
LDI XH,HIGH(MAS3*2)
;***** инициализация стека
ldi r19,0x04
out SPH,r19
ldi r19,0x5F
out SPL,r19
;*****
loop:
LD r22,Z+
LD r21,Y+
LD r20,X+
rjmp loop
Ср июн 06, 2012 18:08:35
Пн июн 18, 2012 17:20:32
.include "m128def.inc"
;***** ВЕКТАРА ПРЕРЫВАНИЯ ТАЙМЕРА-СЧЕТЧИКА Т3
RJMP VECT_END
.ORG $0034 ;Вектор прерывания таймера T1 при совпадении (КАНАЛ А)
RJMP SINOUTA
.ORG $0036 ;Вектор прерывания таймера T1 при совпадении (КАНАЛ B)
RJMP SINOUTB
.ORG $0038 ;Вектор прерывания таймера T1 при совпадении (КАНАЛ C)
RJMP SINOUTC
;***** МАССИВ ДАННЫХ
MAS1:
.DB 152, 176, 198, 217, 233, 245, 252, 255, 252, 245, 233,217, 198, 176
.DB 152, 128, 103, 79, 57, 38, 22, 10, 3, 1, 3, 10, 22, 38, 57, 79, 103, 127
MAS2:
.DB 223, 205, 184, 160, 136, 111, 87, 64, 44, 27, 14, 5, 1, 2
.DB 7, 18, 32, 56, 71, 95,119, 144, 168, 191, 211, 211, 241, 256, 254, 253, 248, 237
MAS3:
.DB 7, 2, 1, 5, 14, 27, 44, 64, 87, 111, 136, 160, 184, 205
.DB 223, 237, 248, 253, 254, 250, 241, 228, 211, 191, 168, 168, 119, 95, 71, 50, 32, 18
VECT_END:
CLR R20
CLR R21
CLR R22
LDI R24,32
.DEF TIMER=R16
CLR TIMER
LDI R28,0b00000111
OUT DDRA,R28
LDI R28,0b00000001
MOV R10,R28
MOV R14,R28
LDI R28,0b00000010
MOV R11,R28
MOV R15,R28
LDI R28,0b00000100
MOV R12,R28
MOV R9,R28
;***** ИНИЦИАЛИЗАЦИЯ СТЕКА
LDI r19,0x04
OUT SPH,r19
LDI r19,0x5F
OUT SPL,r19
RJMP RAM
START:
LDI ZL,LOW(MASSIN_1)
LDI ZH,HIGH(MASSIN_1)
LDI YL,low(MASSIN_2)
LDI YH,High(MASSIN_2)
LDI XL,LOW(MASSIN_3)
LDI XH,HIGH(MASSIN_3)
CLR R0
STS OCR3AH, R0 ;в регистр совпадений таймера T1
LD R1,Z+
STS OCR3AL, R1 ;в регистр совпадений таймера T1
INC R20
STS OCR3BH, R0 ;в регистр совпадений таймера T1
LD R2,Y+
STS OCR3BL, R2 ;в регистр совпадений таймера T1
INC R21
STS OCR3CH, R0 ;в регистр совпадений таймера T1
LD R3,X+
STS OCR3CL, R3 ;в регистр совпадений таймера T1
INC R22
;НАСТРОЙКА ПРЕРЫВАНИЯ
LDI R18, 0b00000000
STS TIMSK,R18
LDI R25,0b00011010
STS ETIMSK,R25
SEI
;TCCR НАСТРОИМ НА 8-БИТЫЙ БЫСТРЫЙ ШИМ C ПЕРЕКЛЮЧЕНИЕМ ВЫВОДОВ ОС
LDI R16,0b01010101
STS TCCR3A,R16
LDI R17,0b00001010
STS TCCR3B,R17
loop:
RJMP loop
SINOUTA:
CLI
LDI R16,0b00000000
STS TCCR3A,R16
LDI R17,0b00000000
STS TCCR3B,R17
CLR R0
STS OCR3AH, R0 ;в регистр совпадений таймера T1
LD R1,Z+
STS OCR3AL, R1 ;в регистр совпадений таймера T1
COM R10
AND R10,R14
OUT PORTA,R10
INC R20
CP R20,R24
BREQ TERMS
LDI R16,0b01010101
STS TCCR3A,R16
LDI R17,0b00001001
STS TCCR3B,R17
SEI
RETI
TERMS:
RJMP TERMS_SINOUTA
SINOUTB:
CLI
LDI R16,0b00000000
STS TCCR3A,R16
LDI R17,0b00000000
STS TCCR3B,R17
CLR R0
STS OCR3BH, R0 ;в регистр совпадений таймера T1
LD R2,Y+
STS OCR3BL, R2 ;в регистр совпадений таймера T1
COM R11
AND R11,R15
OUT PORTA,R11
INC R21
CP R21,R24
BREQ TERMS2
LDI R16,0b01010101
STS TCCR3A,R16
LDI R17,0b00001001
STS TCCR3B,R17
SEI
RETI
TERMS2:
RJMP TERMS_SINOUTB
SINOUTC:
CLI
LDI R16,0b00000000
STS TCCR3A,R16
LDI R17,0b00000000
STS TCCR3B,R17
CLR R0
STS OCR3CH, R0 ;в регистр совпадений таймера T1
LD R3,X+
STS OCR3CL, R3 ;в регистр совпадений таймера T1
COM R12
AND R12,R9
OUT PORTA,R12
INC R22
CP R22,R24
BREQ TERMS3
LDI R16,0b01010101
STS TCCR3A,R16
LDI R17,0b00001001
STS TCCR3B,R17
SEI
RETI
TERMS3:
RJMP TERMS_SINOUTB
RAM:
.DSEG
MASSIN_1: .BYTE 32
MASSIN_2: .BYTE 32
MASSIN_3: .BYTE 32
.CSEG
LDI YL, low(MASSIN_1)
LDI YH, High(MASSIN_1)
LDI ZL, low(MAS1*2)
LDI ZH, High(MAS1*2)
MAS_A:
INC TIMER
LPM R17,Z+
ST y+,R17
CPI TIMER,32
BREQ MAS_B
RJMP MAS_A
MAS_B:
CLR TIMER
LDI YL, low(MASSIN_2)
LDI YH, High(MASSIN_2)
LDI ZL, low(MAS2*2)
LDI ZH, High(MAS2*2)
MAS_B1:
INC TIMER
LPM R17,Z+
ST y+,R17
CPI TIMER,32
BREQ MAS_C
RJMP MAS_B1
MAS_C:
CLR TIMER
LDI YL, low(MASSIN_3)
LDI YH, High(MASSIN_3)
LDI ZL, low(MAS3*2)
LDI ZH, High(MAS3*2)
MAS_C1:
INC TIMER
LPM R17,Z+
ST y+,R17
CPI TIMER,32
BREQ END_MSA
RJMP MAS_C1
END_MSA:
RJMP START
TERMS_SINOUTA:
LDI ZL,LOW(MASSIN_1)
LDI ZH,HIGH(MASSIN_1)
CLR R20
LDI R16,0b01010101
STS TCCR3A,R16
LDI R17,0b00001001
STS TCCR3B,R17
SEI
RETI
TERMS_SINOUTB:
LDI YL,low(MASSIN_2)
LDI YH,High(MASSIN_2)
CLR R21
LDI R16,0b01010101
STS TCCR3A,R16
LDI R17,0b00001001
STS TCCR3B,R17
SEI
RETI
TERMS_SINOUTC:
LDI XL,LOW(MASSIN_3)
LDI XH,HIGH(MASSIN_3)
CLR R22
LDI R16,0b01010101
STS TCCR3A,R16
LDI R17,0b00001001
STS TCCR3B,R17
SEI
RETI
Вт июн 19, 2012 09:27:28
Вт июн 19, 2012 13:19:05
Вт июн 19, 2012 13:21:39
Вт июн 19, 2012 18:16:47
Ср июн 20, 2012 06:34:09
Ср июн 20, 2012 07:46:47
Ср июн 20, 2012 08:26:41
Пт июн 22, 2012 08:35:00
Пт июн 22, 2012 08:47:03
GP1 писал(а):Любой сигнал состоит из кучи гармоник
Пт июн 22, 2012 08:52:43