|
Виж темите без отговор | Виж активните теми
Дата и час: Пон Юли 27, 2026 10:05 pm
ASCII to Binary 16F628A MPLAB
| Автор |
Съобщение |
|
michev
Ранг: Форумен бог
Регистриран на: Сря Юли 11, 2007 10:16 am Мнения: 1730
|
 Re: ASCII to Binary 16F628A MPLAB
Ами то пак не се разбра в какъв формат си получаваш числата (дали като integer или като char). Не съм пик-аджия и съответно не ти разбирам на 100% кода, но забелязах че, приемаш числата в следната последователност - В1, В2, В3 през UARTа, а като почнеш да ги обръщаш до байт - ги смяташ наобратно от В3 към В1. Отделно забелязах .. което направо ме застреля. Има ли някаква основателна причина да го правиш? За капак - в предаването към 595-цата използваш променлива PByte, а освен че я зануляваш на едно място, други операции с нея няма (или поне аз не ги виждам).. Та сигурен ли си че изобщо изпращаш нещо различно от 0х00 към Send_595?
|
| Сря Юни 11, 2014 1:29 pm |
|
 |
|
stefan63
Ранг: Форумен бог
Регистриран на: Вто Фев 07, 2012 11:22 pm Мнения: 3084
|
 Re: ASCII to Binary 16F628A MPLAB
стотици movlw '0' subwf B3,f BCF STATUS,C
rlf B3,f ;x2 ; ротация , без да се ползва флага за пренос, ако няма- bcf STATUS,C rlf B3,w ;x4 movwf X movwf B3 rlf B3,f ;x8 rlf B3,f ;x16 rlf B3,f ;x32 movfw B3 addwf X,f ;x==B1*4+B1*32 BCF STATUS,C
rlf B3,w ;x64 addwf X,f ;X=B1*4+B1*32+B1*64==b1*100
;десетици
movlw '0' subwf B2,f
BCF STATUS,C
rlf B2,f ;x2 movfw B2 addwf X,f ;X=B1*100+b2*2 BCF STATUS,C
rlf B2,f ;*4 rlf B2,w ;*8
addwf X,f ;X=b1*100+b2*2+b2*8=b1*100+b2*10
movlw '0' subwf B1,f
В прекъсване се прави само неизбежното. Ти си сложил там и конверсия , и предаване в обратна посока , и изчкаване.....
|
| Сря Юни 11, 2014 1:47 pm |
|
 |
|
fan
Ранг: Почетен член
Регистриран на: Съб Окт 13, 2007 12:12 pm Мнения: 712
|
 Re: ASCII to Binary 16F628A MPLAB
Здравей! В терминала (виртуалния  ) след като пуснеш симулацията, поставяш отметка на "Echo Typed Characters". В това демо пакета трябва да съдържа за начало символа 'Z' (главна буква!) след него задължително 3бр. ASCII цифрови символа, примерно "123", накрая завършваш с бутона "Enter" (0X0D). Сигурно има още да се орязва по остатъците от кода ти, но ти ще се оправиш. Успех!
Последна промяна fan на Сря Юни 11, 2014 11:54 pm, променена общо 1 път
|
| Сря Юни 11, 2014 6:26 pm |
|
 |
|
timt
Ранг: Форумен бог
Регистриран на: Вто Ное 27, 2012 9:27 pm Мнения: 2011
|
 Re: ASCII to Binary 16F628A MPLAB
fan Благодаря ти много, направо ме разби .... Аз го мислих къде къде по просто и по начина по който го мислех никога нямаше да стане.Чак сега разбрах къде ми е грешката т.е. "3бр. ASCII цифрови символа". Благодаря ти! -> наистина много ми помогна!
|
| Сря Юни 11, 2014 6:46 pm |
|
 |
|
timt
Ранг: Форумен бог
Регистриран на: Вто Ное 27, 2012 9:27 pm Мнения: 2011
|
 Re: ASCII to Binary 16F628A MPLAB
Фактически това ми трябваше като разгледах подробно кода: data_hex_conversion: ;x100 movlw '0' subwf B1,W movwf B1 bcf STATUS,C rlf B1,F ;x2 rlf B1,W ;x4 movwf X movwf B1 bcf STATUS,C rlf B1,F ;x8 rlf B1,F ;x16 rlf B1,F ;x32 movfw B1 addwf X,F ;x==B1*4+B1*32 rlf B1,W ;x64 addwf X,F ;X=B1*4+B1*32+B1*64==b1*100 ;x10 movlw '0' subwf B2,W movwf B2 bcf STATUS,C rlf B2,F ;x2 movfw B2 addwf X,F ;X=B1*100+b2*2 bcf STATUS,C rlf B2,F ;*4 rlf B2,W ;*8 addwf X,F ;X=b1*100+b2*2+b2*8=b1*100+b2*10 ;x1 movlw '0' subwf B3,W movwf B3 ;fin sum addwf X,F ;X=X+b3 return Което и stefan63 се опитваше да ми каже и с което не можах да се справя два дена. fan кодът ти е много добър, харесах си някой работи а това е ентъра си е идея и не се бях сетил.
|
| Сря Юни 11, 2014 7:24 pm |
|
 |
