Изучение уязвимостей электронных систем.
 
key programming immo tools emergency start device программаторы ключа заводилки Кодграббер штатных охранных систем, toyota, lexus, subaru.

Вернуться   Изучение уязвимостей электронных систем > Для начинающих > Новички

Новички Раздел для новичков. Что такое кодграббер, ретранслятор, подмена кода.

Ответ
 
Опции темы
Старый 02.06.2010, 13:20   #61
Хекс
начинающий фрикер
 
Аватар для Хекс
 
Регистрация: 18.03.2010
Сообщений: 686
Поблагодарил: 56
Поблагодарили 131 раз в 106 сообщениях
Хекс стоит на развилке
По умолчанию

Цитата:
Сообщение от sputnik75 Посмотреть сообщение
Запусти программу MLAB, во вкладке "configure" выберем пункт "Select device" и выбери контроллер,
во вкладке View выберем "Program memory" - откроется окошко, во вкладке "File" выбери "Import" и укажи на hex файл и в открытом ранее окошке он и будет, там ты его редактируй как хо...( в асемблере или в кодах - для переключения снизу окна есть кнопки) и сохраняем результат "file - export"

Да спасибо всё получается раньше разными програмами HEX ASM ASM HEX куча матюков получалось.
Хекс вне форума   Ответить с цитированием
Старый 28.09.2010, 10:33   #62
RA3VIE
редкий гость
 
Регистрация: 01.07.2009
Сообщений: 61
Поблагодарил: 15
Поблагодарили 19 раз в 7 сообщениях
RA3VIE стоит на развилке
По умолчанию

Подскажите: какой функцией можно сравнить число в регистре с заданным диапазоном чисел? Скажем: если число "в диапазоне" то делаем что-то, если "нет", то сверяем со следующим диапазоном.
Спасибо!
RA3VIE вне форума   Ответить с цитированием
Старый 28.09.2010, 11:18   #63
Nicke
редкий гость
 
Аватар для Nicke
 
Регистрация: 09.04.2009
Адрес: Зарица
Сообщений: 60
Поблагодарил: 2
Поблагодарили 6 раз в 6 сообщениях
Nicke стоит на развилке
По умолчанию

Если это делать для avr то это будет выгледить следующим образом:

помещаем в регистр число:
ldi r20,0x30
Пусть проверка будет на диапазон от 0x34 до 0x70
Сравниваем с константой
cpi r20,0x34
теперь в зависимости от флагов будем осуществлять переход
т.е. если число меньше сравниваемого то число не входит в диапазон
я использовал беззнаковую команду вней, если меньше то переходим на метку kuda1
brlo kuda1
если нет то проверяме вторую границу, так как больше либо равно то +1 (хотя надо знать четко границы)
cpi r20,0x71
brsh kuda1 ;Конечно не обязательно идти на kuda1 можно и вдругое место все зависит от задачи
А здесь команды если число попало в диапазон

kuda1:
А здесь может быть проверка другого диапазона

А для PIC то же самое только команды поменяются а логика она одна.


Если клин выбивают клином, то рак надо лечить раком.
Nicke вне форума   Ответить с цитированием
Старый 28.09.2010, 12:11   #64
RA3VIE
редкий гость
 
Регистрация: 01.07.2009
Сообщений: 61
Поблагодарил: 15
Поблагодарили 19 раз в 7 сообщениях
RA3VIE стоит на развилке
По умолчанию

Цитата:
Сообщение от Nicke Посмотреть сообщение
Если это делать для avr то это будет выгледить следующим образом:

помещаем в регистр число:
ldi r20,0x30
Пусть проверка будет на диапазон от 0x34 до 0x70
Сравниваем с константой
cpi r20,0x34
теперь в зависимости от флагов будем осуществлять переход
т.е. если число меньше сравниваемого то число не входит в диапазон
я использовал беззнаковую команду вней, если меньше то переходим на метку kuda1
brlo kuda1
если нет то проверяме вторую границу, так как больше либо равно то +1 (хотя надо знать четко границы)
cpi r20,0x71
brsh kuda1 ;Конечно не обязательно идти на kuda1 можно и вдругое место все зависит от задачи
А здесь команды если число попало в диапазон

