www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

ASCII <-> HEX pretvorbe
Pojdi na stran 1, 2  Naslednja
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Osnove programiranja PIC-a v Assembler-ju
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
.
Neznanec
Neznanec



Pridružen-a: Pet 01 Okt 2004 1:17
Prispevkov: 1
Aktiv.: 0.00

PrispevekObjavljeno: Ned Okt 31, 2004 1:35 am    Naslov sporočila:  ASCII <-> HEX pretvorbe Odgovori s citatom

Brisana vsebina odstranjenega uporabnika.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
alex007
Član
Član



Pridružen-a: Pon 29 Dec 2003 0:19
Prispevkov: 56
Aktiv.: 0.24
Kraj: Sevnica

PrispevekObjavljeno: Sre Maj 18, 2005 5:22 pm    Naslov sporočila:   Odgovori s citatom

Pozdravljeni!
Da ne odpiram nove teme, bom kar tukaj vprašal. Torej ima kdo napisano rutino, ki bi mi pretvorila 16 bitni podatek v ASCII. Če ima kdo in če je tako dober, bi ga lepo prosil, da to pripne na tukaj.

LP,Alex
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo MSN Messenger - naslov
Slowfly
Član
Član



Pridružen-a: Sre 18 Feb 2004 2:07
Prispevkov: 4082
Aktiv.: 17.23
Kraj: Ljubljana

PrispevekObjavljeno: Sre Maj 18, 2005 9:51 pm    Naslov sporočila:   Odgovori s citatom

Mogoče tole ?

http://nickciske.com/tools/hex.php

lp
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
alex007
Član
Član



Pridružen-a: Pon 29 Dec 2003 0:19
Prispevkov: 56
Aktiv.: 0.24
Kraj: Sevnica

PrispevekObjavljeno: Čet Maj 19, 2005 3:18 pm    Naslov sporočila:   Odgovori s citatom

S tistim linkom si nimam kaj dosti za pomagat. Namreč jaz rabim rutino napisano v PIC asemblerju, ki mi 16 bitni podatek razdeli v pet registrov, katere bom uporabljal za izpis številk na LCD.
LP
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo MSN Messenger - naslov
Highlag
Član
Član



Pridružen-a: Pet 23 Jan 2004 20:42
Prispevkov: 4034
Aktiv.: 17.03
Kraj: Črnuče

PrispevekObjavljeno: Čet Maj 19, 2005 4:04 pm    Naslov sporočila:   Odgovori s citatom

Zakaj rabiš 5 registrov za 16 bitni podatek?
Če se prav spomnim imajo Pici 12F.. in 16F.. 8 bitne registe. Potemtakem bi rabil samo 2 da razdeliš 16 bitni podatek na 2 8 bitna. (No še carry bit mogoče rabiš)

Pa še: Kje pa misliš dobiti 16 bitni podatek? Ker so vsi registri 8 bitni? Če hočeš operirati z 16 bitnimi podatki morajo že v osnovi biti razbiti na 8 bitov.

Nisi povedal za kateri pic rabiš kodo.

Koda:
   movlw   high arg1         ; Move literal to W register   Višji bajt argumenta arg1 gre v HIcnt
   movwf   HIcnt         ; Move W register to HIcnt
   movlw   low arg1         ; Move literal to W register   Nižji bajt argumenta arg1 gre v LOcnt
   movwf   LOcnt         ; Move W register to LOcnt


Tale koda drugače razbije 16 bitno številko recimo .1000 na dva registra. Številka je zapisana v arg1 spremenljivki. Višja mesta gresta v HIcnt register, nižja mesta gresta v LPcnt register.

_________________
If at first you don't succeed, destroy all evidence that you tried.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
alex007
Član
Član



Pridružen-a: Pon 29 Dec 2003 0:19
Prispevkov: 56
Aktiv.: 0.24
Kraj: Sevnica

PrispevekObjavljeno: Čet Maj 19, 2005 5:19 pm    Naslov sporočila:   Odgovori s citatom

Hi!
Zgleda da me ne razumete najbolje, oziroma se tudi sam nisem najbolje izrazil.
Torej imam 16 bitni podatek že razdeljen v dva 8bitna registra.
Recimo FFFF--------> HI_byte=FF........LO_byte=FF.
FFFF=65535 desetiško in to številko želim razčlenit na desettisočice, tisočice, stotice, desetice in enice in vsaka od teh naj bo v svojem registru, zato je potrebno pet registrov. Delam pa z PIC16F877.
Upam da sem sedaj napisal bol jasno, kaj želim in če ima kdo napisano rutino za tak postopek, bi ga prosil, če bi jo delil z mano.

