Отговори на тема  [ 56 мнения ]  Отиди на страница Предишна  1, 2, 3, 4  Следваща
ASCII to Binary 16F628A MPLAB 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Сря Юли 11, 2007 10:16 am
Мнения: 1730
Мнение Re: ASCII to Binary 16F628A MPLAB
Ами то пак не се разбра в какъв формат си получаваш числата (дали като integer или като char).
Не съм пик-аджия и съответно не ти разбирам на 100% кода, но забелязах че, приемаш числата в следната последователност - В1, В2, В3 през UARTа, а като почнеш да ги обръщаш до байт - ги смяташ наобратно от В3 към В1.
Отделно забелязах
Код:
GOTO   interrupt
.. което направо ме застреля. Има ли някаква основателна причина да го правиш?
За капак - в предаването към 595-цата използваш променлива PByte, а освен че я зануляваш на едно място, други операции с нея няма (или поне аз не ги виждам).. Та сигурен ли си че изобщо изпращаш нещо различно от 0х00 към Send_595?


Сря Юни 11, 2014 1:29 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Фев 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
Профил
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Съб Окт 13, 2007 12:12 pm
Мнения: 712
Мнение Re: ASCII to Binary 16F628A MPLAB
Здравей!
В терминала (виртуалния :) ) след като пуснеш симулацията, поставяш отметка на "Echo Typed Characters". В това демо пакета трябва да съдържа за начало символа 'Z' (главна буква!) след него задължително 3бр. ASCII цифрови символа, примерно "123", накрая завършваш с бутона "Enter" (0X0D). Сигурно има още да се орязва по остатъците от кода ти, но ти ще се оправиш.
Успех!


Прикачени файлове:
forum.rar [3.17 KiB]
214 пъти


Последна промяна fan на Сря Юни 11, 2014 11:54 pm, променена общо 1 път

Сря Юни 11, 2014 6:26 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Ное 27, 2012 9:27 pm
Мнения: 2011
Мнение Re: ASCII to Binary 16F628A MPLAB
fan Благодаря ти много, направо ме разби ....
Аз го мислих къде къде по просто и по начина по който го мислех никога нямаше да стане.Чак сега разбрах къде ми е грешката т.е. "3бр. ASCII цифрови символа".
Благодаря ти! -> наистина много ми помогна!


Сря Юни 11, 2014 6:46 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Ное 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
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Ное 27, 2012 9:27 pm
Мнения: 2011
Мнение Re: ASCII to Binary 16F628A MPLAB
Извинявам се за тривиалният въпрос но моля да ме насочите към програмен език който ще ми върши работа и нещата ще се случват по лесно от асемблера за пик. Познавам Делфи и Паскал като програмни езици.


Сря Юни 11, 2014 11:03 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пет Фев 04, 2005 9:59 pm
Мнения: 6019
Местоположение: София
Мнение Re: ASCII to Binary 16F628A MPLAB
Ардуино, после като напреднеш тогава може C/C++.

_________________
Warriors of the Night, ASSEMBLER!!!


Сря Юни 11, 2014 11:39 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Май 01, 2009 4:01 pm
Мнения: 1438
Мнение Re: ASCII to Binary 16F628A MPLAB
Що пък като напредне?? Какво му пречи да започне да го учи веднага?
А ардуино = крачка назад и то със засилка. Обикновено се пада кофти при тая гимнастика


Чет Юни 12, 2014 8:56 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Ное 27, 2012 9:27 pm
Мнения: 2011
Мнение Re: ASCII to Binary 16F628A MPLAB
CCSC.exe Под MPLAB това ли е компилатора с който да се захвана, извинявам се но си нямам ни най малка представа.
Програмирам с MPLAB отдавна и смятам че ако се захвана ще го усвоя бързо а относно Ардуино-то не смятам че ми трябва да го уча. Просто искам да мигрирам от асемблера за пик понеже е доста ограничен.


Чет Юни 12, 2014 11:14 am
Профил
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Съб Окт 13, 2007 12:12 pm
Мнения: 712
Мнение Re: ASCII to Binary 16F628A MPLAB
CCS-a е идеален за теб, работи с неговото IDE. Не му мисли повече, просто научи "C".
Успех!


Чет Юни 12, 2014 11:55 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Ное 27, 2012 9:27 pm
Мнения: 2011
Мнение Re: ASCII to Binary 16F628A MPLAB
HI-TECH PICC 9.83
За този какво ще кажете, най ми допада. На този започнаха нещата с лампичките да се случват. :)
Аз като гледам кода е почти едно и също .....


Пет Юни 13, 2014 2:47 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пет Фев 04, 2005 9:59 pm
Мнения: 6019
Местоположение: София
Мнение Re: ASCII to Binary 16F628A MPLAB
PIC16 серията не са подходящи за C малко рам и малък флаш. За тях най-добре асемблер.
Ако искаш С значи ти трябва Ардуино.

_________________
Warriors of the Night, ASSEMBLER!!!


Пет Юни 13, 2014 6:52 pm
Профил
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Съб Окт 13, 2007 12:12 pm
Мнения: 712
Мнение Re: ASCII to Binary 16F628A MPLAB
"Едно си баба знае, едно си баба бае." ... "Много си тъп, Саше!""


Пет Юни 13, 2014 7:02 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Ное 27, 2012 9:27 pm
Мнения: 2011
Мнение Re: ASCII to Binary 16F628A MPLAB
Имам питанка конкретно: Трябва ми да управлявам 106 релета всяко с адрес и без таблица и матрица. Програмата ми работи много добре но е ограничена с 32 релета ако мина на по голям ПИК пак не ми е достатъчен. Въпросът ми е, какво разширение да ползвам? С 74HC595 се получава но има забележка когато ги накачуля едно след друго не работи коректно.
Мога ли на една шина (RS232)да ползвам примерно 4 модула х32 с адресация и как принципно да го направя?
Интересува ме принципа.


Пет Юни 13, 2014 10:44 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Сря Юли 11, 2007 10:16 am
Мнения: 1730
Мнение Re: ASCII to Binary 16F628A MPLAB
Може да сложиш например 4 канален мултиплексор като 4052 с който да превключваш серийната информация подавана към 4-те си модула.. Не ми се струва удачно да впрягаш UART за тая задача.


Пет Юни 13, 2014 11:23 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 56 мнения ]  Отиди на страница Предишна  1, 2, 3, 4  Следваща

Кой е на линия

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


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

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