[ rasko1950 @ 13.10.2013. 17:27 ] @
Dali je moguce prebaciti Hex fajl za pic 16f84 u pic 16f628,posto nemam ASM kod za 16f84 vec samo Hex fajl
[ bogdan.kecman @ 13.10.2013. 17:31 ] @
mozes da probas da ga disasembliras pa prepravis i onda asembliras za
628 (moras da napravis par promena tipa da ugasis komparatore na pocetku)
[ rasko1950 @ 13.10.2013. 17:38 ] @
Pokusavao sam sa pic disasemlerom medjutim nema portova u pocetku da bih mogao da ih promenim.
[ bogdan.kecman @ 13.10.2013. 18:34 ] @
kakvih portova?
[ rasko1950 @ 13.10.2013. 18:44 ] @
Mislio sam na pinove na koje bi trebalo izvsiti izmene movlw 0x07
movwf CMCON
[ bogdan.kecman @ 13.10.2013. 18:54 ] @
promenu pinova ces tesko da uradis posto to zahteva da pregledas ceo
kod, lakse ti je da ga napises ispocetka
[ YU2AX @ 15.10.2013. 20:04 ] @
Citat:
rasko1950:
Mislio sam na pinove na koje bi trebalo izvsiti izmene movlw 0x07
movwf CMCON

Nema potrebe da brines o pinovima, samo iskljuci komparator pomenutom komandom. Ukljucenje/iskljucenje komparatora vrsi se preko CMCON registra a ne direktnim "zahvatima" na pinovima.
[ rasko1950 @ 15.10.2013. 21:07 ] @
Problem je sto imam hex fajl za 16f84 tako da kad uradim disasember u njemu izmenim inc i prebacim ga na 16f628 nemogu nigde da mu ubacim promene da se iskljuci komparator a drugo on izbaci adresese LRAM koji pocinje od oB kod16f84 to moze i da se ispomera ali i one banke imaju problema,da je asm fajl mnogo bi se lakse resilo.
[ rasko1950 @ 15.10.2013. 21:21 ] @
Ako imas neko resenje kako da iskjucim komparator ali ostaje problem sto je hex fajl.
[ YU2AX @ 16.10.2013. 00:12 ] @
Iskljucivanje komparatora nije veliki problem, mnogo veci problem (prakticno neresiv) je odgovarajuce bank prebacivanje za 628.

Na pocetku disasemblovanog asm koda obicno imas vektor za pocetak main programa, nesto nalik:

0x0000 : goto 0xE4

Sledece sto ti treba je kraj postojeceg programskog koda, obicno izgleda ovako:

0x0250 : return
0x0251 : Data 0x3FFF ; ?
0x0252 : Data 0x3FFF ; ?
0x0253 : Data 0x3FFF ; ?
0x0254 : Data 0x3FFF ; ?
..... isto do kraja
0x03FE : Data 0x3FFF ; ?
0x03FF : Data 0x3FFF ; ?


Modifikacija se sastoji da u prvoj liniji umesto 0xE4 upises jednu od slobodnih lokacija, u ovom slucaju 0x0251:

0x0000 : goto 0x0251 ; nova adresa pocetne instrukcije

Ovim ce program pri startovanju prvo da ode na novu adresu (0x0251) gde ce sada stojati instrukcija za iskljucenje komparatora:

0x0251 : movlw 0x07 ;
0x0252 : movwf CMCON ; iskljucen komparator, svi I/O digitalni
0x0253 : goto 0xE4 ; skok na staru pocetnu instrukciju
0x0254 : Data 0x3FFF ; ?
......

Novi asm kod verovatno nece proci kompajliranje jer sa drugim tipom procesora mnogo toga vise ne odgovara "stanju na terenu" tako da ili treba da si ekspert sa mnooogo slobodnog vremena pa da preradis celi kod ili da ga, jednostavnije i lakse, napises iz pocetka.
[ rasko1950 @ 16.10.2013. 20:36 ] @
Sve je ovo tacno,lako se sredi komparator medjutim tu ima jos mnogo stvari koje su razbacane po programu. LRAM kod 16f628 pocinje od 20h
to se moze i nekako lako promeniti medjutim po bankama je dosta posla ali mislim da cu ga resiti.Jedino me cudi da su me po raznim sajtovima i forumima namamili da se upletem u ovo jer po njihovom je bilo samo od 20h i iskljuciti komparator sto je daleko od stvarnosti,
ali upornost ce dati neke rezultate.
[ rasko1950 @ 16.10.2013. 20:55 ] @
Ovo sve radim da bih dva razlicita kola '{PIN KOMPATIBILNA I VEOMA SLICNIH KARAKTERISTIKA"} sa istim programom postavio na dve iste ploce koje ce da se napajaju iz istog izvora tako da ce uvek da se zajedno ukljucuju i rade da vidim bas koji je pouzdaniji ili je isti jer sve i svasta sta se moze naci po internetu je ipak dosta neproverenih stvari, ovaj je ovo ovaj je ono a niko nista nije uporedio u slicnim uslovima dva razlicita cipa koji se bas ne mogu tek tako konvertovati.

