24 bita VARIABLA

Rasprava o PIC mikrokontrolerima, PIC projekti i drugo vezano za PIC-eve...

Moderators: pedja089, stojke369, [eDo], trax

Post Reply
gagi011bg
Penjem se :)
Penjem se :)
Posts: 89
Joined: 18-03-2012, 02:04

24 bita VARIABLA

Post by gagi011bg »

Pozdrav,svima :)

Interesuje me vaš savet,da li je moguće u picbasic-u,decimalini zapis od (24-bita),npr: 10384788,
upisati u neku variablu u programu,tj. 24-bitni broj koji se primi preko nekog pina na picu-u,upisati u neku variablu i uporediti sa drugom,da bi izvršila neku funciju?

Na primer šta sam je meni potrebno,ali naravno teško da može ovako:

Code: Select all

PODACI VAR byte[24]
X var byte
BROJ var word 

BROJ = 10384788

program:

FOR X = 0 TO 23        ' 24 bita 
SERIN  PORTA.0,N9600,PODACI[24]
PODACI[X] = NCD BROJ 
next X

IF NCD BROJ = PODACI[X] then
LOW LED 
toggle LED
ENDIF

GOTO PROGRAM
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7873
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: 24 bita VARIABLA

Post by pedja089 »

Ako koristis 18F imas 32 bita promenljivu, stim da je prvi bit znak.
24 bita mozes predstaviti kao 3 bajta, bez ikakvih problema.
Ono sta sigurno mozes je i da obradjujes i prikazujes ta 24bita, samo je pitanje koliko ce ti biti zgodno za odraditi...
Ovo kako ti koristis serin meni nikako nije jasno...
A od toga u kom obliku ti dolazi broj zavisi i kako ces ga primati i predstavljati...
gagi011bg
Penjem se :)
Penjem se :)
Posts: 89
Joined: 18-03-2012, 02:04

Re: 24 bita VARIABLA

Post by gagi011bg »

Hvala,pedja 089 na dogovoru

Korstio bi 16F pic,mislio sam da vako pošaljem i primi 24-bit,signal.

Slanje:

Code: Select all

BROJ = 10384788 ; 24 bita 
BROJ VAR ? ; kako ovo da defenišem

program:
SEROUT PORTA.0,N9600,["A",BROJ]
GOTO program
Primanje:

Code: Select all

PODACI var ? kako ovo da defenišem
BROJ = 10384788 ; 24 bita 
BROJ VAR ? ; kako ovo da defenišem


program:
SERIN PORTA.0,N9600,["A"],PODACI

IF PODACI = BROJ then
LOW LED 
toggle LED
ENDIF
GOTO PROGRAM
Ako je ovako uopšte ovako preko SEROUT I SERIN-a, izvodljivo poslati i primati 24-bitni decimalni broj,ili neki predlog kako bi moglo.
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7873
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: 24 bita VARIABLA

Post by pedja089 »

Ako saljes na jednom picu, primas na drugom, to ti je samo 3 bajta posalji jedan za drugim.
Bez ikakvih problema to prolazi. Posmatraj to kao 3 bajta, i sve ce ti biti jednostavnije...
Broj1 VAR BYTE
Broj2 VAR BYTE
Broj3 VAR BYTE
;BROJ = 10384788 ; 24 bita = HEX 9E7594
Broj1=9E
Broj2=75
Broj3=94
I samo stavis te bajtove u serout
SEROUT PORTA.0,N9600,["A",Broj1,Broj2,Broj3]
I to je to...
A ono sto me cudi za cega ce ti taj broj i sto bas 24 bita, nesto mi se cini da je to potpuno bespotrebno. Pogotovo sto saljes tako ceo broj, fiksan, i bez mogucnosti promene.
gagi011bg
Penjem se :)
Penjem se :)
Posts: 89
Joined: 18-03-2012, 02:04

Re: 24 bita VARIABLA

Post by gagi011bg »

Hvala pedja 089,

A kako bi sad taj 24bit-ni kod primio,jel možda ovako:

Code: Select all

Broj1 VAR BYTE
Broj2 VAR BYTE
Broj3 VAR BYTE

Broj1=9E
Broj2=75
Broj3=94

SERIN PORTA.0,N9600,["A",Broj1,Broj2,Broj3]
Da te pitam,jel ovim sistemom se šalje 3 bajta+3bajta+3bajta,odvojeno ,tj,kada se primi na drugom Picu,
SERIN PORTA.0,N9600,["A",Broj1,Broj2,Broj3]


računa se da je
Broj1=9E
Broj2=75
Broj3=94


dobijem jedan ceo BROJ = 10384788 u 24bit,formatu kako da ih složim u jedan 24 bitni kod?
Ovo pitam informativno,zbog toga jer kad,a bi ukapirao sistem.

Ovaj broj 10384788,sam ja napisao čisto kao primer,nekog broja u 24bitnom formatu.

A zašto 24-bit,evo o čemu se radi:

Dobio sam neki kineski rf predajni i prijemnik koji rade na 433 Mhz,kad na predjniku pritisneš dugme, ili neki prekidač,(na prijenmniku možeš da pališ relej.... i šta već,hteo sam da iskoristim za otvranje vrata na graži.

Medjutim potrebno ih je isprogramirati,što nisam imao pojma dok nisam otvorio kutiju,

Na upustvu sam našao ovo:
To be programmed transmitter and receiver , you can use any programmer for pic 16F series.

Communication between the receiver and transmitter can be done wirelessly via RF frequency 433 mhz .

In the transmitter and in the receiver are PIC16F628, in both devices .

When writing a program , use a series of communications on to send and receive signals .
The program that you write , convert via a compiler in hex ​​cod , and program in the pic .

CODE , in serial communication must be in the format of 24 bit
Probao sam ja da upišem kod koji sam napisao u picbasicu,od 8 bita,16bit..,ali neće da radi,pa sam zato i pitao da li možda stvarno mora biti 24bit kod,a zašto to samo braća Kinezi znaju :roll:
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7873
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: 24 bita VARIABLA

Post by pedja089 »

Znao sam da je neka debilana koja nema veze sa mozgom...
Prvo moja pretpostavka je da su kinezi odradili ceo softver, a da je na tebi samo da upises kodove u eeprom memoriju, nista vise... A na koju lokaciju, kako i gde to je vec problem.

Cim ti saljes ovo A i cekas ga da dodje, to ti je vec jedan bajt, tako da ti onda ostaju jos 2 bajta do 24 bita...
Tako da koriscenjem word promenljive i slanjem svakog bita posebno dobije 24 bita podataka. Al to opet nije 24 bita u komunikaciji, jer imas i start i stop bitove.
Tako da batali igranje sa bitovima...
Postavi da daljinac nesto posalje, i da prijemnik to ceka i to je to...
Ja bi stavio da daljinac za svako dugme salje nesto tipa
SEROUT PORTA.0,N9600,["SiminaGaraza",Broj]
Ako je jedan taster broj=1, ako je drugi taster broj =2 itd
Na prijemniku sacekao da dodje SiminaGaraza, i onda primio bajt.
Ako je broj = 1 otvori, ako je broj = nesto drugo zatvori itd.

Ovo ti je sintaksa za serin, pa vidi gde gresis:
SERIN Pin, Mode,{Timeout, Label,}{[Qual...],}{Item...}
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7873
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: 24 bita VARIABLA

Post by pedja089 »

E da ne bude zabune, za debilanu sam mislio na bracu kineze i njihovo objasnjenje...
Post Reply