|
ммплаб и пик №2 |
|
|
|
 |
Ответов
|
Jul 18 2008, 20:57
|
Знающий
   
Группа: Свой
Сообщений: 600
Регистрация: 27-05-05
Пользователь №: 5 482

|
Цитата(Евгений Германович @ Jul 18 2008, 17:58)  Это похоже на глюк контроллера. имхо ошибка днк. уж что-что, а с арифметикой у ПИК проблем не было. приведите исходники хотя бы. и если уж пишите в хексе одни цифры, то и для других указывайте в каком формате. а вообще все правильно - читайте даташит.
|
|
|
|
|
Jul 19 2008, 06:01
|

Профессионал
    
Группа: Свой
Сообщений: 1 079
Регистрация: 24-06-07
Из: г.Екатеринбург
Пользователь №: 28 654

|
Цитата(dac @ Jul 18 2008, 23:57)  имхо ошибка днк. уж что-что, а с арифметикой у ПИК проблем не было. приведите исходники хотя бы. и если уж пишите в хексе одни цифры, то и для других указывайте в каком формате. а вообще все правильно - читайте даташит. Да нет не правильно.И в даташите по этому поводу полная тишина. Если хотите текст,то пожалуйста ;пп перевода HEX в DEC ;вход BBNDEC-число в HEX формате ;выход CHBD-старший,CLBD-младший байты десятичного числа BINDEC: GLOBAL BINDEC MOVLB 0 CLRF CHBD,BANKED CLRF CLBD,BANKED MOVLW 08H MOVWF RBINDEC,BANKED ;счетчик ; MET: RLCF BBNDEC,F,BANKED MOVF CLBD,W,BANKED ADDWFC CLBD,W,BANKED DAW ;здесь сбросится флаг переноса. MOVWF CLBD,BANKED MOVF CHBD,W,BANKED ADDWFC CHBD,W,BANKED ; DAW MOVWF CHBD,BANKED ; DECFSZ RBINDEC,F,BANKED GOTO MET RETURN При прогоне в мплабе все хорошо и прекрасно,на реальном железе начиная со 160 и заканчивая 199 будет не совсем хорошо,вместо 1 в сотнях будет 0.
|
|
|
|
|
Jul 19 2008, 11:07
|

Профессионал
    
Группа: Свой
Сообщений: 1 079
Регистрация: 24-06-07
Из: г.Екатеринбург
Пользователь №: 28 654

|
Цитата(dac @ Jul 19 2008, 11:51)  в асме давно не писал, но по памяти - был такой глючек - если в предыдущих операциях флаг С был установлен, то при сложении, даже если не происходит переполнения, флаг остается установленным. лечил ручным сбросом флага. кажется так, но в деталях могу ошибаться (возможно это было вычитание, а флаг надо было наоборот устанавливать.. давно уже было). проверьте Это не глючок,а глючара Все не так просто.Если при сложении чисел в старшем полубайте образуется число <9 (и С устанавливается в 1)то при десятичной коррекции флаг сбрасывается -а это иначе как бл......м не назовеш. А если там более 9 то все нормально. Я тоже ни разу не сталкивался с подобными проблемами в Пиках: не на 16-й серии, не на 18-й таких проблем с арифметикой не было. Тем более с целочисленной. sad.gif Так что ищите грабли у себя. Проверьте- просуммируйте 80 и 80 и произведите десятичную коррекцию. Дб 60 и С=1 ,а для вышеупомянутого пика будет 60 и С=0 Если складывать 80 и 79 то р-тат будет 59 и С=1. Но мплаб всегда показывает С=1 для всех примеров.
|
|
|
|
|
Jul 19 2008, 18:18
|
Знающий
   
Группа: Свой
Сообщений: 600
Регистрация: 27-05-05
Пользователь №: 5 482

|
и все таки, с чего взяли, что неправильно? вот симулятор запросто может быть некорректен..
79h+80h = 255d -> при дополнении полубайтов(+6 для daw) просиходит переполнение обоих полубайтов, С=1 80h+80h = 256d = 0 -> при дополнении переполнения нет для обоих полубайтов, С=0
кажется это вполне корректное поведение для флага С - показвывать переполнение (т.е. при >9 в полубайте и добавлении 6 в соответсвии с командой происходит переполнение)
и еще раз повторюсь, если уж в тектсе смешиваете числа в разных форматах, ПОДПИСЫВАЙТЕ ФОРМАТ, имейте уважение к людям
ЗЫ: Микродип собственно написал все, эрраты читать надо, их для того и пишут
|
|
|
|
Сообщений в этой теме
Евгений Германович ммплаб и пик №2 Jul 18 2008, 13:58 МикроДИП Я тоже ни разу не сталкивался с подобными проблема... Jul 19 2008, 07:45 МикроДИП М-да, похоже что это действительно косяк кристалла... Jul 19 2008, 18:15 Евгений Германович Цитата(МикроДИП @ Jul 19 2008, 21:15) М-д... Jul 20 2008, 03:28  dac Цитата(Евгений Германович @ Jul 20 2008, 07... Jul 20 2008, 08:05   Евгений Германович Цитата(dac @ Jul 20 2008, 11:05) вообще т... Jul 20 2008, 08:51    dac может не совсем в тему, но почему древность 452?
... Jul 20 2008, 15:09     Евгений Германович Цитата(dac @ Jul 20 2008, 18:09) может не... Jul 21 2008, 12:20      Smen Установил тут версию MPLab 8.90 заместо 8.40.
Тепе... Jul 3 2013, 12:14       Dmitry Dubrovenko Цитата(Smen @ Jul 3 2013, 16:14) Это как-... Jul 3 2013, 17:44        Smen Цитата(Dmitry Dubrovenko @ Jul 3 2013, 21... Jul 4 2013, 10:04
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|