| Автор |
Съобщение |
|
Ки4о
Ранг: Форумен бог
Регистриран на: Съб Юли 22, 2006 9:50 pm Мнения: 1638
|
Струва ми се че имаш в предвид горния ми пост - но не съм Кирчо  Както и да е.Програмата преобразува 16 битово число в BCD,което ще рече от 0 до 65535(0000 - FFFF).Ами ако от преобразуването ти на 16 битовото ти АЦП резултата е 00АС(16) -> 00172(10) отделна програма ли ще пишеш.Като числото е малко,старшите разряди са 0.Пробва ли програмата на симулатора преди да зададеш въпроса или не ?Задай си няколко числа,виж как ги преобразува - после може да пиеш една бира,че нещо е топло навън,но не и преди да тестваш на симулатора 
|
| Сря Юни 06, 2007 1:22 pm |
|
 |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30686 Местоположение: София
|
А ти да не предлагаш да се ползва 10 битова аритметика ? Какъв е проблема че отговора е 16 битов, старшите 6 бита са нули винаги, какво съмнително има ?
|
| Сря Юни 06, 2007 7:35 pm |
|
 |
|
mash
Ранг: Новодошъл
Регистриран на: Пет Окт 27, 2006 6:23 pm Мнения: 162 Местоположение: Севлиево
|
Този код съм го програмирал в момента на PIC16F877A и изкарвам резултата на LCD и при +5V получавам число 65535.
Едно ниво по надолу(зададено с тример) и се получава 65278. Следващия резултат е: 65021?!?!
Т.е стъпката е числото 257?!!???!!!!!
Това е абсолютно неприемливо!!!
Резултата се изменя от 65535 през стъпка 257 до нула. Кое му е доброто на това ?????
|
| Сря Юни 06, 2007 11:57 pm |
|
 |
|
Dimitar
Ранг: Форумен бог
Регистриран на: Пет Ное 12, 2004 3:38 pm Мнения: 9103 Местоположение: Chicago, IL
|
Какво става, ако вместо подравнен в дясно, резултата ти е сетъпнат да е подравнен в ляво  .
|
| Чет Юни 07, 2007 12:07 am |
|
 |
|
tropper
Ранг: Новодошъл
Регистриран на: Вто Сеп 20, 2005 10:01 pm Мнения: 128 Местоположение: София
|
Добре, ама защо стъпката му е 256, та даже и 257 ?!?!
Ако е ляво подравнен стъпката за (16-10) бита трябва да е 64 (2^6)...
Да не би да четеш от друг адрес и това в низшия байт да е нещо съвсем друго ?
_________________късото съединение прави силата ------------------------------- http://www.zahranvane.com/
|
| Чет Юни 07, 2007 12:50 am |
|
 |
|
Syrius-B
Ранг: Форумен бог
Регистриран на: Пон Яну 30, 2006 2:48 am Мнения: 1248 Местоположение: София
|
Щото и HEX to BCD го е изкопирал отнякъде и не знае какво точно прави
|
| Чет Юни 07, 2007 1:01 am |
|
 |
|
mash
Ранг: Новодошъл
Регистриран на: Пет Окт 27, 2006 6:23 pm Мнения: 162 Местоположение: Севлиево
|
Точно от тази тема го копирах и затова претендирам , че неработи правилно 
|
| Чет Юни 07, 2007 8:08 am |
|
 |
|
tropper
Ранг: Новодошъл
Регистриран на: Вто Сеп 20, 2005 10:01 pm Мнения: 128 Местоположение: София
|
Все пак листингите, които се дават от време на време са за да види питащия идеята, а пък и да има някои-друг бъг едва ли, човекът който помага, давайки идеята, трябва да носи вина за това.
_________________късото съединение прави силата ------------------------------- http://www.zahranvane.com/
|
| Чет Юни 07, 2007 11:01 am |
|
 |
|
mash
Ранг: Новодошъл
Регистриран на: Пет Окт 27, 2006 6:23 pm Мнения: 162 Местоположение: Севлиево
|
Да ! Наистина бях задал подравнение в ляво  , но това не промени нещата..?
Стъпката отново е 257 и при +5V показанието е 00514.
Хм ... немога да се сетя къде ми е грешката....
|
| Чет Юни 07, 2007 12:02 pm |
|
 |
|
Ки4о
Ранг: Форумен бог
Регистриран на: Съб Юли 22, 2006 9:50 pm Мнения: 1638
|
С тримерчето може ли да дадеш стъпка необходимата стъпка?Предполагам че тримерчето ти не е многооборотно. Казах ти какво да направиш по-горе:Пишеш си една тестова програма за конвертиране на число и го подаваш това число към тази програма за преобразуване на кода и гледащ какво се получава.При мен до сега (ползвам я вече 5 години) грешка не ми е давала.
|
| Чет Юни 07, 2007 12:02 pm |
|
 |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30686 Местоположение: София
|
Ммм и също би ми било интересно как предаваш числото от ADC към тази процедурка .... да не разменяш младши и старши байт .. ил ида правиш нещо друго немного богоугодно ..... принципно ако ползваш ССS той си го взема правилно ама ...
|
| Чет Юни 07, 2007 4:07 pm |
|
 |
|
mash
Ранг: Новодошъл
Регистриран на: Пет Окт 27, 2006 6:23 pm Мнения: 162 Местоположение: Севлиево
|
............................bsf ADCON0,2
a_1 btfsc ADCON0,2
goto a_1
movf ADRESH,w ;старша част
movwf binh_reg
movf ADRESL,w ; младша част
movwf binl_reg
banksel binh_reg
swapf binh_reg,w
andlw B'00001111'
addlw B'11110000'
movwf thous_reg.................................
|
| Чет Юни 07, 2007 5:42 pm |
|
 |
|
ji4ka
Ранг: Форумен бог
Регистриран на: Чет Фев 01, 2007 4:04 am Мнения: 1539
|
 МикрочЕп предупреждава :
При странно поведение на програмата си проверявайте първо БАНК-ите!!!!!!!!!
В случая ADRESH и ADRESL са в различни банки.
|
| Чет Юни 07, 2007 11:58 pm |
|
 |
|
mash
Ранг: Новодошъл
Регистриран на: Пет Окт 27, 2006 6:23 pm Мнения: 162 Местоположение: Севлиево
|
ЪЪъъ.... а ?
И как да разбера къде са
хмм...
|
| Пет Юни 08, 2007 11:43 am |
|
 |
|
VSU
Ранг: Напреднал
Регистриран на: Нед Авг 14, 2005 1:08 pm Мнения: 433 Местоположение: Казанлък
|
Ами има си даташийт 
|
| Пет Юни 08, 2007 11:57 am |
|
|