| Микроконтролери и електроника 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 да си каже тежката дума, ще съм много благодарен
|
|||
| Автор: | 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 ! |
|
| Автор: | 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 ] | |||||||||
| Заглавие: | ||||||||||
Заеби симулаторите. Често лъжат. Пробвай дебъгер - 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/ |
|