|
timt
Ранг: Форумен бог
Регистриран на: Вто Ное 27, 2012 9:27 pm Мнения: 2011
|
 Re: ASCII to Binary 16F628A MPLAB
Извинявам се за тривиалният въпрос но моля да ме насочите към програмен език който ще ми върши работа и нещата ще се случват по лесно от асемблера за пик. Познавам Делфи и Паскал като програмни езици.
|
| Сря Юни 11, 2014 11:03 pm |
|
 |
|
ike
Ранг: Форумен бог
Регистриран на: Пет Фев 04, 2005 9:59 pm Мнения: 6019 Местоположение: София
|
 Re: ASCII to Binary 16F628A MPLAB
Ардуино, после като напреднеш тогава може C/C++.
_________________ Warriors of the Night, ASSEMBLER!!!
|
| Сря Юни 11, 2014 11:39 pm |
|
 |
|
CarBeta
Ранг: Форумен бог
Регистриран на: Пет Май 01, 2009 4:01 pm Мнения: 1438
|
 Re: ASCII to Binary 16F628A MPLAB
Що пък като напредне?? Какво му пречи да започне да го учи веднага? А ардуино = крачка назад и то със засилка. Обикновено се пада кофти при тая гимнастика
|
| Чет Юни 12, 2014 8:56 am |
|
 |
|
timt
Ранг: Форумен бог
Регистриран на: Вто Ное 27, 2012 9:27 pm Мнения: 2011
|
 Re: ASCII to Binary 16F628A MPLAB
CCSC.exe Под MPLAB това ли е компилатора с който да се захвана, извинявам се но си нямам ни най малка представа. Програмирам с MPLAB отдавна и смятам че ако се захвана ще го усвоя бързо а относно Ардуино-то не смятам че ми трябва да го уча. Просто искам да мигрирам от асемблера за пик понеже е доста ограничен.
|
| Чет Юни 12, 2014 11:14 am |
|
 |
|
fan
Ранг: Почетен член
Регистриран на: Съб Окт 13, 2007 12:12 pm Мнения: 712
|
 Re: ASCII to Binary 16F628A MPLAB
CCS-a е идеален за теб, работи с неговото IDE. Не му мисли повече, просто научи "C". Успех!
|
| Чет Юни 12, 2014 11:55 am |
|
 |
|
timt
Ранг: Форумен бог
Регистриран на: Вто Ное 27, 2012 9:27 pm Мнения: 2011
|
 Re: ASCII to Binary 16F628A MPLAB
HI-TECH PICC 9.83 За този какво ще кажете, най ми допада. На този започнаха нещата с лампичките да се случват. Аз като гледам кода е почти едно и също .....
|
| Пет Юни 13, 2014 2:47 pm |
|
 |
|
ike
Ранг: Форумен бог
Регистриран на: Пет Фев 04, 2005 9:59 pm Мнения: 6019 Местоположение: София
|
 Re: ASCII to Binary 16F628A MPLAB
PIC16 серията не са подходящи за C малко рам и малък флаш. За тях най-добре асемблер. Ако искаш С значи ти трябва Ардуино.
_________________ Warriors of the Night, ASSEMBLER!!!
|
| Пет Юни 13, 2014 6:52 pm |
|
 |
|
fan
Ранг: Почетен член
Регистриран на: Съб Окт 13, 2007 12:12 pm Мнения: 712
|
 Re: ASCII to Binary 16F628A MPLAB
"Едно си баба знае, едно си баба бае." ... "Много си тъп, Саше!""
|
| Пет Юни 13, 2014 7:02 pm |
|
 |
|
timt
Ранг: Форумен бог
Регистриран на: Вто Ное 27, 2012 9:27 pm Мнения: 2011
|
 Re: ASCII to Binary 16F628A MPLAB
Имам питанка конкретно: Трябва ми да управлявам 106 релета всяко с адрес и без таблица и матрица. Програмата ми работи много добре но е ограничена с 32 релета ако мина на по голям ПИК пак не ми е достатъчен. Въпросът ми е, какво разширение да ползвам? С 74HC595 се получава но има забележка когато ги накачуля едно след друго не работи коректно. Мога ли на една шина (RS232)да ползвам примерно 4 модула х32 с адресация и как принципно да го направя? Интересува ме принципа.
|
| Пет Юни 13, 2014 10:44 pm |
|
 |
|
michev
Ранг: Форумен бог
Регистриран на: Сря Юли 11, 2007 10:16 am Мнения: 1730
|
 Re: ASCII to Binary 16F628A MPLAB
Може да сложиш например 4 канален мултиплексор като 4052 с който да превключваш серийната информация подавана към 4-те си модула.. Не ми се струва удачно да впрягаш UART за тая задача.
|
| Пет Юни 13, 2014 11:23 pm |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 2 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|