Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

Проблем с изписване "двоичен в двоично-десетичен код&qu
http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=2850
Страница 1 от 1

Автор:  me40 [ Вто Сеп 05, 2006 2:56 am ]
Заглавие:  Проблем с изписване "двоичен в двоично-десетичен код&qu

Приложил съм asm кода на програмата, с който немога да се справя.
Използвам готов макрос за превръщане от двоичен в двоично-десетичен код и съответно изписването му в/у LCD. Получава се често срещаното явление :"На симулация с MPLAB работи, но в действителност...НЕ"
Като пример зареждам за изписване числото "C9" или 201.
Ето и проблема:
Ако забраня изписването на стотиците (вслучая числото 2) с ";" пред командите, десетиците и единиците се изписват. Ако "забраня" десетиците и единиците, стотиците се изписват.
Но да се изпише цялото число - неможе ! Пробвах с различни числа - макроса работи, но незнам защо с цялото число нестава. Ако може и PREDATORa да си каже тежката дума, ще съм много благодарен :D

Прикачени файлове:
lcd.txt [5.08 KiB]
218 пъти

Автор:  Predator_MF [ Вто Сеп 05, 2006 4:27 am ]
Заглавие: 

Абе голяма е боза тоя код, незнам откъде ги сваляш тези главоблъсканици, обаче трябва да ти кажа, че обръщането в десетичен код е далеч по-просто от написаното. Първо, в кода няма нужда от три таблици с числа (и защо са три след като може само с една?!?!)...просто добавяш 0x30 към съответната цифра и получаваш ASCII кода на цифрата (цифрата 0 в ASCII е 0x30, 1 е 0x31 и пр..), остава ти само простата задачка да разбереш колко пъти по 100 има в числото (като разделиш на 100), колко пъти има 10 в остатъка от деленето със 100...и накрая просто изписваш остатъка като прибавиш към него 0x30... Напиши си кода сам иначе въпросите ти ще стават все повече

Автор:  me40 [ Вто Сеп 05, 2006 8:30 am ]
Заглавие: 

Да бе ! Чак сега стоплих за идеята. Sorry !
:D :D :D. То ама наистина е мн. просто !

Автор:  zaphod [ Вто Сеп 05, 2006 8:45 am ]
Заглавие: 

предаторе, обръщането в десетичен код му е най-простотото възможно, макар че е написано за фиксиран брой цифри. първо вади по 100 и инкрементира цифрата за стотиците, после вади по десет и инкрементира десетиците, и квото остане е за единиците. тук нещо ме учудва обаче. човека твърди че макроса работи, а аз се учудвам от това. 100тиците и десетиците се вадят до получаване на отрицателен резултат, което ще рече че за следващия етап числото което остава в DIG_1не е правилно. например ако подадем 001 - вадим 100, получаваме 9Д (157) и минаваме на десетиците, без числото да е коригирано.

Автор:  me40 [ Вто Сеп 05, 2006 10:41 am ]
Заглавие: 

Пълна безмислица е да се използват 3 таблици както казва PREDATORa.
На симулация в MPLAB работи, но в действителност както описах при извеждане в/у lcd на трите символа работата се оплесква въпреки допълнително позициониране на курсора преди всяко извеждане !
Това немога да си го обясня и точно затова повдигнах темата !!!
Заедно и поотделно х1 и х10 - няма проблеми в/у LCD
х100 - се извеждат , но само самостоятелно .

Автор:  bateAz [ Вто Сеп 05, 2006 10:59 am ]
Заглавие: 

Добре де, за да си сигурен къде точно ти е проблемът, защо не си запишеш трите знака от числото в паметта и да видиш какво е сметнал? Толкова трудно ли е да се направят няколко междинни проверки какви ги е на*рал софтът?

Автор:  me40 [ Вто Сеп 05, 2006 11:12 am ]
Заглавие: 

Ами тък като съм нов в тази област (2-3 седмичен), ще трябва да прочета довечера, къде точно се прави записа (кои адреси в EPROMA)а и ще пробвам, но според мен софта смята правилно щом при самостоятелно извеждане на числата няма проблеми. Пробвах снощи с активиране на TMR1 като брояч и цъкайки на входа се натрупва и извежда в/у LCD, но не и цялото число. Или само х1 и х10 или х100 !

Автор:  bateAz [ Вто Сеп 05, 2006 11:27 am ]
Заглавие: 

Какъв EEPROM бе, младежо? Запиши ги някъде в RAM-a!

Автор:  me40 [ Вто Сеп 05, 2006 11:53 am ]
Заглавие: 

В рама нали ги виждам при симулация с MPLAB или нещо нестоплих !?!?!

Автор:  bateAz [ Вто Сеп 05, 2006 1:16 pm ]
Заглавие: 

me40 написа:
В рама нали ги виждам при симулация с MPLAB или нещо нестоплих !?!?!


Заеби симулаторите. Често лъжат. Пробвай дебъгер - ICD2 за PIC, или нещо от този род, не знам какъв ти е процесорът. Дебъг със симулатор е като секс със силиконова вагина. Направи го със жена!

Автор:  me40 [ Вто Сеп 05, 2006 9:35 pm ]
Заглавие: 

Егати убедих се, че е така. Е немогат ли да ги направят да нелъжат......!?!?!. Явно не...поне засега.
btw След като съкратих ненужните 2-таблици и премахнах допълнителното позициониране на курсора, работата изпече..... !
п.с. КАК МЕ Е ЛЪГАЛ СИМУЛАТОРА. Вече имам 1 на ум!!!!

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/