LP, alex
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo MSN Messenger - naslov
Highlag
Član
Član



Pridružen-a: Pet 23 Jan 2004 20:42
Prispevkov: 4034
Aktiv.: 17.03
Kraj: Črnuče

PrispevekObjavljeno: Čet Maj 19, 2005 8:10 pm    Naslov sporočila:   Odgovori s citatom

Malo sem pobrskal, ker se mi ne da tipkat.

Imam knjigo Programirajmo PIC mikrokontrolerje, kjer je napisana koda točno za tvoje potrebe Wink .

V knjigi je tudi povezava na asm datoteko, ki pa žal ne deluje?
Za tipkat je malo preveč, pa tudi nimam toliko časa.

Drugače naj bi bila datoteka tule: www.svet-el.si/download/stej16.asm.

Mogoče bi ti jo poslali, če bi prijazno "zatežil"?

_________________
If at first you don't succeed, destroy all evidence that you tried.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14673
Aktiv.: 61.95
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Čet Maj 19, 2005 8:16 pm    Naslov sporočila:   Odgovori s citatom

alex007,

Če ne boš dobil, ti bom spisal eno procedurco čez vikend.

_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
alex007
Član
Član



Pridružen-a: Pon 29 Dec 2003 0:19
Prispevkov: 56
Aktiv.: 0.24
Kraj: Sevnica

PrispevekObjavljeno: Sob Maj 21, 2005 12:43 pm    Naslov sporočila:   Odgovori s citatom

Če utegneš Silvo, bom zelo vesel tvoje pomoči.

LP
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo MSN Messenger - naslov
aly
Član
Član



Pridružen-a: Tor 28 Sep 2004 14:51
Prispevkov: 9407
Aktiv.: 39.72
Kraj: Kranj - struževo

PrispevekObjavljeno: Sob Maj 21, 2005 5:27 pm    Naslov sporočila:   Odgovori s citatom

Tu je moja koda za pretvorbo 8-bitov v ASCII. Mislim da predelava v 16-bitno ne bi smela biti problematična. Samo dodaš še en vhodni register in s carry-bitom povežeš obadva pri seštevanju in odštevanju.

Koda:

;      projekt: BIN to ASCII
;      verzija: 1
;      avtor: Aljaz Ogrin
;      datum: 17. feb. 2003
; *************************************************************************************************
; * Konverzija BIN 0-255 => DEC
; * vhodni parameter = W
; *************************************************************************************************
bin2ascii   movWF   temp

      clrF   Cifra100
      clrF   Cifra10
      clrF   Cifra1

      movLW   D'100'
b2a_re100   incF   Cifra100, F
      subWF   temp, F   ; F - W -> F
      btFss   STATUS, C
      goto   b2a_go10   ; C=0 ... negativen rezultat -> popravimo in nadaljujemo z odštevanjem 10
      goto   b2a_re100   ; C=1 ... pozitiven rezultat -> ponovimo odštevanje 100
      
b2a_go10   decF   Cifra100, F
      addWF   temp, F   ; korekcija: temp + 100 -> temp
      
      movLW   D'10'
b2a_re10   incF   Cifra10, F
      subWF   temp, F   ; F - W -> F
      btFss   STATUS, C
      goto   b2a_go1   ; C=0 ... negativen rezultat -> popravimo in koncamo
      goto   b2a_re10   ; C=1 ... pozitiven rezultat -> ponovimo odštevanje 10
      
b2a_go1   decF   Cifra10, F
      addWF   temp, W   ; korekcija: temp + 10 -> W

      addLW   D'48'      ; offset cifer v ASCII tabeli
      movWF   Cifra1

      movLW   D'48'      ; offset cifer v ASCII tabeli
      addWF   Cifra10, F
      addWF   Cifra100, F

      RETURN
; ***********************************************************************************************


Če pa izbrskam kje 16-bitno, jo bom pripel sem. Za AVRje imam 8, 16 in 24-bitne procedure.

LP, aly.

_________________
I'm going to stand outside, so if anyone asks, I'm outstanding Smile
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran MSN Messenger - naslov
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14673
Aktiv.: 61.95
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Sob Maj 21, 2005 8:14 pm    Naslov sporočila:   Odgovori s citatom