[Ovu poruku je menjao rasko1950 dana 16.10.2013. u 22:09 GMT+1]

[Ovu poruku je menjao rasko1950 dana 16.10.2013. u 22:28 GMT+1]
[ ZAS011 @ 17.10.2013. 08:32 ] @
Ako baš hoćeš toliko da se zamlaćuješ sa upoređivanjem pouzdanosti 2 "pinkompatibilna i veoma RAZLIČITIH karakteristika" mokrokontrolera, sedi i napiši lepo program koji će raditi na oba kontrolera, poštovajući njihove različitosti. Za tako nešto ti preporučujem da koristiš neki "viši" programski jezik tipa C, Pascal ili Basic.
Prepravljanje hex fajla je sizifov posao ukoliko nisi "na ti" sa asemblerom, i to u pijanom stanju.
Takvo upoređivanje čipova je inače iluzorno, isto kao kada bi upoređivao logička kola dva različita proizvođača. Npr. 74HC00 ox NXP i ST osim u oznaci uopšte nisu identični na nivou silicijuma.
Za razliku od 16F84(A), 16F628(A) ima ašaša više hardvera u sebi, tako da ti bilo kakva komparacija ta dva čipa ništa ne znači.
Inače, sa 16F84(A) su pin kompatibilni i 18F1220/1230/1320/1330
[ rasko1950 @ 17.10.2013. 19:17 ] @
Nakon prebacivanja i prepravki hex fajla iz 16f84 u 16f268 nastao je problem inicijazacije portova A
evo kako to otprilike izgleda
BCF LRAM_0x0B,GIE ..............ova adresa je prebacivana i na 0x36 ali sve ostaje isto
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
CLRF PORTA ; !!Bank!! PORTA - TRISA - Unimplemented - Unimplemented
CLRF PORTB ; !!Bank!! PORTB - TRISB - PORTB - TRISB
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
MOVLW 0x10 ; b'00010000' d'016'
MOVWF PORTA ; !!Bank!! PORTA - TRISA - Unimplemented - Unimplemented
MOVLW 0xFF ; b'11111111' d'255'
MOVWF PORTB ; !!Bank!! PORTB - TRISB - PORTB - TRISB
MOVLW 0x53 ; b'01010011' d'083' "S"
MOVWF TMR0 ; !!Bank!! TMR0 - OPTION_REG - TMR0 - OPTION_REG
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
CLRF LRAM_0x2E
CLRF LRAM_0x2F

komparatori iskljuceni samo su nabaceni na drugoj adresi a evo i ubacene komande unutra

BCF LRAM_0x38,7
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
CLRF PORTA ; !!Bank!! PORTA - TRISA - Unimplemented - Unimplemented
CLRF PORTB ; !!Bank!! PORTB - TRISB - PORTB - TRISB
MOVLW 0x07 ; b'00000111' d'007'
MOVWF LRAM_0x39
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
MOVLW 0x10 ; b'00010000' d'016'
MOVWF PORTA ; !!Bank!! PORTA - TRISA - Unimplemented - Unimplemented
MOVLW 0xFF ; b'11111111' d'255'
MOVWF PORTB ; !!Bank!! PORTB - TRISB - PORTB - TRISB
MOVLW 0x53 ; b'01010011' d'083' "S"
MOVWF TMR0 ; !!Bank!! TMR0 - OPTION_REG - TMR0 - OPTION_REG
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select


a ovako izgleda u 16f84a

BCF INTCON,GIE
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
CLRF PORTA ; !!Bank!! PORTA - TRISA
CLRF PORTB ; !!Bank!! PORTB - TRISB
BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select
MOVLW 0x10 ; b'00010000' d'016'
MOVWF PORTA ; !!Bank!! PORTA - TRISA
MOVLW 0xFF ; b'11111111' d'255'
MOVWF PORTB ; !!Bank!! PORTB - TRISB
MOVLW 0x53 ; b'01010011' d'083' "S"
MOVWF TMR0 ; !!Bank!! TMR0 - OPTION_REG
BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select

ako neko ima resenje nebi bilo lose da ga opise ili postavi

[Ovu poruku je menjao rasko1950 dana 17.10.2013. u 21:01 GMT+1]