Вт сен 25, 2012 13:25:01
Вт сен 25, 2012 18:37:30
Вт сен 25, 2012 19:05:55
Вт сен 25, 2012 19:21:22
... доступный для повторения вариант http://www.myplace.nu/avr/minidds/. Исходник на ассемблере.Вообщем собираю генератор синуса на атмеле
Ср сен 26, 2012 15:34:57
Ср сен 26, 2012 16:25:57
lexx_l писал(а):Здрасте. Вообщем собираю генератор синуса на атмеле вот этот http://sevzirfo.narod.ru/sin.htm Все работает но шаг перестройки - мозгами тронуться. Я хочу чтобы шаги были 10х 1000х и 10000х. Смотрю прошивку (исходник) и ниче понять немогу. Вообщем не програмер я. Прокоментируйте пожалуйста как она работате или может кто сразу подправит? там по схеме 2 кнопки на увеличение и 2 на уменьшение, но есть еще 2 свободных порта - поэтому хочу их задействовать и сделать по 3 кнопки в каждую сторону.
Заранее спасибо!
Ср сен 26, 2012 16:34:56
.include "2313DEF.INC"
.equ freq_plus =0
.equ freq_plus10 =1
.equ freq_minus =2
.equ freq_minus10 =3
.org 0
RJMP start
RETI
RETI
RETI
RETI
RETI
RETI
RETI
RETI
RETI
RETI
.DW $8380 ;STD Z+0,R24 Store indirect with displacement
.DW $8986 ;LDD R24,Z+22 Load indirect with displacement
.DW $8F8C ;STD Y+28,R24 Store indirect with displacement
.DW $9592 ;SWAP R25 Swap nibbles
.DW $9C98 ;MUL R9,R8 Multiply unsigned
.DW $A29F ;STD Y+39,R9 Store indirect with displacement
.DW $A8A5 ;LDD R10,Z+53 Load indirect with displacement
.DW $AEAB ;STD Y+59,R10 Store indirect with displacement
.DW $B3B0 ;IN R27,0x10 In from I/O location
.DW $B9B6 ;OUT 0x06,R27 Out to I/O location
.DW $BFBC ;OUT 0x3C,R27 Out to I/O location
.DW $C4C1 ;RJMP PC+0x04C2 Relative jump
.DW $C9C7 ;RJMP PC-0x0638 Relative jump
.DW $CECC ;RJMP PC-0x0133 Relative jump
.DW $D3D1 ;RCALL PC+0x03D2 Relative call subroutine
.DW $D8D5 ;RCALL PC-0x072A Relative call subroutine
.DW $DCDA ;RCALL PC-0x0325 Relative call subroutine
.DW $E0DE ;LDI R29,0x0E Load immediate
.DW $E4E2 ;LDI R30,0x42 Load immediate
.DW $E8E6 ;LDI R30,0x86 Load immediate
.DW $ECEA ;LDI R30,0xCA Load immediate
.DW $EFED ;LDI R30,0xFD Load immediate
.DW $F2F0 ;BRCS PC-0x21 Branch if carry set
.DW $F5F3 ;BRVC PC+0x3F Branch if overflow flag is cleared
.DW $F7F6 ;BRTC PC-0x01 Branch if T flag cleared
.DW $F9F8 ;??? Data or unknown opcode
.DW $FBFA ;??? Data or unknown opcode
.DW $FCFC ;??? Data or unknown opcode
.DW $FEFD ;??? Data or unknown opcode
.DW $FFFE ;??? Data or unknown opcode
.DW $FFFF ;??? Data or unknown opcode
.DW $FFFF ;??? Data or unknown opcode
.DW $FFFF ;??? Data or unknown opcode
.DW $FFFF ;??? Data or unknown opcode
.DW $FFFF ;??? Data or unknown opcode
.DW $FEFE ;??? Data or unknown opcode
.DW $FCFD ;??? Data or unknown opcode
.DW $FBFC ;??? Data or unknown opcode
.DW $F9FA ;??? Data or unknown opcode
.DW $F7F8 ;BRCC PC-0x00 Branch if carry cleared
.DW $F5F6 ;BRTC PC+0x3F Branch if T flag cleared
.DW $F2F3 ;BRVS PC-0x21 Branch if overflow flag is set
.DW $EFF0 ;LDI R31,0xF0 Load immediate
.DW $ECED ;LDI R30,0xCD Load immediate
.DW $E8EA ;LDI R30,0x8A Load immediate
.DW $E4E6 ;LDI R30,0x46 Load immediate
.DW $E0E2 ;LDI R30,0x02 Load immediate
.DW $DCDE ;RCALL PC-0x0321 Relative call subroutine
.DW $D8DA ;RCALL PC-0x0725 Relative call subroutine
.DW $D3D5 ;RCALL PC+0x03D6 Relative call subroutine
.DW $CED1 ;RJMP PC-0x012E Relative jump
.DW $C9CC ;RJMP PC-0x0633 Relative jump
.DW $C4C7 ;RJMP PC+0x04C8 Relative jump
.DW $BFC1 ;OUT 0x31,R28 Out to I/O location
.DW $B9BC ;OUT 0x0C,R27 Out to I/O location
.DW $B3B6 ;IN R27,0x16 In from I/O location
.DW $AEB0 ;STD Z+56,R11 Store indirect with displacement
.DW $A8AB ;LDD R10,Y+51 Load indirect with displacement
.DW $A2A5 ;STD Z+37,R10 Store indirect with displacement
.DW $9C9F ;MUL R9,R15 Multiply unsigned
.DW $9598 ;BREAK Break
.DW $8F92 ;STD Z+26,R25 Store indirect with displacement
.DW $898C ;LDD R24,Y+20 Load indirect with displacement
.DW $8386 ;STD Z+6,R24 Store indirect with displacement
.DW $7C80 ;ANDI R24,0xC0 Logical AND with immediate
.DW $7679 ;ANDI R23,0x69 Logical AND with immediate
.DW $7073 ;ANDI R23,0x03 Logical AND with immediate
.DW $6A6D ;ORI R22,0xAD Logical OR with immediate
.DW $6367 ;ORI R22,0x37 Logical OR with immediate
.DW $5D60 ;SUBI R22,0xD0 Subtract immediate
.DW $575A ;SUBI R21,0x7A Subtract immediate
.DW $5154 ;SUBI R21,0x14 Subtract immediate
.DW $4C4F ;SBCI R20,0xCF Subtract immediate with carry
.DW $4649 ;SBCI R20,0x69 Subtract immediate with carry
.DW $4043 ;SBCI R20,0x03 Subtract immediate with carry
.DW $3B3E ;CPI R19,0xBE Compare with immediate
.DW $3638 ;CPI R19,0x68 Compare with immediate
.DW $3133 ;CPI R19,0x13 Compare with immediate
.DW $2C2E ;MOV R2,R14 Copy register
.DW $272A ;EOR R18,R26 Exclusive OR
.DW $2325 ;AND R18,R21 Logical AND
.DW $1F21 ;ADC R18,R17 Add with carry
.DW $1B1D ;SUB R17,R29 Subtract without carry
.DW $1719 ;CP R17,R25 Compare
.DW $1315 ;CPSE R17,R21 Compare, skip if equal
.DW $1012 ;CPSE R1,R2 Compare, skip if equal
.DW $0D0F ;ADD R16,R15 Add without carry
.DW $0A0C ;SBC R0,R28 Subtract with carry
.DW $0809 ;SBC R0,R9 Subtract with carry
.DW $0607 ;CPC R0,R23 Compare with carry
.DW $0405 ;CPC R0,R5 Compare with carry
.DW $0303 ;MULSU R16,R19 Multiply signed with unsigned
.DW $0102 ;MOVW R0,R4 Copy register pair
.DW $0001 ;??? Data or unknown opcode
.DW $0000 ;NOP No operation
.DW $0000 ;NOP No operation
.DW $0000 ;NOP No operation
.DW $0000 ;NOP No operation
.DW $0000 ;NOP No operation
.DW $0101 ;MOVW R0,R2 Copy register pair
.DW $0302 ;MULSU R16,R18 Multiply signed with unsigned
.DW $0403 ;CPC R0,R3 Compare with carry
.DW $0605 ;CPC R0,R21 Compare with carry
.DW $0807 ;SBC R0,R7 Subtract with carry
.DW $0A09 ;SBC R0,R25 Subtract with carry
.DW $0D0C ;ADD R16,R12 Add without carry
.DW $100F ;CPSE R0,R15 Compare, skip if equal
.DW $1312 ;CPSE R17,R18 Compare, skip if equal
.DW $1715 ;CP R17,R21 Compare
.DW $1B19 ;SUB R17,R25 Subtract without carry
.DW $1F1D ;ADC R17,R29 Add with carry
.DW $2321 ;AND R18,R17 Logical AND
.DW $2725 ;EOR R18,R21 Exclusive OR
.DW $2C2A ;MOV R2,R10 Copy register
.DW $312E ;CPI R18,0x1E Compare with immediate
.DW $3633 ;CPI R19,0x63 Compare with immediate
.DW $3B38 ;CPI R19,0xB8 Compare with immediate
.DW $403E ;SBCI R19,0x0E Subtract immediate with carry
.DW $4643 ;SBCI R20,0x63 Subtract immediate with carry
.DW $4C49 ;SBCI R20,0xC9 Subtract immediate with carry
.DW $514F ;SUBI R20,0x1F Subtract immediate
.DW $5754 ;SUBI R21,0x74 Subtract immediate
.DW $5D5A ;SUBI R21,0xDA Subtract immediate
.DW $6360 ;ORI R22,0x30 Logical OR with immediate
.DW $6A67 ;ORI R22,0xA7 Logical OR with immediate
.DW $706D ;ANDI R22,0x0D Logical AND with immediate
.DW $7673 ;ANDI R23,0x63 Logical AND with immediate
.DW $7C79 ;ANDI R23,0xC9 Logical AND with immediate
start: LDI R16,0xDF
OUT SPL,R16
SER R16
OUT DDRB,R16
SER R16
OUT PORTD,R16
LDI R30,0x16
LDI R31,0x00
LDI R24,0x64
LDI R25,0x64
CLR R26
CLR R28
CLR R29
CLR R16
CLR R17
loop: SUBI R30,0x16
SBCI R31,0x00
ADD R28,R24
ADC R29,R25
ADC R30,R26
SUBI R30,0xEA
SBCI R31,0xFF
LPM
OUT PORTB,R0
DEC R16
BRNE loop
DEC R17
BRNE loop
SBIS PIND, freq_plus
RJMP m2
SBIS PIND, freq_plus10
RJMP m3
SBIS PIND, freq_minus
RJMP m4
SBIS PIND, freq_minus10
RJMP m5
RJMP loop
m2: CPI R24,0xFF
BREQ m6
INC R24
RJMP loop
m6: INC R24
INC R25
RJMP loop
m3: CPI R25,0xFF
BREQ m7
INC R25
RJMP loop
m7: INC R25
INC R26
RJMP loop
m4: CPI R24,0x00
BREQ m8
DEC R24
RJMP loop
m8: DEC R24
DEC R25
RJMP loop
m5: CPI R25,0x00
BREQ m9
DEC R25
RJMP loop
m9: DEC R25
DEC R26
RJMP loop
Ср сен 26, 2012 21:42:09
Ср сен 26, 2012 21:45:16
Ср сен 26, 2012 22:08:00
Пт сен 28, 2012 11:59:05
Пт сен 28, 2012 12:10:00
Пт сен 28, 2012 12:13:35