kuda1:
А здесь может быть проверка другого диапазона

А для PIC то же самое только команды поменяются а логика она одна.

Ну я примерно так себе это и представлял!
Если не секрет: какие команды используются для этого в PICах (точнее команды сравнения на больше или меньше)
RA3VIE вне форума   Ответить с цитированием
Старый 28.09.2010, 12:48   #65
Nicke
редкий гость
 
Аватар для Nicke
 
Регистрация: 09.04.2009
Адрес: Зарица
Сообщений: 60
Поблагодарил: 2
Поблагодарили 6 раз в 6 сообщениях
Nicke стоит на развилке
По умолчанию

В пиках 16 команды сравнения нет. Но логика не меняется. Сравнение чисел (больше/меньше) производится командами сложения/вычитания ресультат в бит C и Z.

Сравнение 16 разрядных целых беззнаковых чисел
Результат ставнения:
x = y Z = 1, C = 1
x > y Z = 0, C = 0
x < y Z = 0, C = 1

movfw x1
subwf y1,w
skpz
return
movfw x0
subwf y0,w
return


Вариант 2.
movfw x1
subwf y1,w
skpc
goto x_big_y
skpz
goto y_big_x

; старшие байты равны, сравниваем младшие
movfw x0
subwf y0,w
skpc
goto x_big_y
skpz
goto y_big_x

; x = y
x_equ_y:
...

; x > y
x_big_y:
...

; y > x
y_big_x:
...

Вообще есть система команд для PIC
[Ссылки могут видеть только зарегистрированные пользователи. ]


Если клин выбивают клином, то рак надо лечить раком.

Последний раз редактировалось Nicke; 28.09.2010 в 12:50. Причина: Вот еще что хочеться сказать
Nicke вне форума   Ответить с цитированием
Старый 28.09.2010, 16:47   #66
RA3VIE
редкий гость
 
Регистрация: 01.07.2009
Сообщений: 61
Поблагодарил: 15
Поблагодарили 19 раз в 7 сообщениях
RA3VIE стоит на развилке
По умолчанию

Вроде всё правильно написал, всё равно не работает.

;**************************** Настраиваем модуль АЦП

MOVLW b'11101011' ; опорное напряжение равно напряжению микроконтроллера, используется только вход AN0, правое выравнивание
MOVWF ADCON1, 0
MOVLW b'11000001' ; делитель - Fosc/32, выбираем на мультиплексор канал AN0, и включаем АЦП
MOVWF ADCON0, 0
BCF PIE1, ADIE, 0 ; прерывание использовать не будем


; ждем когда зарядиться конденсатор Chold (acquisition time=12,86мкс)
; на каждую команду требуется 200нсек (4/20000000), таким образом, 12,86/0,2=65 - столько команд потребуется, чтобы выдержать интервал в 12,86 мкс
; организуем программную задержку (пусть и будет погрешность, но она будет в сторону увеличения времени, а это не критично)


MOVLW 0x11
MOVWF temp, 0 ; счетчик циклов

Wait_aq:

NOP
NOP
DECFSZ temp, 1, 0 ; Цикл выполняется за 4-5 команд
BRA Wait_aq ; поэтому, грубо 4*17=72 команды


Start_ADC:

BSF ADCON0, GO_DONE, 0 ; старт преобразования
BTFSC ADCON0, GO_DONE, 0 ; ждем пока не сброситься данный бит
BRA $-2 ; возврат на одну команду назад (-2, потому что каждая команда занимает в памяти программ 2 байта)


;********************************** читаем результат

MOVFF ADRESH, ADC_value_h
MOVFF ADRESL, ADC_value_l

; измеряемый канал один – AN0, поэтому мультиплексор не трогаем
; ждем 2 периода Tad = 1,6*2/0,2 = 16 команд, пока заряжается конденсатор

MOVLW 0x04
MOVWF temp, 0 ; счетчик циклов


Wait_Chold:

NOP
NOP
DECFSZ temp, 1, 0 ; Цикл выполняется за 4-5 команд
BRA Wait_Chold ; поэтому, грубо 4*4=16 команд
CLRWDT
;Результат ставнения:
;x = y Z = 1, C = 1
;x > y Z = 0, C = 0
;x < y Z = 0, C = 1



