Помогите разобратся с кодом для PIC12F629

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
forgid
Родился
Сообщения: 15
Зарегистрирован: Вт фев 16, 2010 15:50:00

Помогите разобратся с кодом для PIC12F629

Сообщение forgid »

Дизасемблировал прошивку для 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 возврат
Последний раз редактировалось forgid Пн мар 29, 2010 12:29:05, всего редактировалось 2 раза.
Реклама
Аватара пользователя
testerplus
Встал на лапы
Сообщения: 130
Зарегистрирован: Пн авг 24, 2009 10:41:16
Откуда: SPb
Контактная информация:

Re: Помогите разобратся с кодом для PIC12F629

Сообщение testerplus »

Сравнение двух двухбатовых чисел: [21]:[20] и [23]:[22]. Младший байт второго числа заполняется при входе в функцию.

met1 - проверка на 21:20 >= 23:22
met2 - проверка на 21:20 > 23:22
met3 - проверка на 21:20 <= 23:22

Результат = FF, если условие выполняется, или 0, если не выполняется.

(P.S. У Вас комментарии не соответствуют ассемблеру.)
Реклама
forgid
Родился
Сообщения: 15
Зарегистрирован: Вт фев 16, 2010 15:50:00

Re: Помогите разобратся с кодом для PIC12F629

Сообщение forgid »

спасибо буду дальше разбиратся
коментарий поправил
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Помогите разобратся с кодом для PIC12F629

Сообщение dosikus »

forgid Это часом не термометр на дисплее от Nokia 3310 и DS18B20?
Реклама
Эиком - электронные компоненты и радиодетали
forgid
Родился
Сообщения: 15
Зарегистрирован: Вт фев 16, 2010 15:50:00

Re: Помогите разобратся с кодом для PIC12F629

Сообщение forgid »

Это устройство управляющее нагрузкой , командами от IR пульта, по идее можно запрограмировать комманду от любого пульта.
Вот хочу разобратся как сие работает и немного изменить алгоритм под свои нужды.
Если кому интерестно могу скинуть .asm с комментариями где я разобрался , может кто чего добавит или исправит.
Код не большой но занимаюсь им отсилы 30 минут в день и не каждый день, да и учусь попутно системе команд PIC так как ниразу с ними не сталкивался
Реклама
Alex-xxxx
Грызет канифоль
Сообщения: 287
Зарегистрирован: Сб янв 23, 2010 12:58:10
Откуда: Москва

Re: Помогите разобратся с кодом для PIC12F629

Сообщение Alex-xxxx »

Если кому интерестно могу скинуть .asm с комментариями где я разобрался , может кто чего добавит или исправит.
Мне стало интересно, если не затруднит...
Реклама
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»