Sms box - razdvojena diskusija
Moderators: pedja089, stojke369, [eDo], trax
abc vidjeo sam ovdje na forumu bar jos dvojcu iz pule, da nisi mozda i ti od tu negdje, pa da skupimo ekipu na kavi....
svidja mi se ovaj forum, u biti jedino mjesto di se nalazi ekipa ovog profila, na našem jeziku, svaka cast onim en.forumima kad imamo i mi pametnih, ljudi to je puno prihvatljivije...
probao sam malo kopati po tom c-u ali mi je dosta apstraktan (vidi primjer koji me ful zanimao pa ga nikako ne uspjevam skuziti, iz njega bih volio malo povaditi taj pdu handling...)
http://www.elektronika.ba/forum/uploadz ... l_V171.zip
i napisat ga u basicu..
isao bih na nekakvu novu verziju onog mog kontrolera, stvar je u biti slicna onoj od traxa, samo sto je njegova univerzalni među-prevoditelj izmedju simensovih telefona i nekakvih drugih uredjaja, a mene vise zanima da si napisem sub za pdu-handling...
u biti program koji sam pisao za ove moje kontrolere ima oko 900 linija basica, tako da nekako nemam volje sve to raditi izpocetka, pogotovo sad kad sve radi i nema vise bug-ova...
prazna mi bat. na lapu. cao...
svidja mi se ovaj forum, u biti jedino mjesto di se nalazi ekipa ovog profila, na našem jeziku, svaka cast onim en.forumima kad imamo i mi pametnih, ljudi to je puno prihvatljivije...
probao sam malo kopati po tom c-u ali mi je dosta apstraktan (vidi primjer koji me ful zanimao pa ga nikako ne uspjevam skuziti, iz njega bih volio malo povaditi taj pdu handling...)
http://www.elektronika.ba/forum/uploadz ... l_V171.zip
i napisat ga u basicu..
isao bih na nekakvu novu verziju onog mog kontrolera, stvar je u biti slicna onoj od traxa, samo sto je njegova univerzalni među-prevoditelj izmedju simensovih telefona i nekakvih drugih uredjaja, a mene vise zanima da si napisem sub za pdu-handling...
u biti program koji sam pisao za ove moje kontrolere ima oko 900 linija basica, tako da nekako nemam volje sve to raditi izpocetka, pogotovo sad kad sve radi i nema vise bug-ova...
prazna mi bat. na lapu. cao...
Uz pomoc ove stranice sam napravio svoj PDU dekoder koji dekodira u medjuvremenu dok mu mobitel salje hex string To je unutar SMS Box!-a.
http://www.dreamfabric.com/sms/
http://www.dreamfabric.com/sms/
Ne, ja sam na drugoj strani, mi smo provincija za vas:)ShOkRe wrote:abc vidjeo sam ovdje na forumu bar jos dvojcu iz pule, da nisi mozda i ti od tu negdje, pa da skupimo ekipu na kavi....
svidja mi se ovaj forum, u biti jedino mjesto di se nalazi ekipa ovog profila, na našem jeziku, svaka cast onim en.forumima kad imamo i mi pametnih, ljudi to je puno prihvatljivije...
probao sam malo kopati po tom c-u ali mi je dosta apstraktan (vidi primjer koji me ful zanimao pa ga nikako ne uspjevam skuziti, iz njega bih volio malo povaditi taj pdu handling...)
http://www.elektronika.ba/forum/uploadz ... l_V171.zip
i napisat ga u basicu..
isao bih na nekakvu novu verziju onog mog kontrolera, stvar je u biti slicna onoj od traxa, samo sto je njegova univerzalni među-prevoditelj izmedju simensovih telefona i nekakvih drugih uredjaja, a mene vise zanima da si napisem sub za pdu-handling...
u biti program koji sam pisao za ove moje kontrolere ima oko 900 linija basica, tako da nekako nemam volje sve to raditi izpocetka, pogotovo sad kad sve radi i nema vise bug-ova...
prazna mi bat. na lapu. cao...
Pogledacu malo detaljnije ovaj sors, koliko vidim to su prastare nokie.
Probacu da napisem malo opsirnije komentare u onom djelu gdje se obradjuje sama komunikacija sa mobitelom. Koliko vidim to je nesto slicno sto ti radis lcd, serijska komunikacija sa mobitelom, serijski eeprom i nekoliko releja ,kojima se upravlja preko sms-a.
Ako sam te dobro shvatio trax, ti u real time-u dekodiras dok ti pristizu bitovi ?...
ako je tako moj pbp mora jos palente jesti dok to postignem.. na koliko ti ide rx? 9600.. (mozd bi na 1200 islo sa usart interaptom)
zato ja koristim 452 ima rama, sve povucem u string pa se onda s njim igram.. to mi je ok jer naknadno koristim isti string vise puta, a 452 ici nije bed adresirati 160 bajtova za string (pa jos i eeprom dici u ram), i jos se kasnije razbacivati.... krenuo sam ja u ovo sa 877 pa sam zaplivao.. imam puno specifičnih poruka koje se generiraju i salju, (nikako da razradim jedan subasm za komprimiranje texta.. imam vec segmente gotove samo nikako da ih ubacim)...
u biti full lose stojim sa vremenom za rad na ovim stvarcicama, pa zato hvataam precice.... znas kako je posao,bolovanja(evo bas lezim sa 39' zato sam se i raspisao), beba, zena, fuš itd...
cini mi se ovaj tvoj link nesto ednostavniji nego ovaj...
http://www.embedtronics.com/nokia/fbus.html
bit ce da je taj njokijin protokol malo zaguljeniji iako se svodi na slicno....
the poin is, napraviti univerzalnu krntiju na koju mozes povezati bilo koji telefon (ili bar neku kolicinu sa popisa) setirati u meniu (ako nema autosense) i (evo opet mene) stancati i prodavati takve uredjaje....
meni je trenutno (sad prije ljeta) aktuelno napraviti jednostavni sms alarm, znam da ih ima 100 na trzistu, znam da si i ti to napravio, ali ja sam napravio isti uredjaj sa telitom, i normalno u ovoj je prici cijena bila bitn pa stvar nije "prohodala", naime moj (frend) diler koji je na trzistu jak sa raznm stvarima, postavio je uvjet da se ovaj uredjaj napravi na one jeftine telefone iz simpa pageta i tomata, a kako oni stalno saraju s tim telefonima, implementacija svih tih silnih protokola je misionn imposible...
bio je i uvjet setup na 4 jezika i (najvjerovatnije atest a o tome se nisam ni raspitao)
tako da sam tu utrku bio napustio jos prije 2 god. ali ona je pred svako ljeto aktuelna, (tip prodaje satore i kampersku opremu pa me htio ugurati turistima na moru za sigurnost kam kucica, njima stalno provaljuju... nemojte mi sad upast na trziste... )
decki hvala vam, stvarno ste poduzetni glede edukacije pučanstva
ako je tako moj pbp mora jos palente jesti dok to postignem.. na koliko ti ide rx? 9600.. (mozd bi na 1200 islo sa usart interaptom)
zato ja koristim 452 ima rama, sve povucem u string pa se onda s njim igram.. to mi je ok jer naknadno koristim isti string vise puta, a 452 ici nije bed adresirati 160 bajtova za string (pa jos i eeprom dici u ram), i jos se kasnije razbacivati.... krenuo sam ja u ovo sa 877 pa sam zaplivao.. imam puno specifičnih poruka koje se generiraju i salju, (nikako da razradim jedan subasm za komprimiranje texta.. imam vec segmente gotove samo nikako da ih ubacim)...
u biti full lose stojim sa vremenom za rad na ovim stvarcicama, pa zato hvataam precice.... znas kako je posao,bolovanja(evo bas lezim sa 39' zato sam se i raspisao), beba, zena, fuš itd...
cini mi se ovaj tvoj link nesto ednostavniji nego ovaj...
http://www.embedtronics.com/nokia/fbus.html
bit ce da je taj njokijin protokol malo zaguljeniji iako se svodi na slicno....
the poin is, napraviti univerzalnu krntiju na koju mozes povezati bilo koji telefon (ili bar neku kolicinu sa popisa) setirati u meniu (ako nema autosense) i (evo opet mene) stancati i prodavati takve uredjaje....
meni je trenutno (sad prije ljeta) aktuelno napraviti jednostavni sms alarm, znam da ih ima 100 na trzistu, znam da si i ti to napravio, ali ja sam napravio isti uredjaj sa telitom, i normalno u ovoj je prici cijena bila bitn pa stvar nije "prohodala", naime moj (frend) diler koji je na trzistu jak sa raznm stvarima, postavio je uvjet da se ovaj uredjaj napravi na one jeftine telefone iz simpa pageta i tomata, a kako oni stalno saraju s tim telefonima, implementacija svih tih silnih protokola je misionn imposible...
bio je i uvjet setup na 4 jezika i (najvjerovatnije atest a o tome se nisam ni raspitao)
tako da sam tu utrku bio napustio jos prije 2 god. ali ona je pred svako ljeto aktuelna, (tip prodaje satore i kampersku opremu pa me htio ugurati turistima na moru za sigurnost kam kucica, njima stalno provaljuju... nemojte mi sad upast na trziste... )
decki hvala vam, stvarno ste poduzetni glede edukacije pučanstva
Inace ide na 19200 a moze i na 9600 (logicno). Zato sam mu zakacio kristaj 16MHz da moze stici bez ikakvih problema. Za bas ovako rjesavanje problema treba koristiti asembler.ShOkRe wrote:Ako sam te dobro shvatio trax, ti u real time-u dekodiras dok ti pristizu bitovi ?...
ako je tako moj pbp mora jos palente jesti dok to postignem.. na koliko ti ide rx? 9600.. (mozd bi na 1200 islo sa usart interaptom)
Drzi sve poruke u EEPROM-u. Napravi neku rutinu kojoj ces samo dati indeks poruke u nizu i ona to ukloka u mobitel (telit). To moras uradit vala.ShOkRe wrote:zato ja koristim 452 ima rama, sve povucem u string pa se onda s njim igram.. to mi je ok jer naknadno koristim isti string vise puta, a 452 ici nije bed adresirati 160 bajtova za string (pa jos i eeprom dici u ram), i jos se kasnije razbacivati.... krenuo sam ja u ovo sa 877 pa sam zaplivao.. imam puno specifičnih poruka koje se generiraju i salju, (nikako da razradim jedan subasm za komprimiranje texta.. imam vec segmente gotove samo nikako da ih ubacim)...
Ja sam ovo svoje odradio na PIC16F877A i za kodiranje i dekodiranje PDU koristim nekih 200 bajta. Koristim ga kao neki "cirkularni" RAM . Pamtim adresu pocetka i kraja u nekim rutinama i sve radi super.
Koliko vidim u sorsu nisam ga isprobao nemam taj kompajler i onaj C primjer sto ga je shokre okacio radi u C i to na 115200 bita FBUS komunikaciju sa nokiama. Samo sto radi na kristalu cudne frekvencije 11,0592MHz.
Normalno i tu se odredjeni deo primljene poruke mora dekodirati izracunati checksum(crc) u realnom vremenu , ponovo prepraviti izracunati checksum (crc) i poslati da bi se nastavila komunikacija i primila poruka a isto i poslala.
Evo autorova linija gdje setuje uart 16f876
#use rs232(baud=115200,xmit=PIN_C6,rcv=PIN_C7,parity=n,bits=8,errors,STREAM=PHONE_STREAM)
Normalno i tu se odredjeni deo primljene poruke mora dekodirati izracunati checksum(crc) u realnom vremenu , ponovo prepraviti izracunati checksum (crc) i poslati da bi se nastavila komunikacija i primila poruka a isto i poslala.
Evo autorova linija gdje setuje uart 16f876
#use rs232(baud=115200,xmit=PIN_C6,rcv=PIN_C7,parity=n,bits=8,errors,STREAM=PHONE_STREAM)
ye trax, dosta ti toga stoji, ali kako nisam htio dodavati vanjski eeprom, ondak, mi nije bilo mjesta. naime eprom mi je organiziran tako da 3x32 bajta programski parametri, 72 bajta tjedni cheduler, 3x12 bajta telefoni korisnika, nekoliko systemskih parametara, mail ito je to za 256 bajta
dakle svi sms dialoški setapi spremaju parametre u taj eeprom...
s druge strane nsam htio nista prepustati gsm-bazi jer ima i to svojih loših strana, tako da sve sms reporte moj program generira interaktivno i onda posalje.
a ono sta sam rekao za komprimiranje zato jer kompajler jednu rečenicu od 160 znakova spremi u 160 wordova, pa sam nasao subrutinu uasembleru koju podvalim unutar basica i zovem je kad mi treba neki tekst
nije bas kompresija ali usteda flash prostora 1:2
u biti opet bih se ponavljao da kazem da me moja primitivna ali dovoljno funkcionalna tehnika zadovoljava kad uspijem projekt staviti u funkciju, izbaciti mu sve bug-ove, i kad isti radi godinu dana u svakakvim uvjetima..
dapače da bh volio da to napravim u asembleru, ali dok bih se dovoljno osamostalio da tečno pišem asembler, i dok bih sličnu stvar napravio, (to bi bilo za par godina (mozda)) do onda češ na kiosku moći kupiti sms boxeve raznih boja i ukusa, za 12.99 sim included
za ABC: nije mi nista stiglo salji mi na makni_ovo.matokovic@gmail.com
dakle svi sms dialoški setapi spremaju parametre u taj eeprom...
s druge strane nsam htio nista prepustati gsm-bazi jer ima i to svojih loših strana, tako da sve sms reporte moj program generira interaktivno i onda posalje.
a ono sta sam rekao za komprimiranje zato jer kompajler jednu rečenicu od 160 znakova spremi u 160 wordova, pa sam nasao subrutinu uasembleru koju podvalim unutar basica i zovem je kad mi treba neki tekst
nije bas kompresija ali usteda flash prostora 1:2
u biti opet bih se ponavljao da kazem da me moja primitivna ali dovoljno funkcionalna tehnika zadovoljava kad uspijem projekt staviti u funkciju, izbaciti mu sve bug-ove, i kad isti radi godinu dana u svakakvim uvjetima..
dapače da bh volio da to napravim u asembleru, ali dok bih se dovoljno osamostalio da tečno pišem asembler, i dok bih sličnu stvar napravio, (to bi bilo za par godina (mozda)) do onda češ na kiosku moći kupiti sms boxeve raznih boja i ukusa, za 12.99 sim included
za ABC: nije mi nista stiglo salji mi na makni_ovo.matokovic@gmail.com
ma trax, pa da ne razlikujem word i byte, sta mislis da bih ista od ovoga sklepao...
nego kad naprimjer u basicu u jednoj liniji upises
hseout "abcd........xyz" kad iskompiliram dobijem nesto kao
OA OO OB OO OC OO OD OO
.......... 22 OO 23 OO 24 OO
ove hexove sam izlupao da skuzis sto mislim (nisam trazio prave asci-je), zasto neko ko j radio pbp nije o tome razmisljao neznam, ali kad u ASM-u stavis DA abcd........xyz on više ne ždere word za bajt
evo ti primjer
String1:
@ da "This is a string",0
AnotherString:
@ da "Here is another string",0
'------------GetAddress Macro - Location insensitive -------------------------
ASM
GetAddress macro Label, Wout ; Returns the Address of a Label as a Word
CHK?RP Wout
movlw low Label
movwf Wout
movlw High Label
movwf Wout + 1
endm
ENDASM
StartLoop ' This loop repeats continuously just as a test.
@ GetAddress _String1, _Addr ' Get address of String
gosub StringOut ' Send the String
hserout [13,10] ' New Line
@ GetAddress _AnotherString, _Addr ' Get address of String
gosub StringOut ' Send the String
hserout [13,10] ' New Line
pause 500
goto StartLoop ' Repeat
StringOut: ' Send the string out via Hserout
Readcode Addr, Char ' Get a character
if Char = 0 then StringDone ' Look for Null char, Stop if found
hserout [Char] ' Send char
Addr = Addr + 1 ' Point to next character
goto StringOut ' Continue with rest of the string
StringDone:
return
end
ali da sad ne tlacim s time puno mi je interesantnija prica o pdu tranformaciji
evo vidi klasicni primjer u basicu
TXT2PDU:
tmp(1)=char(1) << 7
tmp(2)=char(2) << 6
tmp(3)=char(3) << 5
tmp(4)=char(4) << 4
tmp(5)=char(5) << 3
tmp(6)=char(6) << 2
tmp(7)=char(7) << 1
ch(0)=chaR(0)
ch(1)=chaR(1) >> 1
ch(2)=chaR(2) >> 2
ch(3)=chaR(3) >> 3
ch(4)=chaR(4) >> 4
ch(5)=chaR(5) >> 5
ch(6)=chaR(6) >> 6
pdu(0)=tmp(1) + ch(0)
pdu(1)=tmp(2) + ch(1)
pdu(2)=tmp(3) + ch(2)
pdu(3)=tmp(4) + ch(3)
pdu(4)=tmp(5) + ch(4)
pdu(5)=tmp(6) + ch(5)
pdu(6)=tmp(7) + ch(6)
RETURN
;---PDU2TXT--(sms_decoding)---
PDU2TXT:
tmp(0)=pdu(0) >> 7
tmp(1)=pdu(1) >> 6
tmp(2)=pdu(2) >> 5
tmp(3)=pdu(3) >> 4
tmp(4)=pdu(4) >> 3
tmp(5)=pdu(5) >> 2
tmp(6)=pdu(6) >> 1
ch(0)=pdu(0) & $7f
ch(1)=pdu(1) & $3f:CH(1)=CH(1) << 1
ch(2)=pdu(2) & $1f:CH(2)=CH(2) << 2
ch(3)=pdu(3) & $0f:CH(3)=CH(3) << 3
ch(4)=pdu(4) & $07:CH(4)=CH(4) << 4
ch(5)=pdu(5) & $03:CH(5)=CH(5) << 5
ch(6)=pdu(6) & $01:CH(6)=CH(6) << 6
char(0)=ch(0)
char(1)=ch(1) + tmp(0)
char(2)=ch(2) + tmp(1)
char(3)=ch(3) + tmp(2)
char(4)=ch(4) + tmp(3)
char(5)=ch(5) + tmp(4)
char(6)=ch(6) + tmp(5)
char(7)=tmp(6)
RETURN
nego kad naprimjer u basicu u jednoj liniji upises
hseout "abcd........xyz" kad iskompiliram dobijem nesto kao
OA OO OB OO OC OO OD OO
.......... 22 OO 23 OO 24 OO
ove hexove sam izlupao da skuzis sto mislim (nisam trazio prave asci-je), zasto neko ko j radio pbp nije o tome razmisljao neznam, ali kad u ASM-u stavis DA abcd........xyz on više ne ždere word za bajt
evo ti primjer
String1:
@ da "This is a string",0
AnotherString:
@ da "Here is another string",0
'------------GetAddress Macro - Location insensitive -------------------------
ASM
GetAddress macro Label, Wout ; Returns the Address of a Label as a Word
CHK?RP Wout
movlw low Label
movwf Wout
movlw High Label
movwf Wout + 1
endm
ENDASM
StartLoop ' This loop repeats continuously just as a test.
@ GetAddress _String1, _Addr ' Get address of String
gosub StringOut ' Send the String
hserout [13,10] ' New Line
@ GetAddress _AnotherString, _Addr ' Get address of String
gosub StringOut ' Send the String
hserout [13,10] ' New Line
pause 500
goto StartLoop ' Repeat
StringOut: ' Send the string out via Hserout
Readcode Addr, Char ' Get a character
if Char = 0 then StringDone ' Look for Null char, Stop if found
hserout [Char] ' Send char
Addr = Addr + 1 ' Point to next character
goto StringOut ' Continue with rest of the string
StringDone:
return
end
ali da sad ne tlacim s time puno mi je interesantnija prica o pdu tranformaciji
evo vidi klasicni primjer u basicu
TXT2PDU:
tmp(1)=char(1) << 7
tmp(2)=char(2) << 6
tmp(3)=char(3) << 5
tmp(4)=char(4) << 4
tmp(5)=char(5) << 3
tmp(6)=char(6) << 2
tmp(7)=char(7) << 1
ch(0)=chaR(0)
ch(1)=chaR(1) >> 1
ch(2)=chaR(2) >> 2
ch(3)=chaR(3) >> 3
ch(4)=chaR(4) >> 4
ch(5)=chaR(5) >> 5
ch(6)=chaR(6) >> 6
pdu(0)=tmp(1) + ch(0)
pdu(1)=tmp(2) + ch(1)
pdu(2)=tmp(3) + ch(2)
pdu(3)=tmp(4) + ch(3)
pdu(4)=tmp(5) + ch(4)
pdu(5)=tmp(6) + ch(5)
pdu(6)=tmp(7) + ch(6)
RETURN
;---PDU2TXT--(sms_decoding)---
PDU2TXT:
tmp(0)=pdu(0) >> 7
tmp(1)=pdu(1) >> 6
tmp(2)=pdu(2) >> 5
tmp(3)=pdu(3) >> 4
tmp(4)=pdu(4) >> 3
tmp(5)=pdu(5) >> 2
tmp(6)=pdu(6) >> 1
ch(0)=pdu(0) & $7f
ch(1)=pdu(1) & $3f:CH(1)=CH(1) << 1
ch(2)=pdu(2) & $1f:CH(2)=CH(2) << 2
ch(3)=pdu(3) & $0f:CH(3)=CH(3) << 3
ch(4)=pdu(4) & $07:CH(4)=CH(4) << 4
ch(5)=pdu(5) & $03:CH(5)=CH(5) << 5
ch(6)=pdu(6) & $01:CH(6)=CH(6) << 6
char(0)=ch(0)
char(1)=ch(1) + tmp(0)
char(2)=ch(2) + tmp(1)
char(3)=ch(3) + tmp(2)
char(4)=ch(4) + tmp(3)
char(5)=ch(5) + tmp(4)
char(6)=ch(6) + tmp(5)
char(7)=tmp(6)
RETURN
poslao i skinuo ono ispred:)
shokre
pojasni ovaj izraz u bpb
hserout [13,10] ' New Line
Sta znace 13 i 10 ?
inace u C-u recimo string(string cu upotrebljavati ima puno izraza inace za to recimo u prjevodu bi se moglo nazvati i polja) ,zato sto to c tretira kao memorijske lokacije gdje mi ne moramo da im dodjeljujemo adrese to c radi za nas, inace za c je to vrjednost koja je upisana na toj memorijskoj lokaciji i nista vise a mi odredjujemo sta cemo raditi sa njom i kako cemo je interpretirati.
char string[13][10];
Recimo bi bio kao trinaest stringova sa 10 karaktera svaki, znaci 130 bajtova u sram-u mikrokontrolera i to u jednom komadu.
const char[13][10]; bi zauzeo 130 bajtova u programskoj memoriji pic-a.
A recimo int string[13][10]; bi zauzeo 260 bajtova u sram-u.
long [13][10]; mislim da ovo prelazili i vecinu 18-istica koliko treba sram-a, 520bajtova ukupno, znaci svaki karakter bi imao velicinu od 4bajta ili bi se mogla upisati velicina od 2^32, ako se u bajt moze upisati vrjednost od 2^8 =256 ako bi sadrzavao brojeve inace za c je to nesto slicno kao i u asembleru on to tretira kao memorijske lokacije.
Inace u nasoj literaturi to se nazivalo nekada dvodimenzinalna matrica kao one iz matematike:)
shokre
pojasni ovaj izraz u bpb
hserout [13,10] ' New Line
Sta znace 13 i 10 ?
inace u C-u recimo string(string cu upotrebljavati ima puno izraza inace za to recimo u prjevodu bi se moglo nazvati i polja) ,zato sto to c tretira kao memorijske lokacije gdje mi ne moramo da im dodjeljujemo adrese to c radi za nas, inace za c je to vrjednost koja je upisana na toj memorijskoj lokaciji i nista vise a mi odredjujemo sta cemo raditi sa njom i kako cemo je interpretirati.
char string[13][10];
Recimo bi bio kao trinaest stringova sa 10 karaktera svaki, znaci 130 bajtova u sram-u mikrokontrolera i to u jednom komadu.
const char[13][10]; bi zauzeo 130 bajtova u programskoj memoriji pic-a.
A recimo int string[13][10]; bi zauzeo 260 bajtova u sram-u.
long [13][10]; mislim da ovo prelazili i vecinu 18-istica koliko treba sram-a, 520bajtova ukupno, znaci svaki karakter bi imao velicinu od 4bajta ili bi se mogla upisati velicina od 2^32, ako se u bajt moze upisati vrjednost od 2^8 =256 ako bi sadrzavao brojeve inace za c je to nesto slicno kao i u asembleru on to tretira kao memorijske lokacije.
Inace u nasoj literaturi to se nazivalo nekada dvodimenzinalna matrica kao one iz matematike:)
ma, neeee glupi pic nebi podnio 2d-jku rasp'o bi se (to me mucilo kad sam sa vb-a prelzio na pbp)
to samo saljes 2 (chr$) bajta na uart 13=cr 10=LineFeed
evo bas citam tvoj komentirani source... pravo skolski si ga odradio, da cak i ja koji sam se uvjek zgrazao na c mogu pratiti (dobrim dijelom )
malo kontam onaj dio oko crc-a jer xora sve parne i sve neparne pojedinacno. ma da jos ne kuzim, ali mislim da mi jos samo to fali pa da propricam s njokijom...
to samo saljes 2 (chr$) bajta na uart 13=cr 10=LineFeed
evo bas citam tvoj komentirani source... pravo skolski si ga odradio, da cak i ja koji sam se uvjek zgrazao na c mogu pratiti (dobrim dijelom )
malo kontam onaj dio oko crc-a jer xora sve parne i sve neparne pojedinacno. ma da jos ne kuzim, ali mislim da mi jos samo to fali pa da propricam s njokijom...
Za racunanje crc imas jako puno objasnjenja na netu sta i kako se racuna, ja sam prije trazio za c i ima vise nacina racunanja, onaj koji se koristi u primjeru je jako brz odnosno jako je kratak u asembleru.
Ako ti nesto nije jasno jer sam tek sada gledao ono sto sam napisao pa neki djelovi su dosta lose objasnjeni (ono gdje sam pisao 3 itd. pa kad citas ispada 3 a trebalo je treci, sesti ali mrzilo me da pisem slovima pa sam brojevima.
Neznam da li basic moze da barata tako sa stringovima kao c, ako moze onda prakticno mozes da prevedes sve u basic.
Mozda ce ti biti jasnije da otvoris i original i ono sto sam ja poslao pa da gledas u original i ono sto sam ti poslao da bi stvorio neku sliku.
Da li tvoj basic ima petlje tipa for, while i mogucnosti definisanja stringova kao u c-u ili nesto slicno.
Ako ti nesto nije jasno jer sam tek sada gledao ono sto sam napisao pa neki djelovi su dosta lose objasnjeni (ono gdje sam pisao 3 itd. pa kad citas ispada 3 a trebalo je treci, sesti ali mrzilo me da pisem slovima pa sam brojevima.
Neznam da li basic moze da barata tako sa stringovima kao c, ako moze onda prakticno mozes da prevedes sve u basic.
Mozda ce ti biti jasnije da otvoris i original i ono sto sam ja poslao pa da gledas u original i ono sto sam ti poslao da bi stvorio neku sliku.
Da li tvoj basic ima petlje tipa for, while i mogucnosti definisanja stringova kao u c-u ili nesto slicno.
Majko mila, nisam to znao. Ovo mi izgleda kao UCS-16 encoding ili ti ga UTF-8 dvobajtni, samo naopak!ShOkRe wrote:ma trax, pa da ne razlikujem word i byte, sta mislis da bih ista od ovoga sklepao...
nego kad naprimjer u basicu u jednoj liniji upises
hseout "abcd........xyz" kad iskompiliram dobijem nesto kao
OA OO OB OO OC OO OD OO
.......... 22 OO 23 OO 24 OO
ove hexove sam izlupao da skuzis sto mislim (nisam trazio prave asci-je), zasto neko ko j radio pbp nije o tome razmisljao neznam, ali kad u ASM-u stavis DA abcd........xyz on više ne ždere word za bajt
Pregledaj po netu da li ima neka direktiva kompajleru da on to uradi sa bytes a ne words!
nope, ma nije mi to uopce bitno, kad postane tjesno ubacicu onaj asm dio
a do onda mi ostalo jos koji kilobyte...
ako sam dobro skuzio crc u basicu za parne i neparne
(uz pomoc "abc"-a) bi bilo...
crc1=0
crc2=0
for x=1 to 30 step 2 ' od do sam lupio onako..
crc1 = crc XOR string[x]
crc2 = crc XOR string[x+1]
next x
prejednostavno da bi to bilo to ?
a do onda mi ostalo jos koji kilobyte...
ako sam dobro skuzio crc u basicu za parne i neparne
(uz pomoc "abc"-a) bi bilo...
crc1=0
crc2=0
for x=1 to 30 step 2 ' od do sam lupio onako..
crc1 = crc XOR string[x]
crc2 = crc XOR string[x+1]
next x
prejednostavno da bi to bilo to ?
Nemam ispred mene c listing.
Ali mislim da bi trebalo ovako ,neznam basic:)
Original c:
//////////////////////////
CRC = 0;
ODD = (STRING_LENGTH-1);
EVEN = (STRING_LENGTH-2);
for (i=0; i < EVEN; i+=2)
CRC ^= RESULT;
RESULT[EVEN] = CRC;
CRC = 0;
for (i=1; i < ODD; i+=2)
CRC ^= RESULT;
RESULT[ODD] = CRC;}
///////////////////////////////
basic:
definisanje varijabli
crc=0
duzina_stringa= (30 moze biti bilo koja vrjednost sada je 30)
string[duzina_stringa]
ODD = duzina_stringa-1
EVEN =duzina_stringa-2
prva for petlja
for x=0 to EVEN step 2
crc = crc XOR string[x]
next x
upis parnog crc-a u string
string[EVEN]=crc
drugi deo for petlje
crc=0
for x=1 to ODD step 2
crc = crc XOR string[x]
next x
upis neparnog crc-a u string koji saljemo na mobitel
string[ODD]=crc
Tako nekako jedino jos prepravi ali to je filozofija na kiju radi.
Ali mislim da bi trebalo ovako ,neznam basic:)
Original c:
//////////////////////////
CRC = 0;
ODD = (STRING_LENGTH-1);
EVEN = (STRING_LENGTH-2);
for (i=0; i < EVEN; i+=2)
CRC ^= RESULT;
RESULT[EVEN] = CRC;
CRC = 0;
for (i=1; i < ODD; i+=2)
CRC ^= RESULT;
RESULT[ODD] = CRC;}
///////////////////////////////
basic:
definisanje varijabli
crc=0
duzina_stringa= (30 moze biti bilo koja vrjednost sada je 30)
string[duzina_stringa]
ODD = duzina_stringa-1
EVEN =duzina_stringa-2
prva for petlja
for x=0 to EVEN step 2
crc = crc XOR string[x]
next x
upis parnog crc-a u string
string[EVEN]=crc
drugi deo for petlje
crc=0
for x=1 to ODD step 2
crc = crc XOR string[x]
next x
upis neparnog crc-a u string koji saljemo na mobitel
string[ODD]=crc
Tako nekako jedino jos prepravi ali to je filozofija na kiju radi.