Гость Павел Опубликовано 13 августа, 2014 Поделиться Опубликовано 13 августа, 2014 мне нужно было исправить шим, а исходника не было, так вот я дизассемблировал файл .HEX, подправил чтобы компилировалось но ШИМ не ипсравлял пока, так вот новая прошивка работает не правильно, при подаче импульсов на 17ногу начинают работать выходы(33-36) и 100% ШИМ на 21 ноге идет и это правильно, но с вместе начинают синхронно работать выходы (22-25) и 100%ШИМ на 18 ноге чего не должно быть.Помогите найти ошибку, я до сегодняшнего дня дело с ассамблером не имел... .cseg .org 0x0000 .equ k00=0x00 .equ k01=0x01 .equ k02=0x02 .equ k03=0x03 .equ k04=0x04 .equ k05=0x05 .equ k06=0x06 .equ k07=0x07 .equ k0A=0x0A .equ k0B=0x0B .equ k0C=0x0C .equ k0D=0x0D .equ k0F=0x0F .equ k18=0x18 .equ k1E=0x1E .equ k32=0x32 .equ k4C=0x4C .equ k54=0x54 .equ k5F=0x5F .equ k60=0x60 .equ k6C=0x6C .equ k80=0x80 .equ kA1=0xA1 .equ kB3=0xB3 .equ kE0=0xE0 .equ kF0=0xF0 .equ kF4=0xF4 .equ kFB=0xFB .equ kFF=0xFF .equ p08=0x08 .equ p0B=0x0B .equ p0C=0x0C .equ p11=0x11 .equ p12=0x12 .equ p13=0x13 .equ p14=0x14 .equ p15=0x15 .equ p17=0x17 .equ p18=0x18 .equ p1A=0x1A .equ p1B=0x1B .equ p1C=0x1C .equ p21=0x21 .equ p22=0x22 .equ p23=0x23 .equ p24=0x24 .equ p25=0x25 .equ p26=0x26 .equ p27=0x27 .equ p28=0x28 .equ p29=0x29 .equ p2A=0x2A .equ p2B=0x2B .equ p2C=0x2C .equ p2D=0x2D .equ p2E=0x2E .equ p2F=0x2F .equ p30=0x30 .equ p32=0x32 .equ p33=0x33 .equ p34=0x34 .equ p35=0x35 .equ p39=0x39 .equ p3A=0x3A .equ p3B=0x3B .equ p3C=0x3C .equ p3D=0x3D .equ p3E=0x3E .equ p3F=0x3F .equ b0=0x00 .equ b1=0x01 .equ b2=0x02 .equ b3=0x03 .equ b4=0x04 .equ b5=0x05 .equ b6=0x06 .equ b7=0x07 L0000: jmp _reset jmp L005B jmp L0075 jmp L0000 jmp L0000 jmp L0000 jmp L0000 jmp L0000 jmp L0000 jmp L00A9 jmp L0000 jmp L0000 jmp L0000 jmp L0000 jmp L0000 jmp L0000 jmp L0000 jmp L0000 jmp L008F jmp L0000 jmp L0000 nop _reset: cli clr r30 out p1C,r30 ldi r31,k01 out p3B,r31 out p3B,r30 out p35,r30 ldi r31,k18 out p21,r31 out p21,r30 ldi r24,k0D ldi r26,k02 clr r27 L0038: st X+,r30 dec r24 brne L0038 ldi r24,k00 ldi r25,k04 ldi r26,k60 L003E: st X+,r30 sbiw r24,k01 brne L003E ldi r30,k54 ldi r31,k00 L0043: lpm r24,Z+ lpm r25,Z+ sbiw r24,k00 breq L0053 lpm r26,Z+ lpm r27,Z+ lpm r0,Z+ lpm r1,Z+ movw r22,r30 movw r30,r0 L004D: lpm r0,Z+ st X+,r0 sbiw r24,k01 brne L004D movw r30,r22 rjmp L0043 L0053: ldi r30,k5F out p3D,r30 ldi r30,k04 out p3E,r30 ldi r28,k60 ldi r29,k01 jmp L00D4 L005B: st -Y,r30 in r30,p3F st -Y,r30 sbi p18,b0 sbic p13,b4 rjmp L0067 inc r4 ldi r30,k07 cp r30,r4 brcc L0066 clr r4 L0066: rjmp L006C L0067: dec r4 ldi r30,k07 cp r30,r4 brcc L006C mov r4,r30 L006C: ldi r30,kFF out p2A,r30 ldi r30,k1E mov r7,r30 cbi p18,b0 ld r30,Y+ out p3F,r30 ld r30,Y+ reti L0075: st -Y,r30 in r30,p3F st -Y,r30 sbi p18,b1 sbic p13,b5 rjmp L0081 inc r5 ldi r30,k07 cp r30,r5 brcc L0080 clr r5 L0080: rjmp L0086 L0081: dec r5 ldi r30,k07 cp r30,r5 brcc L0086 mov r5,r30 L0086: ldi r30,kFF out p23,r30 ldi r30,k1E mov r8,r30 cbi p18,b1 ld r30,Y+ out p3F,r30 ld r30,Y+ L008F: st -Y,r30 in r30,p3F st -Y,r30 sbi p12,b0 sbic p13,b6 rjmp L009B inc r6 ldi r30,k07 cp r30,r6 brcc L009A clr r6 L009A: rjmp L00A0 L009B: dec r6 ldi r30,k07 cp r30,r6 brcc L00A0 mov r6,r30 L00A0: ldi r30,kFF out p28,r30 ldi r30,k1E mov r9,r30 cbi p12,b0 ld r30,Y+ out p3F,r30 ld r30,Y+ reti L00A9: st -Y,r30 in r30,p3F st -Y,r30 ldi r30,k0C out p32,r30 ldi r30,k00 cp r30,r7 brcc L00B3 dec r7 rjmp L00B6 L00B3: ldi r30,k32 out p2A,r30 sbi p18,b0 L00B6: ldi r30,k00 cp r30,r8 brcc L00BB dec r8 rjmp L00BE L00BB: ldi r30,k32 out p23,r30 sbi p18,b1 L00BE: ldi r30,k00 cp r30,r9 brcc L00C3 dec r9 rjmp L00C6 L00C3: ldi r30,k32 out p28,r30 sbi p12,b0 L00C6: ldi r30,k00 cp r30,r7 brne L00CD cp r30,r8 brne L00CD cp r30,r9 breq L00CF L00CD: sbi p12,b1 rjmp L00D0 L00CF: cbi p12,b1 L00D0: ld r30,Y+ out p3F,r30 ld r30,Y+ reti L00D4: ldi r30,k00 out p1B,r30 ldi r30,kFF out p1A,r30 ldi r30,k04 out p18,r30 ldi r30,kFB out p17,r30 ldi r30,kF0 out p15,r30 ldi r30,k0F out p14,r30 ldi r30,k4C out p12,r30 ldi r30,kB3 out p11,r30 ldi r30,k00 out p33,r30 ldi r30,k0C out p32,r30 ldi r30,kF4 out p3C,r30 ldi r30,k05 out p33,r30 ldi r30,kA1 out p2F,r30 ldi r30,k0B out p2E,r30 ldi r30,k00 out p2D,r30 out p2C,r30 out p27,r30 out p26,r30 out p2B,r30 out p2A,r30 out p29,r30 out p28,r30 out p22,r30 ldi r30,k6C out p25,r30 ldi r30,k00 out p24,r30 out p23,r30 in r30,p3B ori r30,kE0 out p3B,r30 ldi r30,k0A out p35,r30 ldi r30,k00 out p34,r30 ldi r30,kE0 out p3A,r30 ldi r30,k01 out p39,r30 ldi r30,k80 out p08,r30 ldi r30,k00 out p30,r30 sei ldi r30,k32 out p2A,r30 out p23,r30 out p28,r30 L0113: mov r30,r4 call L01E8 brne L011C sbi p1B,b3 cbi p1B,b2 cbi p1B,b1 cbi p1B,b0 rjmp L0156 L011C: cpi r30,k01 ldi r26,k00 cpc r31,r26 brne L0125 sbi p1B,b3 sbi p1B,b2 cbi p1B,b1 cbi p1B,b0 rjmp L0156 L0125: cpi r30,k02 ldi r26,k00 cpc r31,r26 brne L012E cbi p1B,b3 sbi p1B,b2 cbi p1B,b1 cbi p1B,b0 rjmp L0156 L012E: cpi r30,k03 ldi r26,k00 cpc r31,r26 brne L0137 cbi p1B,b3 sbi p1B,b2 sbi p1B,b1 cbi p1B,b0 rjmp L0156 L0137: cpi r30,k04 ldi r26,k00 cpc r31,r26 brne L0140 cbi p1B,b3 cbi p1B,b2 sbi p1B,b1 cbi p1B,b0 rjmp L0156 L0140: cpi r30,k05 ldi r26,k00 cpc r31,r26 brne L0148 cbi p1B,b3 cbi p1B,b2 sbi p1B,b1 rjmp L0155 L0148: cpi r30,k06 ldi r26,k00 cpc r31,r26 brne L014E cbi p1B,b3 rjmp L0153 L014E: cpi r30,k07 ldi r26,k00 cpc r31,r26 brne L0156 sbi p1B,b3 L0153: cbi p1B,b2 cbi p1B,b1 L0155: sbi p1B,b0 L0156: mov r30,r5 call L01E8 brne L015F sbi p1B,b7 cbi p1B,b6 cbi p1B,b5 cbi p1B,b4 rjmp L0199 L015F: cpi r30,k01 ldi r26,k00 cpc r31,r26 brne L0168 sbi p1B,b7 sbi p1B,b6 cbi p1B,b5 cbi p1B,b4 rjmp L0199 L0168: cpi r30,k02 ldi r26,k00 cpc r31,r26 brne L0171 cbi p1B,b7 sbi p1B,b6 cbi p1B,b5 cbi p1B,b4 rjmp L0199 L0171: cpi r30,k03 ldi r26,k00 cpc r31,r26 brne L017A cbi p1B,b7 sbi p1B,b6 sbi p1B,b5 cbi p1B,b4 rjmp L0199 L017A: cpi r30,k04 ldi r26,k00 cpc r31,r26 brne L0183 cbi p1B,b7 cbi p1B,b6 sbi p1B,b5 cbi p1B,b4 rjmp L0199 L0183: cpi r30,k05 ldi r26,k00 cpc r31,r26 brne L018B cbi p1B,b7 cbi p1B,b6 sbi p1B,b5 rjmp L0198 L018B: cpi r30,k06 ldi r26,k00 cpc r31,r26 brne L0191 cbi p1B,b7 rjmp L0196 L0191: cpi r30,k07 ldi r26,k00 cpc r31,r26 brne L0199 sbi p1B,b7 L0196: cbi p1B,b6 cbi p1B,b5 L0198: sbi p1B,b4 L0199: mov r30,r6 call L01E8 brne L01A2 sbi p15,b3 cbi p15,b2 cbi p15,b1 cbi p15,b0 rjmp L01DC L01A2: cpi r30,k01 ldi r26,k00 cpc r31,r26 brne L01AB sbi p15,b3 sbi p15,b2 cbi p15,b1 cbi p15,b0 rjmp L01DC L01AB: cpi r30,k02 ldi r26,k00 cpc r31,r26 brne L01B4 cbi p15,b3 sbi p15,b2 cbi p15,b1 cbi p15,b0 rjmp L01DC L01B4: cpi r30,k03 ldi r26,k00 cpc r31,r26 brne L01BD cbi p15,b3 sbi p15,b2 sbi p15,b1 cbi p15,b0 rjmp L01DC L01BD: cpi r30,k04 ldi r26,k00 cpc r31,r26 brne L01C6 cbi p15,b3 cbi p15,b2 sbi p15,b1 cbi p15,b0 rjmp L01DC L01C6: cpi r30,k05 ldi r26,k00 cpc r31,r26 brne L01CE cbi p15,b3 cbi p15,b2 sbi p15,b1 rjmp L01DB L01CE: cpi r30,k06 ldi r26,k00 cpc r31,r26 brne L01D4 cbi p15,b3 rjmp L01D9 L01D4: cpi r30,k07 ldi r26,k00 cpc r31,r26 brne L01DC sbi p15,b3 L01D9: cbi p15,b2 cbi p15,b1 L01DB: sbi p15,b0 L01DC: rjmp L0113 L01DD: rjmp L01DD L01DE: sbis p0B,b7 rjmp L01DE in r30,p0C ret L01E2: sbis p0B,b5 rjmp L01E2 ldd r30,Y+k00 out p0C,r30 adiw r28,k01 ret L01E8: ldi r31,k00 sbiw r30,k00 ret 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.