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 

32 bit real number generator IEEE/MIEEE

 
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
GJ
Član
Član



Pridružen-a: Čet 02 Nov 2006 15:51
Prispevkov: 946
Aktiv.: 4.17
Kraj: Ljubljana

PrispevekObjavljeno: Tor Mar 04, 2008 9:01 pm    Naslov sporočila:  32 bit real number generator IEEE/MIEEE Odgovori s citatom

Evo po vzoru Silvota..

MPLAB ne podpira matematike s plavajočo vejico!
Če koristiš že napisane rutine za plavajočo vejico potem imaš probleme s pisanjem konstant (recimo 0,2) saj jih ne moreš kar tako preprosto prevesti.

Zato sem pred časom napisal preprost program za omenjeno rabo!
1)Odkljukaš parametre (izbereš format zapisa Microchip real ali IEEE format)
2)Odtipkaš število in pritisneš enter.
3)Vsebina se lahko avtomatično prekopira v clipboard.

Prilagam cel projekt, ki se prevede od Delphi5 naprej..
Tako da tisti, ki imate Delphi lahko prosto spreminjate program. Laughing

Bistvo programa je ena sama procedura..
Koda:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var
  r:Single;
  p:^byte;
  s: string;
begin
  if Key=#13 then   with Edit2 do
  begin
    r:=StrToFloat(Edit1.text);
    p:=@r;
    if CheckBox3.Checked then
    asm
      mov       ax,word (r+2)
      rcl       al,1
      rcl       ah,1
      rcr       al,1
      mov       word (r+2),ax
    end;
    s := '0' + Inttohex(p^, 2) + 'h, 0';
    inc(p);
    s := s + Inttohex(p^, 2) + 'h, 0';
    inc(p);
    s := s + Inttohex(p^, 2) + 'h, 0';
    inc(p);
    s:=s + Inttohex(p^, 2) + 'h';
    if CheckBox2.Checked then
      if CheckBox3.Checked then
        s := s + '    ;%MReal,w    ' + '; ' +Edit1.Text else
          s := s + '    ;%Real,w    ' + '; ' +Edit1.Text;
    text := s;
    if CheckBox1.Checked then
    begin
      Edit2.SelectAll;
      Edit2.CopyToClipboard;
    end;
  end;
  if not (Key in ['0'..'9','e','E','-',DecimalSeparator,#8]) then
    Key :=#0;
end;



LP GJ



IEEEM.zip
 Opis:

Download
 Ime datoteke:  IEEEM.zip
 Velikost datoteke:  166.59 KB
 Downloadano:  8 krat

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
Stran 1 od 1

 
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: 492 dni


Powered by phpBB © 2001, 2005 phpBB Group