Za 16 bitno bo potrebno kar precej več kode. Varinat je nešteto. V prilogi sem eno spisal (sicer je sem naredil kar en 5 mestni števec, ki šteje brezveze gor) tako da sem videl, če dela. Samo kodo bi lahko še strnil z uporabo indirektnega naslavljanja ter tabele če bi bila kriza za programski polnilnik. (del procedure sem sicer naslavljal indireknto).

8 bitna pretvorba, ki sem jo prav tako uporabil v proceduri. Mislim, da je še krajša od zgornje Aly-eve


Koda:

;-----------------------------------------------
;pretvorba vrednosti dobljene v w v 3 registe
;v katerih bo vrednost od 0-9 primerno za
;prikaz na displej
;-----------------------------------------------
N_PRETVORBA
   clrf CIFRA   ;\
   clrf CIFRA+1   ;|
   clrf CIFRA+2   ; >najprej obrisem vse registre v katerih bo rezultat pretvorbe
   clrf CIFRA+3   ;|
   clrf CIFRA+4   ;/
   movwf TMP   ;shranem vrednost katero bom pretvarjal
NA_100
   movlw .100
   subwf TMP,W   ;vrednosti odstejem 100
   btfss STATUS,C   ;je rezultat se vedno pozitiven
   goto NA_10   ;ne
   movwf TMP   ;odsteto vrednost shranem nazaj v TMP
   incf CIFRA+2,f   ;povecam register z stotico za 1
   goto NA_100         
NA_10
   movlw .10
   subwf TMP,W   ;TMP odstejem 10
   btfss STATUS,C   ;je se rezultat pozitiven?
   goto NA_1   ;ne
   movwf TMP   ;odsteti rezultat shranem
   incf CIFRA+1,f   ;povecam rezultat z desetico
   goto NA_10
NA_1
   movf TMP,w
   movwf CIFRA   ;rezultat za enico je ostanek v TMP
   return



stevec.zip
 Opis:

Download
 Ime datoteke:  stevec.zip
 Velikost datoteke:  2.72 KB
 Downloadano:  11 krat


_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14673
Aktiv.: 61.95
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Sob Maj 21, 2005 10:31 pm    Naslov sporočila:   Odgovori s citatom

Pripenjam še proceduro, kjer sem uporabil tabelo. Kode je znatno manj.


stevec2.zip
 Opis:

Download
 Ime datoteke:  stevec2.zip
 Velikost datoteke:  2.53 KB
 Downloadano:  14 krat


_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14673
Aktiv.: 61.95
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Ned Maj 22, 2005 1:31 pm    Naslov sporočila:   Odgovori s citatom

Naredil tudi napako Embarassed katero sem opazil šele danes, ko sem pustil števcu, da šteje do konca. Konverzija se je delala do 15 bita. Registru "count", ki šteje bite visokega registra sem dodelil za 1 premajhno vrednost. Popravek v prilogi.


stevec.zip
 Opis:

Download
 Ime datoteke:  stevec.zip
 Velikost datoteke:  1.93 KB
 Downloadano:  10 krat


_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
aly
Član
Član



Pridružen-a: Tor 28 Sep 2004 14:51
Prispevkov: 9407
Aktiv.: 39.72
Kraj: Kranj - struževo

PrispevekObjavljeno: Pon Maj 23, 2005 10:55 am    Naslov sporočila:   Odgovori s citatom

Silvo je napisal/a:
8 bitna pretvorba, ki sem jo prav tako uporabil v proceduri. Mislim, da je še krajša od zgornje Aly-eve

Princip je isti, le da jaz na koncu še prištejem k rezultatom 48, da dobim ASCII cifro za izpis na LCD Wink

Sicer pa hvala za 16b rutino, jo bom tudi jaz verjetno še rabil.

LP, aly.

_________________
I'm going to stand outside, so if anyone asks, I'm outstanding Smile
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran MSN Messenger - naslov
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14673
Aktiv.: 61.95
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Pon Maj 23, 2005 11:31 am    Naslov sporočila:   Odgovori s citatom

Tale zadnja rutina je pisana tako, da jo brez težav razširiš v še več bitno. Poveča se število registrov za rezultat, razširi se tabela, dodajo se še registri za pretvorbo katere vse enega za drugim "rolaš" desno, povečaš števec .... ja šlo bo tudi kar nekaj dodatnega procesorskega časa Sad
_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Osnove programiranja PIC-a v Assembler-ju Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran 1, 2  Naslednja
Stran 1 od 2

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 491 dni


Powered by phpBB © 2001, 2005 phpBB Group