movlw 0x82 ;x Поместили нижнюю границу диапазона в W
subwf ADC_value_l,w ;y Вычитаем из неё число, полученное из АЦП
skpc ;Если бит "с" установлен, уходим на проверку бита "z"
goto _BAT_2 ;x_big_y ;Если бит "с" не установлен, уходим на метку _BAT_2
skpz ;Если бит "z" установлен, уходим на верх АЦП
goto _BAT_3 ;y_big_x ;Если бит "z" не установлен, уходим на метку _BAT_3

goto Start_ADC
;************************************************* ************************

Объясните дураку, что я не так делаю?
Камень PIC18F252.

Последний раз редактировалось RA3VIE; 28.09.2010 в 17:17.
RA3VIE вне форума   Ответить с цитированием
Старый 28.09.2010, 18:02   #67
Nicke
редкий гость
 
Аватар для Nicke
 
Регистрация: 09.04.2009
Адрес: Зарица
Сообщений: 60
Поблагодарил: 2
Поблагодарили 6 раз в 6 сообщениях
Nicke стоит на развилке
По умолчанию

Ну во первых: у 18 пиков есть команды сравнения вот: [Ссылки могут видеть только зарегистрированные пользователи. ]. Не работает что именно?


Если клин выбивают клином, то рак надо лечить раком.
Nicke вне форума   Ответить с цитированием
Старый 28.09.2010, 18:11   #68
RA3VIE
редкий гость
 
Регистрация: 01.07.2009
Сообщений: 61
Поблагодарил: 15
Поблагодарили 19 раз в 7 сообщениях
RA3VIE стоит на развилке
По умолчанию

Цитата:
Сообщение от Nicke Посмотреть сообщение
Ну во первых: у 18 пиков есть команды сравнения вот: [Ссылки могут видеть только зарегистрированные пользователи. ]. Не работает что именно?

Конкретно: при изменении числа считываемого с АЦП - ни какой реакции не происходит! Всегда отправляет на метку _BAT_2. Или сравнивает неправильно, или бит "с" не устанавливает. Как проверить непойму!
За ссылку спасибо, изучаю!
RA3VIE вне форума   Ответить с цитированием
Старый 28.09.2010, 18:29   #69
Nicke
редкий гость
 
Аватар для Nicke
 
Регистрация: 09.04.2009
Адрес: Зарица
Сообщений: 60
Поблагодарил: 2
Поблагодарили 6 раз в 6 сообщениях
Nicke стоит на развилке
По умолчанию

Цитата:
Сообщение от RA3VIE Посмотреть сообщение
Конкретно: при изменении числа считываемого с АЦП - ни какой реакции не происходит! Всегда отправляет на метку _BAT_2. Или сравнивает неправильно, или бит "с" не устанавливает. Как проверить непойму!
За ссылку спасибо, изучаю!

Ну если уходит на bat_2 то значит не установлен


Если клин выбивают клином, то рак надо лечить раком.
Nicke вне форума   Ответить с цитированием
Старый 28.09.2010, 18:41   #70
bumer525
начинающий фрикер
 
Аватар для bumer525
 
Регистрация: 31.12.2008
Сообщений: 648
Поблагодарил: 55
Поблагодарили 236 раз в 93 сообщениях
bumer525 скоро станет знаменитым(-ой)
По умолчанию

Цитата:
Сообщение от RA3VIE Посмотреть сообщение
Всегда отправляет на метку _BAT_2.

На первый взгляд:
1. Результат АЦП 10 бит => L=8bit и H=2bit короче используется 2 байта
2. А сравнение ты выполняешь только с value_l
bumer525 вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кодрабберы, FAQ для начинающих. exchange Новички 59 24.09.2014 07:47
"С" (Си) для начинающих, в вопросах и ответах. Piratcom Новички 9 05.01.2011 20:44
Для начинающих test Сотовые системы 5 15.08.2008 00:50
Для начинающих test Автомобили 286 20.12.2007 01:30


Текущее время: 07:41. Часовой пояс GMT +4.


Перевод: zCarot