Дизасемблировал прошивку для PIC12f629, начал разбиратся что к чему и уперся в кусок кода , подпрограмма частенько вызывается из других подпрограмм, думал что задержка но изучив понял что ничего не понял.
Может кто свежим взглядом оценит. met1....met3, метки по которым вызывают процедуры эту подпрограмму отличаются константой входа в подпрограмму, тоисть если бы задержка то понятно что разное время задержки, но тут какаято проверка чтоли
met1: 61 003C 00A2 MOVWF 0x22 ; сохраняем содержимое аккумулятора
62 003D 3003 MOVLW 0x3 ; константу в аккумулятор
63 003E 2845 GOTO 0x45
met2: 64 003F 00A2 MOVWF 0x22
65 0040 3001 MOVLW 0x1
66 0041 2845 GOTO 0x45
met3: 67 0042 00A2 MOVWF 0x22
68 0043 3006 MOVLW 0x6
69 0044 2845 GOTO 0x45
70 0045 00A8 MOVWF 0x28 ; начало
71 0046 0823 MOVF 0x23, W ; содержимое аккумулятора в 0х23 содержимое 0х23 в аккумулятор
72 0047 0221 SUBWF 0x21, W ;вычитаем из 0х21 (что туда попадает пока не разобрался)
73 0048 1D03 BTFSS 0x3, 0x2 ;если результат не равен 0 то на 0х4с
74 0049 284C GOTO 0x4c
75 004A 0822 MOVF 0x22, W ; если равен 0
76 004B 0220 SUBWF 0x20, W
77 004C 3004 MOVLW 0x4
78 004D 1803 BTFSC 0x3, 0
79 004E 3001 MOVLW 0x1
80 004F 1903 BTFSC 0x3, 0x2
81 0050 3002 MOVLW 0x2
82 0051 0528 ANDWF 0x28, W
83 0052 1D03 BTFSS 0x3, 0x2
84 0053 30FF MOVLW 0xff
85 0054 2855 GOTO 0x55
86 0055 1383 BCF 0x3, 0x7
87 0056 1303 BCF 0x3, 0x6
88 0057 1283 BCF 0x3, 0x5 ;переключаем в 0 банк
89 0058 0064 CLRWDT
90 0059 0008 RETURN возврат
Помогите разобратся с кодом для PIC12F629
Помогите разобратся с кодом для PIC12F629
Последний раз редактировалось forgid Пн мар 29, 2010 12:29:05, всего редактировалось 2 раза.
- Реклама
- testerplus
- Встал на лапы
- Сообщения: 130
- Зарегистрирован: Пн авг 24, 2009 10:41:16
- Откуда: SPb
- Контактная информация:
Re: Помогите разобратся с кодом для PIC12F629
Сравнение двух двухбатовых чисел: [21]:[20] и [23]:[22]. Младший байт второго числа заполняется при входе в функцию.
met1 - проверка на 21:20 >= 23:22
met2 - проверка на 21:20 > 23:22
met3 - проверка на 21:20 <= 23:22
Результат = FF, если условие выполняется, или 0, если не выполняется.
(P.S. У Вас комментарии не соответствуют ассемблеру.)
met1 - проверка на 21:20 >= 23:22
met2 - проверка на 21:20 > 23:22
met3 - проверка на 21:20 <= 23:22
Результат = FF, если условие выполняется, или 0, если не выполняется.
(P.S. У Вас комментарии не соответствуют ассемблеру.)
Re: Помогите разобратся с кодом для PIC12F629
спасибо буду дальше разбиратся
коментарий поправил
коментарий поправил
Re: Помогите разобратся с кодом для PIC12F629
forgid Это часом не термометр на дисплее от Nokia 3310 и DS18B20?
Re: Помогите разобратся с кодом для PIC12F629
Это устройство управляющее нагрузкой , командами от IR пульта, по идее можно запрограмировать комманду от любого пульта.
Вот хочу разобратся как сие работает и немного изменить алгоритм под свои нужды.
Если кому интерестно могу скинуть .asm с комментариями где я разобрался , может кто чего добавит или исправит.
Код не большой но занимаюсь им отсилы 30 минут в день и не каждый день, да и учусь попутно системе команд PIC так как ниразу с ними не сталкивался
Вот хочу разобратся как сие работает и немного изменить алгоритм под свои нужды.
Если кому интерестно могу скинуть .asm с комментариями где я разобрался , может кто чего добавит или исправит.
Код не большой но занимаюсь им отсилы 30 минут в день и не каждый день, да и учусь попутно системе команд PIC так как ниразу с ними не сталкивался
- Реклама
Re: Помогите разобратся с кодом для PIC12F629
Мне стало интересно, если не затруднит...Если кому интерестно могу скинуть .asm с комментариями где я разобрался , может кто чего добавит или исправит.


