Отговори на тема  [ 11 мнения ] 
Проблем с изписване "двоичен в двоично-десетичен код&qu 
Автор Съобщение
Ранг: Новодошъл
Ранг: Новодошъл

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


Прикачени файлове:
lcd.txt [5.08 KiB]
218 пъти
Вто Сеп 05, 2006 2:56 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Окт 07, 2004 1:22 pm
Мнения: 1949
Местоположение: София
Мнение 
Абе голяма е боза тоя код, незнам откъде ги сваляш тези главоблъсканици, обаче трябва да ти кажа, че обръщането в десетичен код е далеч по-просто от написаното. Първо, в кода няма нужда от три таблици с числа (и защо са три след като може само с една?!?!)...просто добавяш 0x30 към съответната цифра и получаваш ASCII кода на цифрата (цифрата 0 в ASCII е 0x30, 1 е 0x31 и пр..), остава ти само простата задачка да разбереш колко пъти по 100 има в числото (като разделиш на 100), колко пъти има 10 в остатъка от деленето със 100...и накрая просто изписваш остатъка като прибавиш към него 0x30... Напиши си кода сам иначе въпросите ти ще стават все повече


Вто Сеп 05, 2006 4:27 am
Профил
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Пет Авг 25, 2006 11:31 pm
Мнения: 168
Местоположение: Русе
Мнение 
Да бе ! Чак сега стоплих за идеята. Sorry !
:D :D :D. То ама наистина е мн. просто !


Вто Сеп 05, 2006 8:30 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Юли 24, 2005 10:28 am
Мнения: 2658
Мнение 
предаторе, обръщането в десетичен код му е най-простотото възможно, макар че е написано за фиксиран брой цифри. първо вади по 100 и инкрементира цифрата за стотиците, после вади по десет и инкрементира десетиците, и квото остане е за единиците. тук нещо ме учудва обаче. човека твърди че макроса работи, а аз се учудвам от това. 100тиците и десетиците се вадят до получаване на отрицателен резултат, което ще рече че за следващия етап числото което остава в DIG_1не е правилно. например ако подадем 001 - вадим 100, получаваме 9Д (157) и минаваме на десетиците, без числото да е коригирано.


Вто Сеп 05, 2006 8:45 am
Профил
Ранг: Новодошъл
Ранг: Новодошъл

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


Вто Сеп 05, 2006 10:41 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Сеп 26, 2004 4:11 pm
Мнения: 3750
Местоположение: София
Мнение 
Добре де, за да си сигурен къде точно ти е проблемът, защо не си запишеш трите знака от числото в паметта и да видиш какво е сметнал? Толкова трудно ли е да се направят няколко междинни проверки какви ги е на*рал софтът?


Вто Сеп 05, 2006 10:59 am
Профил ICQ
Ранг: Новодошъл
Ранг: Новодошъл

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


Вто Сеп 05, 2006 11:12 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Сеп 26, 2004 4:11 pm
Мнения: 3750
Местоположение: София
Мнение 
Какъв EEPROM бе, младежо? Запиши ги някъде в RAM-a!


Вто Сеп 05, 2006 11:27 am
Профил ICQ
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Пет Авг 25, 2006 11:31 pm
Мнения: 168
Местоположение: Русе
Мнение 
В рама нали ги виждам при симулация с MPLAB или нещо нестоплих !?!?!


Вто Сеп 05, 2006 11:53 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Сеп 26, 2004 4:11 pm
Мнения: 3750
Местоположение: София
Мнение 
me40 написа:
В рама нали ги виждам при симулация с MPLAB или нещо нестоплих !?!?!


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


Вто Сеп 05, 2006 1:16 pm
Профил ICQ
Ранг: Новодошъл
Ранг: Новодошъл

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


Вто Сеп 05, 2006 9:35 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 11 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 2 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни